Добрый день. Реализовали вызов справочного окна с иерархической структурой на основе представления с двухуровневой иерархией (в объекте представления указали колонку для иерархии, при вызове справочного окна в конфиге установили свойство hierarchical: true). Вызов окна работает. Но возникла проблема с поиском: элементы нижнего уровня не отображаются, если элементы верхнего уровня не соответствуют условию фильтрации (примеры на скриншотах). Выяснили, что фильтр применяется в методе pushSelectFilters в LookupPageViewModelGenerator, но замещение этой схемы запрещено. Необходимо сделать так, чтобы элементы верхнего уровня отображались, если есть подчинённые элементы, которые удовлетворяют условиям в строке фильтра. Есть ли альтернативные способы реализации? Кто-то сталкивался с подобной проблемой?
Нравится
Смотрите, создаете новую схему MyNewLookupPageViewModelGenerator
В ней можете сделать extend оригинальной схемы, либо как самый простой способ для быстрого теста, полностью скопировать оригинальную, заменив названия только.
Затем создаете по такому же принципу свою схему MyNewLookupPage в нем подключаете ранее созданную схему.
И там где вы вызываете свой справочник с иерархической структурой делаете вызов с таким конфигом
var config = {
entitySchemaName: "ExampleTable",
columns: ["Name", "Parent.Name"],
multiSelect: false,
hierarchical: true,
lookupPageName: "MyNewLookupPage"
};
После этого при открытии вашего справочника, будет работать уже ваша реализация метода pushSelectFilters в схеме MyNewLookupPageViewModelGenerator
Коллеги, здраствуйте!
Переопределить логику LookupPageViewModelGenerator нет возможности.
Однако в будущих релизах планируется перевод иерархических реестров на Angular, где этот подход поменяется.