Filter: Object;
dict. Справочник НСИ;
filter. Объект с настройками фильтра.
callback. Возвратная функция.
Свойство Filter устанавливает фильтр для элементов справочника НСИ.
Значение свойства устанавливается с помощью метода setFilter, а возвращается - с помощью метода getFilter. Из JSON значение задать нельзя.
При вызове метода setFilter используется два параметра: filter - объект с настройками фильтра в формате метаданных, elsMd - элементы справочника в формате метаданных, которые требуется отфильтровать.
Метод getFilter возвращает объект с настройками фильтра в формате метаданных.
Для выполнения примера необходимо наличие на странице компонента DictionaryBox с наименованием «dictionaryBox» (см. «Пример создания компонента DictionaryBox» ). Отфильтруем элементы справочника по строке «Секунда»:
var source = dictionaryBox.getSource()[0];
// Получим сервис для работы со справочником
var service = source.getPPService();
// Возвратная функция
function onFilterElementsReceived(sender, args) {
var res = JSON.parse(args.ResponseText);
var dict = args.Args.Dictionary;
var filter = args.Args.Filter;
// Установим фильтр
dict.setFilter(filter, PP.getProperty(res, "GetRdsElementsResult.els.e"));
// Вызовем событие ChildLoaded
service.ChildLoaded.fire(service, {
Dictionary: dict,
ParentKey: "",
IsFilter: true
});
// Получим дерево элементов справочника НСИ
var tree = dictionaryBox.getDataArea().getActiveDictTree();
tree._Filter = filter;
// Загрузим все дочерние элементы, родителем которых является корень дерева
tree.setChildNodes("");
};
// Определим настройки фильтра
var filter = {
levels: -1,
text: {
text: "Секунда" // Строка поиска
}
};
// Определим запрос, отсылаемый серверу
var body = {
GetRdsElements: {
tRds: source.getOdId(),
tArg: {
showHidden: source.getShowHidden(),
filter: filter, // Укажем фильтр
pattern: {
attributes: "*",
getHasChildren: true,
getLevel: true,
getParentKey: true,
getHistory: true
}
}
}
};
// Отправим запрос
service._send(body, PP.Delegate(onFilterElementsReceived, service, {
Filter: filter,
Dictionary: source
}));
В результате выполнения примера элементы справочника НСИ были отфильтрованы по строке «Секунда»:

См. также: