Валидаторы (или блокировки) — инструмент, позволяющий осуществлять проверку по заданному условию при выполнении определённого действия над элементом системы и в зависимости от результата проверки разрешить данное действие или заблокировать его.
Есть два типа валидаторов:

Валидаторы концептуально состоят из двух частей:

Важно! Различие состояний в формулах условия
В условии срабатывания и в условии блокировки используется разное состояние текущего элемента:

Например, если у замечания сменили статус с «Не начато» на «Выполняется»: при проверке условия срабатывания статус будет «Выполняется», а при проверке условия блокировки статус будет «Не начато». Такой подход позволяет накладывать формулы проверки как на состояние «До», так и на состояние «После».

Порядок создания валидатора (блокировки)

  1. В настройках пространства Центр администрирования в разделе Типы элементов выбрать необходимый тип элемента, для которого требуется настроить блокировку.
  2. В панели справа выбрать закладку Валидаторы и нажать Добавить (для редактирования уже существующего валидатора выполните двойной клик на соответствующей записи).
  3. В появившемся выпадающем списке кнопки «Добавить» выбрать соответствующий тип блокировки.
  4. Заполнить атрибуты нового валидатора:

    Атрибут

    Описание

    Название

    Произвольное название валидатора (рекомендуется давать смысловые названия, отражающие суть проверки).

    Тип

    «Блокировка изменения (формула)» или «Блокировка удаления (формула)». Это определяется при создании валидатора, в дальнейшем не изменяется.

    Условие срабатывания (формула)

    Формула, возвращающая true (проверять блокировку) или false (не проверять). Использует состояние атрибутов после изменения.

    Условие блокировки (формула)

    Основная формула валидатора. true — разрешить действие, false — заблокировать. Использует состояние атрибутов до изменения.

    Сообщение пользователю о блокировке

    Текст, который будет показан пользователю при блокировке действия.
    Внимание! Текст сообщения может быть также рассчитан по формуле. При использовании расчета по формуле
    этот атрибут должн содержать только формулу. Если нужен текст + вычисленное значение, то формула должна содержать формат и результат вычисления должен быть строковым (см. примеры ниже).


    Примеры

    Пример 1. Задача: при переводе замечания в статус «На доработку» проверить заполнение поля «Вопрос проектировщику». Если поле не заполнено — показать сообщение и заблокировать смену статуса:

Пример 2. Задача: При ручном заполнении Текущего процента выполнения проекта на папке комплекта блокировать ввод, если сумма заполненных процентов на всех комплектах проекта больше 100

 

Поведение при переходе к связанному элементу из сообщения валидатора

Если в условии блокировки или в сообщении о блокировке ссылается на связанный элемент, то начиная с версии 25.1 в сообщении валидатора, которое видит пользователь, отображается ссылка на связанный элемент. При переходе по ссылке:

Ранее переход осуществлялся без подсветки строки и открытия карточки, что затрудняло идентификацию конкретного элемента в списке. (VITROCAD-5929)

Особенности работы валидаторов при автоматическом запуске процесса УТОЧНЕНО

В сценариях, когда процесс запускается автоматически (через правило Автоматизации, а не пользователем вручную), работа валидаторов имеет следующие особенности:
Предупреждение
При автоматическом запуске процесса валидаторы, в формулах которых используются функции работы со связями (Refs), могут отрабатывать некорректно. В таких случаях блокировка может не сработать даже при нарушении заданного условия.
Это поведение фиксировалось в версиях до 25.1 и было исправлено в версии 25.1 (VITROCAD-5674). Тем не менее, при разработке сложных сценариев с автозапуском процессов рекомендуется проводить дополнительное тестирование взаимодействия валидаторов и автоматизации.

Связь с модулем Автоматизации

Валидаторы и Автоматизация работают совместно, обеспечивая полный цикл управления жизненным циклом элементов системы:Чаще всего валидаторы нужны для блокировки действий пользователя, тогда как автоматизация - это про автоматические действия самой системы. Не очень понятно, какая здесь связь. Ниже и описаны роли и взаимосвязи в жизненном цикле. Действия это не только пользовательские действия, но и автоматические

При отладке правил рекомендуется проверять оба инструмента в комплексе, так как конфликт между ними может приводить к неочевидному поведению системы.