Перейти к содержанию

Гриды — Справочник фильтров

Справочник соответствия типов колонок грида и применяемых фильтров.

Справочник описывает, какой фильтр применяется для каждого типа колонки в гриде задач и в ДП Таблица: текстовые фильтры, фильтры по пользователям, по подзадачам и вопросам, по дополнительным параметрам, а также фильтры колонок ДП Таблица и особую обработку сквозных ДП (Through).

Два контекста фильтрации

Каждый фильтр работает в одном или обоих контекстах:

  • Грид задач — фильтрация списка задач категории;
  • ДП Таблица — фильтрация строк внутри табличного дополнительного параметра.

Фильтр колонки в ДП Таблица: операторы «Содержит», «Начинается с», «Пусто» и другие

Фильтры гридов задач

Требования к имени колонки

Имя колонки, по которой строится критерий отбора, проходит проверку на допустимость перед привязкой к SQL. Разрешены обычные идентификаторы (в том числе квалифицированные — до трёх частей через точку, в скобочной или кавычечной форме) длиной до 400 символов. Одиночные внутренние дефисы допустимы — их содержат имена ДП планировщика ресурсов.

Не проходят проверку: пробелы, скобки и прочие спецсимволы внутри имени, сдвоенные и хвостовые дефисы. Последствие зависит от пути: в критерии отбора невалидное имя приводит к тому, что критерий молча отбрасывается (фильтр перестаёт влиять на выборку), на пути получения безопасного имени колонки — к ошибке «Filter '…' has an invalid column name for SQL criteria».

Симптом для поддержки: фильтр настроен, но выборка его игнорирует, либо запрос падает с этой ошибкой — проверить имя колонки в настройке фильтра.

Текстовые и поисковые

Фильтры по текстовым полям задачи:

Колонки Тип фильтра Описание
TaskText, Description TextFilter Фильтр по тексту задачи. Поддерживает contains, startsWith, endsWith, equals. Также используется для быстрого фильтра.
SubcategoryName TextFilter Фильтр по названию категории.
PerformerOrgUnit PerformerOrgUnitFilter Фильтр по орг. единице исполнителя. Принимает текстовый фильтр с операциями «равно», «содержит», «начинается с», «заканчивается на», «не равно», «не содержит», «пусто», «не пусто». В хранимой процедуре колонке соответствует Tasks.DeptName.

Колонка «Орг. единица исполнителя» обслуживается отдельным билдером и сравнивает не значение колонки, а результат подзапроса по идентификаторам задач: от ответственных исполнителей берётся основное назначение в оргструктуре, от него — родительское подразделение, имя которого и сопоставляется с введённым значением (с учётом локализации на язык сессии). Для обычного фильтра колонки подзапрос добавляется в CustomFlex, то есть отбор выполняется до основного запроса ShowTasksFeed и в дереве FilterNode такой фильтр не отображается. В быстром и расширенном фильтрах подзапрос попадает в дерево как flex-выражение TaskID in (…), для отрицающих операций — not in. Пустое значение фильтра не применяется, операции вне перечисленного списка приводят к ошибке «Filter '…' not supported for performerOrgUnit».

Пользователи и роли

Фильтры по участникам задачи:

Колонки Тип фильтра Описание
Owner, OwnerName SetFilter Фильтр по заказчику задачи.
Performer SetFilter Фильтр по единственному исполнителю.
Performers SetFilter Фильтр по множественным исполнителям.
Acceptors SetFilter Фильтр по согласующим.
ExtParam{id} (SelectUsers type) SetFilter Фильтр для ДП "Выбор пользователей/групп".

Подзадачи и вопросы

Числовые фильтры по подзадачам и вопросам:

Колонки Тип фильтра Описание
Subtasks NumberFilter Фильтр по наличию подзадач.
ActiveSubtasks NumberFilter Количество активных подзадач.
TotalSubtasks NumberFilter Общее количество подзадач.
MyQuestions NumberFilter Мои вопросы в задаче.
QuestionsToMe NumberFilter Вопросы адресованные мне.
QuestionsFromMe NumberFilter Вопросы от меня.

ДП и специальные

Фильтры по дополнительным параметрам и специальные фильтры:

Колонки Тип фильтра Описание
ExtParam{id} (MultiSelect types) SetFilter Универсальный фильтр для ДП с множественным выбором (MultiSlctSubcatTasks, MultiCheckbox, etc.).
ExtParam{id} (LookUpField) SetFilter / TextFilter Фильтр для lookup ДП. Фильтрует по связанной задаче.
Любая SmartFilter Фильтр через smart-выражение (ESQL).
Signatures* SetFilter Фильтры по подписям задач.
Custom AdvancedFilter Произвольный гибкий фильтр.
Table columns SetFilter Мультивыбор строк в ДП Таблица. Работает в обоих контекстах.

Фильтры колонок ДП Таблица

Эти фильтры работают только в контексте ДП Таблица:

Тип колонки Тип фильтра Описание
Lookup-колонка в таблице TextFilter Текстовый поиск по значению lookup-связи внутри ДП Таблица (по тексту связанной задачи и отображаемым полям справочника), как в гриде списка задач; не ограничен числом записей справочника. Зависит от LookupParamSettings.
Виртуальная (вычисляемая) колонка TextFilter / NumberFilter Текстовые операции ищут по отображаемому значению колонки — тому, что видно в таблице, а не по идентификатору связанной задачи. Может не поддерживать все операции.
"Выбор пользователей" в таблице SetFilter Фильтр по пользователям/группам внутри ДП Таблица.

Маппинг: тип ДП → фильтр

Какой фильтр применяется для каждого типа дополнительного параметра:

Тип ДП Грид задач ДП Таблица Примечание
String, MultiLineString TaskTextFilter (или стандартный) стандартный Текстовый
Number, Decimal, Money стандартный стандартный Числовой
DateTime стандартный стандартный Дата
Boolean стандартный стандартный Чекбокс
LookUpField LookupFilter LookupColumnFilter Lookup
MultiSlctSubcatTasks MultiSelectFilter стандартный Мультилукап
SelectUsersType, SelectGroupsType, SelectOrgUnit SelectUsersExtParamFilters SelectUsersColumnFilter Выбор пользователей
MultiCheckbox, DropDown MultiSelectFilter стандартный Множественный выбор
Table Ограничено (не через ShowTasksFeed) N/A (Table — это сам грид) Фильтрация задач возможна через HTML-представление при настройке шаблона. См. support-guide §1.3
Through Особая обработка N/A Сквозной ДП: система определяет целевой ДП, но передаёт тип Through — хранимая процедура сама определяет целевой тип и применяет правильную логику. Замена на SelectUsersOrgUnits/SelectUsersGroups происходит только при группировке, не при фильтрации. Типичные применения: Through → ДП «Выбор пользователей» (Менеджер клиента, РП, BDM и др.)
File ИСКЛЮЧЁН N/A Файловый ДП
Numerator стандартный стандартный Нумератор
Virtual (колонка таблицы) N/A VirtualColumnFilter Только внутри ДП Таблица

Дерево FilterNode

Фильтры строят дерево FilterNode:

GeneralFilter (root, AND)
├── FilterNode (column=State, operand=IN, values=[1,3])
├── FilterNode (column=ExtParam42, operand=CONTAINS, value="test")
└── GeneralFilter (OR)
    ├── FilterNode (column=Owner, operand=EQUALS, value=123)
    └── FilterNode (column=Performer, operand=EQUALS, value=456)

Дерево передаётся в SP ShowTasksFeed / ShowExtParamTableData и транслируется в WHERE-clause.