Возможности

Правила объекта — это механизм, который позволяет создавать правила валидации записей на языке JavaScript. Эти правила работают на уровне объекта в рамках всего приложения — на всех формах объекта, а также при инлайн-редактировании списков.

Если пользователь попытается сохранить запись, для которой не выполняется хотя бы одно правило валидации, то сохранение заблокируется и отобразится ошибка.

Пример валидационной ошибки

Ключевые возможности

  • Использование JavaScript. Логика валидации задается с помощью функций JavaScript и позволяет использовать для описания логики весь набор встроенных конструкций и функций. Редактор кода поддерживает автодополнение и содержит встроенную документацию.

  • Валидация записей и отдельных полей. Есть возможность валидировать как записи целиком, так и отдельные поля, а также группы полей и их зависимости.

  • Именованные проверки. Все правила именуются. Если правило не выполняется, пользователю в интерфейсе выводится ошибка с названием правила. Это дает возможность наглядно описать требования к объектам, на основе которых можно сформировать документацию по системе.

  • Работает на форме и в инлайне. Правила отрабатывают одинаково как на форме, так и при инлайн-редактировании в списке. Если есть несколько форм или списков объекта, правила работают на всех этих формах и списках.

  • Поддержка DFK. Если у объекта имеются поля с динамической связью, то правила объекта динамической связи будут работать и на родительской форме.

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

  • Возможность отладки. Можно использовать стандартную отладку в браузере, добавляя точки остановки с помощью JavaScript-инструкции debugger. Также доступно логирование с помощью console.log().

  • Только серверные или только клиентские правила. Можно управлять на какой стороне исполнять проверку: и на сервере и на клиенте, или только на одной из сторон. Используйте if($mdt.isClientMode) для проверки на клиенте, if(!$mdt.isClientMode) для сервера, или без условия для одновременного выполнения на обеих сторонах.

  • Фильтрация значений в FK-полях. Для FK-полей можно задать логику фильтрации доступных для выбора записей.

  • Возможность вызвать хранимую функцию. С помощью data.fetch можно вызывать SQL-функции, а также передавать параметры.

Как начать работу

  1. Ознакомьтесь с примерами правил в статье Примеры правил.

  2. Настройте правила по инструкции Настройка.