Валидация параметров заявки

Внимание! Мы не гарантируем поддержку этих функций в будущих релизах в том виде, как они описаны сейчас.
Written by Anton Resko
Updated 2 years ago

Валидация параметров типа Date

Для параметров типа Date в декларации, в блоке validations, нужно указать формулу и текст сообщения об ошибке. Значение в параметре будет считаться ошибочным, если формула вернет ложь. В этом случае пользователю будет отображено сообщение об ошибке. Валидация параметра по формуле будет происходить так же, как и валидация обязательности полей.

parameters: 
declaration:
- id: parameter-1
caption: Дата возмещения
type: date
mode: date
validations:
- formula: Today() <= [parameter-1]
message: Значение параметра не может быть в прошлом

Поддерживаемы функции:

  • Today() - сегодняшняя дата без времени

  • Now() - текущее время и дата

  • NowUTC()- текущее время и дата в UTC

  • AddDay([дата], [сколько дней добавить], [тип календаря]) - добавляет указанное количество дней к дате. Тип календаря - WorkDays или CalendarDays, соотв. рабочие или календарные дни согласно календаря по-умолчанию

  • [parameter_id] - использовать значение параметра

  • 'YYYY-MM-DD' - константа типа дата

  • 'YYYY-MM-DD HH:MM:SS' - константа типа дата/время

Пример использования функции добавления дней

     validations: 
- formula: AddDay(Today(), 3, WorkDays) <= [parameter-1]
message: Значение параметра должно быть на три дня позже чем сегодня

Примеры формул для валидации параметров и условного запуска элементов заявки (формулы возвращают true|false)

Использование двух булевых параметров в формуле через оператор AND.

"[parameter-1] && [parameter-2]"

Использование двух булевых параметров в формуле через оператор OR.

"[parameter-1] || [parameter-2]"

Проверка текстового параметра по регулярному выражению.

"[parameter-3] =~ '\\d+'"

Сравнение числового параметра со значением.

"[parameter-5] > 10"

Сравнение числового параметра со значением. Тут добавляется проверка, параметра на пустое значение, и если так, то берется для него значение 0.

"([parameter-5] ?? 0) > 10"

Сравнение параметра типа Select.

"[parameter-9] == 'Value 1'"

Сравнение параметра типа Date с сегоднешней датой.

"[parameter-7] >= Today()"

Сравнение параметра типа Date с сегоднешней датой с проверкой на пустоту.

"([parameter-7] ?? '') >= Today()"

Проверка любого параметра на пустое значение.

"[parameter-11] != nil"

Did this answer your question?