Фильтр используется для ограничения набора записей, отображаемых в списке (например, в связанном списке или справочнике). Фильтр задает определенные условия, которым записи должны соответствовать, чтобы оказаться в списке. Фильтры можно настроить с помощью конструктора условий.

Например, вам нужно отфильтровать пользователей, которые живут в Москве. 

Вы можете добавить фильтр со всеми условиями в избранное в меню навигации. Для этого перетащите навигационную цепочку во вкладку Избранное.

Инструменты фильтра


Фильтры состоят из следующих инструментов:

  1. Конструктор условий (и навигационная цепочка как неотъемлемая его часть).
  2. Поиск и сортировка:
    1. Поле ввода в верхней части каждой колонки используется для поиска.
    2. Нажмите на название колонки, чтобы сортировать результаты поиска.
  3. Исключить совпадения/Показать совпадения (эти пункты находятся в контекстном меню. Чтобы открыть его, нажмите правой кнопкой мыши по ячейке списка).

Все эти компоненты формируют строку условий, которая отправляется в качестве GET-параметра в запросе. А возвращается и отображается отфильтрованный список записей.


Разница между конструктором условий в списках и обычным конструктором условий заключается в том, что в списках отображается навигационная цепочка. 

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

Как работают фильтры


Например, вам нужно найти зарегистрированные запросы Ивана Иванова с приоритетом Средний и Низкий и отсортированных по приоритету.

Для этого создайте следующий фильтр для списка Запросы (itsm_request):

После этого строку условий можно найти в GET-параметрах. Браузер добавляет %3D, %5E, %E для кодирования специальных символов.

GET
/list/task?condition=(state%3D-2%5Epriority<3%5Eassigned_user%3D160114171110151)%5EORDERBYDESCpriority
ЭлементОписание
state%3D=2Статус равно Зарегистрировано
priority<3Выборка будет содержать записи со значением меньше 3 в поле Приоритет (Средний и Низкий)
assigned_user%3D160114171110151ID записи пользователя.
%5EORDERBYDESCpriorityЗаписи будут отсортированы по полю Приоритет в порядке убывания

Фильтрация по полям типа Reference, List, Choice, Record Class и Field Name имеет некоторые особенности. Важно учитывать соотношение между полями значение (value) и отображаемое значение (display_value):

  1. Фильтрация происходит по значению поля value. Например, условие фильтра field_name = value, отображаемое условие будет field_title = display_value.
  2. Поиск колонки осуществляется по значению поля display_value. Фильтр, либо навигационная цепочка над ним заполняются условием field_name = value. В это же время отображается условие field_title = display_value.
  3. Автозаполнение выполняется с помощью значений поля value или display_value.

В таблице ниже поясняются особенности фильтрации при выборе полей указанных типов.

Тип колонкиОператорПоле поиска
ReferenceLIKE / NOTLIKE / STARTSWITH / ENDSWITHdisplay_value
ListLIKE / NOTLIKEdisplay_value
ChoiceLIKE / NOTLIKE / STARTSWITH / ENDSWITHtitle
Record ClassLIKE / NOTLIKE / STARTSWITH / ENDSWITHtitle

Динамические фильтры


Динамические фильтры расширяют фильтры возможностью добавления JS-скриптов. Эта возможность доступна для конструктора условий в списках и для условий динамического определителя ссылок.

В конструкторе условий динамические фильтры доступны при выборе полей типа Reference и оператора равно (динамическое) или аналогичного. После этого появится список доступных динамических фильтров.

Скрипты динамических фильтров возвращают значение, которое будет использовано на месте динамического фильтра при фильтрации.

Чтобы создать новый динамический фильтр, выполните следующие шаги:

  1. Перейдите в Настройка системы → Динамические фильтры.
  2. Нажмите Создать и заполните поля.
  3. Нажмите Сохранить или Сохранить и выйти.

В результате будет создана новая запись в таблице Настройки динамических фильтров (sys_filter_option_dynamic).

Вы также можете создать динамические фильтры для ID полей. Для этого задайте поля формы динамического фильтра следующим образом:

  1. В поле Тип колонки выберите Big Integer.
  2. В поле Связанная таблица выберите таблицу, к которой нужно применить этот фильтр.
  3. Установите флажок Активна.
  4. Установите флажок Доступен для фильтра.
  5. Введите скрипт, закончите заполнение формы и нажмите Сохранить.

Чтобы применить созданный динамический фильтр, укажите колонку таблицы с ID и оператор равно (динамическое) в конструкторе условий. 

Поля формы Настройка динамических фильтров

ПолеОбязательноОписание
Заголовок+Укажите название фильтра.
Тип колонки-

Укажите тип колонки, по которому будет использоваться этот фильтр.

Связанная таблица+

Выберите таблицу, к которой необходимо применить фильтр.

Доступен для фильтра-Установите флажок, чтобы фильтр отображался в списке фильтров.
Доступно для определителя ссылок-Установите флажок, чтобы фильтр был доступен для динамического определителя ссылок.
Скрипт+

Введите скрипт, который будет выполнять динамический фильтр. Вы можете использовать все методы классов серверного API. После выполнения скрипт должен вернуть ID записи или массив ID.

Особенностью JavaScript является то, что ID должно быть строкой, так как это большое число.

Активна-Установите флажок, чтобы активировать фильтр.
Порядок-Введите номер, чтобы задать порядок вывода в виде списка.

  • No labels