Документация iSZN
Lookup.FilterRules
Дополнительное свойство элемента структуры персонального документа Lookup.FilterRules
содержит правила фильтрации значений реквизитов.
Чтобы определить правило фильтрации необходимо указать для данного реквизита в свойстве Lookup.CustomSQL
запрос, который возвращает дополнительный столбец, по которому осуществляется фильтрация значений реквизита.
В правиле фильтрации необходимо указать:
- наименование дополнительного столбца, по которому осуществляется фильтрация;
- оператор, который используется для сравнения значений;
- второй операнд (другой реквизит документа или постоянное значение);
- действие при невыполнении правила:
- Discard (не отображать значение в списке выбора);
- Show warning (отображать значение в списке выбора и если оно выбрано в документе, показать предупреждающее сообщение; при этом возможно сохранить документ);
- Show error (отображать значение в списке выбора и если оно выбрано в документе, показать сообщение об ошибке; при этом невозможно сохранить документ);
- текст ошибки при валидации реквизита (отображается пользователю в случае, если правило фильтрации не выполняется).
Пример
Необходимо обеспечить, чтобы в качестве значения реквизита «Вид подуслуги» можно было бы выбрать только те значения, которые относятся к выбранному виду услуги в реквизите «Вид услуги».
Структура документа:
Элемент | Тип данных | Примечание |
---|---|---|
Обращения | Таблица | |
- Дата обращения | Дата | |
- Вид услуги | Ссылка | Ссылка на запись справочника предметов назначения. |
- Вид подуслуги | Строка | Ссылка на запись справочника предметов назначения. Доступны подуслуги выбранного предмета назначения. |
- Количество | Целое число |
Свойство Lookup.SQL
реквизита «Вид услуги» имеет вид:
SELECT uszn.pkGen.RgnPrefix(region_id)||name AS value, region_id*1000000+id AS vobj FROM uszn.dic_pk_items WHERE region_id IN (SELECT parent_id FROM uszn.tsrv_flat_regions WHERE child_id={PC_REGION_ID}) ORDER BY region_id, name
Для реквизита «Вид подуслуги» необходимо в свойстве Lookup.CustomSQL
выбирать дополнительно столбец item_key
, который будет проверяться правилом фильтрации на равенство столбцу vobj
реквизита «Вид услуги»:
SELECT region_id*1000000+id AS vobj, uszn.pkGen.RgnPrefix(region_id)||name AS value, item_region_id*1000000+item_id AS item_key FROM uszn.dic_pk_subitems WHERE region_id IN (SELECT parent_id FROM uszn.tsrv_flat_regions WHERE child_id={PC_REGION_ID}) ORDER BY region_id, name
Для реквизита «Вид подуслуги» необходимо в свойстве FilterRules
указать правило:
Наименование поля | item_key |
Оператор | = |
Второй операнд | Реквизит «Вид услуги» |
Действие при невыполнении правила | Show error |
Текст ошибки при валидации реквизита | подуслуга не соответствует выбранной услуге |