Фильтрация результатов полнотекстового поиска в 1С

В одной из предыдущих статей был описан механизм полнотекстового поиска в 1С Предприятие.

Несмотря на все свои достоинства, он имеет один очень крупный недостаток. В нём практически отсутствуют средства для настройки фильтрации данных. Можно только либо включить или отключить добавление всех объектов данного типа в полнотекстовый индекс, либо воспользоваться стандартным механизмом разграничения прав доступа.

К счастью в подавляющем большинстве случаев этого вполне достаточно. Но, если нет возникает необходимость реализовать соответствующий функционал уже при помощи программирования.

При формировании списка результатов поиска на сервере перед отображением в отчёте по поиску есть возможность получить доступ к свойствам и реквизитам найденного объекта. Опираясь на это можно организовать фильтрацию данных отображаемых в отчёте.

Например:

Однако здесь требуется осторожность.

Дело в том, что как правило, в полнотекстовом индексе хранятся, и, следовательно, попадают в результаты поиска, объекты самых различных типов. Если свойство или реквизит, по которому производится фильтрация у данного конкретного объекта отсутствует формирование данных для отчёта по поиску будет прервано по критической ошибке.

Чтобы это предотвратить можно воспользоваться одним из двух методов:

  • Производить фильтрацию только по тем свойствам и реквизитам, которые имеются у всех объектов конфигурации;
  • Перед проверкой условия отбора проверять тип данных объекта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *