Smart-фильтры: бизнес-логика¶
Smart-фильтры и smart-выражения — единый слой бизнес-вычислений платформы: настраиваемые условия и формулы, по которым система принимает решения. Smart-выражение возвращает значение, smart-фильтр — «да/нет»; на них держатся автоматизации, проверки прав, видимость элементов интерфейса, значения по умолчанию для ДП, ограничения списка исполнителей и отчётные выборки. Раздел адресован аналитикам и администраторам: что такое smart-выражение, где оно применяется и чем различаются два режима его настройки — визуальный конструктор и ручной T-SQL.
Обзор и доменная модель smart-фильтров¶
Smart-фильтры и smart-выражения — единый слой бизнес-вычислений в платформе.
SmartExpression(IsFilter = false) возвращает значение.SmartFilter(IsFilter = true) возвращает булев результат.
Они используются в автоматизациях, правах, видимости UI-элементов, дефолтах ДП, ограничениях исполнителей и отчётных сценариях.
Основная сущность
SmartExpressions— хранит определение выражения, источник (Origin), режим (filter/expression), контент (XML/TSql*).
Два бизнес-режима исполнения
- Конструкторный режим:
XML -> XSLT -> ESQL -> SQL. - Ручной режим: прямой
TSqlContent.
Выбор режима определяет управляемость и риск:
- XML-режим безопаснее с точки зрения UX и повторного использования.
- T-SQL-режим гибче, но требует строгого контроля качества и прав.
Ключевые бизнес-сценарии и бизнес-правила smart-фильтров¶
1. Редактирование выражения в visual editor
Администратор собирает формулу из атрибутов доменной модели и сохраняет выражение для дальнейшего использования.
2. Runtime-вычисление
Система вычисляет результат в контексте задачи/пользователя/события и передаёт его в потребляющий домен.
3. Проверка фильтров доступа/видимости
Результат фильтра влияет на:
- доступность действий;
- отбор данных в UI;
- включение/исключение исполнителей и подсказок.
4. Анализ мест использования и аудит смартов
Применение смарт-выражений и фильтров видно из общего списка, без входа в карточку каждого выражения:
- родительский объект и конкретная точка подключения выражения;
- согласованность типов данных — объявленный тип результата против того, что ожидает поле-приёмник;
- быстрый переход к правилу автоматизации по идентификатору правила из таблицы.
- видны все места, включая привязки к настройкам: настройка источника данных лукапа, настройка дополнительного параметра типа «Файл», универсальный шаблон задачи, фильтр рабочего места — эти четыре вида приходят в выдаче начиная со сборки 2.268.
Бизнес-правила
- Выражение должно быть контекстно совместимо с точкой использования.
IsDeleted/невалидныйOriginисключают выражение из рабочего контура.- Для циклических сценариев (пакетные действия) значения вычисляются с учётом cycle-переменных.
- Приоритет исполнения:
TSqlContentвыше автоматически скомпилированного контента. - Общее (не личное) выражение может создать только администратор подкатегории или суперадминистратор; у личного выражения владельцем всегда становится его создатель. Доступ выражения задаётся одним из трёх режимов — «Только мне», «Группам», «Всем». Владелец есть только у режима «Только мне» и назначается сервером; в режимах «Группам» и «Всем» владелец не назначается (и очищается, если был). Переданный владелец из запроса не принимается.
Зависимости, роль и операционные риски smart-фильтров¶
Потребители
smart-actionsext-paramstaskssignaturesgridsportal
Бизнес-эффект
Домен задаёт единый «язык правил» и снижает необходимость хардкода условий в отдельных модулях.
Операционные риски
- Неверный контекст выполнения (ложные
null/пустые результаты). - Деградация производительности из-за тяжёлых выражений.
- Накопление legacy-выражений с неактуальными зависимостями.
Что проверять при инцидентах
- Состояние выражения (
IsDeleted,Origin, тип). - Корректность контекста (
ContextID, параметры события, cycle-переменные). - Generated SQL и фактическую выборку.
- Привязку выражения к целевой сущности/настройке.
Связанные документы по smart-фильтрам