Гриды — Справочник фильтров¶
Справочник соответствия типов колонок грида и применяемых фильтров.
Справочник описывает, какой фильтр применяется для каждого типа колонки в гриде задач и в ДП Таблица: текстовые фильтры, фильтры по пользователям, по подзадачам и вопросам, по дополнительным параметрам, а также фильтры колонок ДП Таблица и особую обработку сквозных ДП (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.