
Для решения задачи я написал небольшую специальную функцию (посмотреть на неё можно здесь: файл UniversalFiltrateReference. zip, группа функций " Работа со справочниками").
Совместимость с версиями DIRECTUM
На момент выхода статьи функция совместима со следующими версиями DIRECTUM®: 4.6, 4.7 и 4.8.
Описание функции
Функция открывает список записей любого справочника с фильтрацией по любым указанным реквизитам. В режиме выбора при закрытии справочника возможен повторный вывод реквизитов фильтрации.
Описание параметров функции
RefType
— код аналитики.
RequisitesArray
— список реквизитов фильтрации.
ShowFirstDialog
— показ диалога реквизитов фильтрации при первом открытии (boolean). По умолчанию имеет значение False.
ViewMode
— по умолчанию справочник открывается в режиме просмотра. Для открытия справочника в режиме выбора необходимо указать «Выбор».
ViewName
— Имя представления. Если пустое, то будет использоваться представление по умолчанию.
StrAddWhere
— Дополнительный отбор.
Пример использования функции
Открываем справочник «Работники» в режиме выбора, отфильтрованный по реквизиту «Подразделение» с кодом отдела «Отдел внедрения DIRECTUM».
UniversalFiltrateReference("РАБ";ArrayOf(ArrayOf('Подразделение';'Аналитика: ПОД';;True;"ОВД"));False;"Выбор";;)
В случае, если пользователь не выбрал работника и закрыл справочник, система отобразит диалоговое окно с возможностью указания новых реквизитов фильтрации:
Пользователь может либо указать другое подразделение и выбрать его работника, либо вообще отменить выбор из справочника.
Результат: любой разработчик в среде DIRECTUM при использовании данной функции может не только предоставить пользователю системы возможность воспользоваться выбором из справочника, отфильтрованного по умолчанию, но и изменить этот выбор, установив те параметры фильтрации, которые требуются ему в конкретной ситуации.
Автор с удовольствием ответит на комментарии и вопросы: dt@b-alt. ru. Скачать архив с функцией (.zip, ~6 кб).