В левой части окна редактирования смарт-выражения расположено дерево сущностей: в нем представлены параметры и объекты "Первой Формы", которые можно использовать в смарт-выражениях, а также набор предопределенных конструкций для работы с этими объектами.
Дерево сущностей в окне редактирования смарт-выражений.
Правая часть может работать в двух режимах: конструктора смарт-выражений или запросов TSQL. Переключение между режимами выполняется кнопкой В TSQL\ В SMART.
Возможность работать с SQL напрямую из интерфейса системы по умолчанию отключена. Чтобы кнопка В TSQL была доступна в интерфейсе администратора, в файле web.config (appsettings.json) должна быть отключена опция disableSQLShell. См. Руководство по техподдержке. |
---|
При переводе смарта в TSQL возможны ошибки, в этом случае необходимо ручное исправление кода. |
---|
Редактор в режиме конструктора SMART. |
Редактор в режиме работы с TSQL. |
Работа с выражениями TSQL рассмотрена здесь.
Конструктор смарт-выражений
Основой конструктора смарт-выражений является меню встроенных функций и операторов. Сверху над меню расположено поле Имя, оно содержит название smart-выражения. Само смарт-выражение формируется в поле, расположенном под меню, над кнопкой Сохранить .
Интерфейс редактирования смарт-выражения.
Чтобы добавить в смарт-выражение функцию или оператор, выберите его мышью в меню и затем заполните атрибуты. Чтобы вставить в строку параметр или объект из дерева сущностей, щелкните по нему мышью. Если вы предварительно выделите атрибут в строке, то введенный параметр заменит этот атрибут:
Редактирование параметра функции.
Чтобы удалить функцию из смарт-выражения, щелкните левой кнопкой мыши по названию и выберите "Удалить" в появившемся контекстном меню:
Удаление функции.
Сохранение смарт-выражения
Для использования созданного смарт-выражения или смарт-фильтра его надо сохранить в системе, нажав кнопку Сохранить. Иногда существующее смарт-выражение надо немного модифицировать и сохранить под другим именем. Для этого введите новое имя в поле "Имя" и нажмите кнопку Сохранить как новый.
Сохранение смарт-выражения.
Для копирования всего смарт-выражения или его части можно использовать стандартный способ копирования через буфер обмена (клавиши Ctrl+C чтобы скопировать и Ctrl+V чтобы вставить).
При создании смарт-выражения надо следить за тем, чтобы возвращаемый результат имел нужный тип. Например, если формируется смарт-выражения для записи в поле "Дата", результат этого выражения должен иметь тип "Дата". Если формируется смарт-выражение для записи в поле, соответствующее единичному объекту, то результатом не может быть список. Если список формируется непосредственно в смарт-выражении, то он должен иметь формат {ААА, ВВВ, ССС}. |
---|
Использование фигурных скобок
В смарт-выражениях могут использоваться как единичные объекты, так и коллекции и списки. Бывают случаи, когда смарт-выражение должно обязательно возвращать коллекцию, даже если она включает в себя только один элемент. Чтобы единичный объект или список таких объектов воспринимался как коллекция, он заключается в фигурные скобки.
Примеры использования фигурных скобок.
Использование ID объектов вместо номеров
Вместо непосредственного ввода ID объекта предпочтительнее использовать кнопку Выбрать ID объекта. В этом случае откроется окно для выбора:
Выбор ID объекта в смарт-выражении.
В результате будет создана конструкция, в которой вместо числового ID объекта используется типизированная ссылка на него:
Использование ID объекта в смарт-выражении.
Такой способ формирования ссылки на объект является предпочтительным, поскольку облегчает выполнение служебных заданий и перенос смарт-выражений между разными инсталляциями системы.
Использование параметров события
Некоторые смарт-события имеют контекстные переменные (например, для перехода по маршруту — пользователь, нажавший на кнопку). Если смарт-выражение вызывается в пакете документов, привязанном к такому событию, в дереве сущностей будет отображаться папка "Параметры события ...". Раскрыв папку, вы увидите список параметров и сможете обратиться к нужному свойству.
Обращение к параметру события в смарт-выражении.
Аналогично можно обращаться к значениям переменных, передаваемых между смарт-действиями в рамках одного смарт-пакета.
Полезные ссылки