Войти

Валидация

Общие сведения

Во многих компонентах ВКУ существует механизм валидации вводимых пользователем данных. Данный механизм призван провести проверку вводимых данных и выдать соответствующее сообщение при отрицательном результате валидации.

Виды валидации

1. Регулярное выражение – тип валидации в ВКУ, основанный на сравнении ведённого пользователем значения со значением, написанном на специальном формальном языке, состоящем из специальных метасимволов (ссылка на общий материал по регуляркам). Если валидация не проходит, выдаётся сообщение об ошибке.

1.png

2. Хотя бы один – тип валидации, при котором происходит проверка заполненности или выбора хотя бы одного компонента из группы на форме. Эту настройку необходимо указать в каждом компоненте группы. При попадании на экран пользователю будет доступна кнопка перехода на следующий экран только при выборе или заполнении хотя бы одного из отмеченных этим атрибутов компонента. Проверка работает даже с компонентами разного типа. Например, StringInput и Check Box.

2.png

3. Не позволяет считать валидным значение, состоящее только из 0 – тип валидации, при котором ведённое значение, состоящее из всех нулей и проходящее формальную проверку, не будет считаться валидным. Например, СНИЛС 000-000-000 00 формально проходит все проверки на валидность. Поэтому необходимо включить этот вид валидации для исключения ввода пользователем таких значений.

4. Проверка по формуле расчета контрольного числа - Встроенная проверка корректности введенных ИНН, ОГРН, ОРГНИП в соответствии с общедоступными источниками требований к валидации. Проверяет валидацию значений по специальной формуле контрольного разряда или подобным образом.

5. Валидация СНИЛС – в СНИЛС 10 и 11 цифры являются контрольными разрядами. Алгоритм проверки контрольного числа следующий. Вычислить сумму произведений цифр СНИЛС (с 1-й по 9-ю) на следующие коэффициенты: 9, 8, 7, 6, 5, 4, 3, 2, 1 (т.е. номера цифр в обратном порядке) Вычислить контрольное число от полученной суммы следующим образом: если она меньше 100, то контрольное число равно этой сумме; если равна 100, то контрольное число равно 0; если больше 100, то вычислить остаток от деления на 101 и далее: если остаток от деления равен 100, то контрольное число равно 0; в противном случае контрольное число равно вычисленному остатку от деления.

6. Валидация ОГРН – в ОГРН 13 цифра является контрольным разрядом. Алгоритм проверки контрольного числа следующий. Выбрать 12-значное число ОГРН (с 1-й по 12-ю цифру). Вычислить остаток от деления выбранного числа на 11. Сравнить младший разряд полученного остатка от деления с 13-й цифрой ОГРН. Если они равны, то ОГРН верный.

7. Валидация ОГРНИП – в ОГРНИП 15 цифра является контрольным разрядом. Алгоритм проверки контрольного числа следующий. Выбрать 14-значное число ОГРНИП (с 1-й по 14-ю цифру). Вычислить остаток от деления выбранного числа на 13. Сравнить младший разряд полученного остатка от деления с 15-й цифрой ОГРНИП. Если они равны, то ОГРНИП верный.

8. Валидация ИНН ИП и ФЛ – в ИНН ИП и ФЛ 11 и 12 цифры являются контрольным числом. Алгоритм проверки контрольного числа следующий. Вычислить 1-ю контрольную цифру: Вычислить сумму произведений цифр ИНН (с 1-й по 10-ю) на следующие коэффициенты:
7, 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 7 * ИНН[1] + 2 * ИНН[2] + ...) Вычислить младший разряд остатка от деления полученной суммы на 11. Вычислить 2-ю контрольную цифру: Вычислить сумму произведений цифр ИНН (с 1-й по 11-ю) на следующие коэффициенты:
3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 3 * ИНН[1] + 7 * ИНН[2] + ...) Вычислить младший разряд остатка от деления полученной суммы на 11. Сравнить 1-ю контрольную цифру с 11-й цифрой ИНН и сравнить 2-ю контрольную цифру с 12-й цифрой ИНН. Если они равны, то ИНН верный.

9. Валидация ИНН организации – в ИНН организации 10 цифра является контрольным разрядом. Алгоритм проверки контрольного числа следующий. Вычислить сумму произведений цифр ИНН (с 1-й по 9-ю) на следующие коэффициенты — 2, 4, 10, 3, 5, 9, 4, 6, 8 (т.е. 2 * ИНН[1] + 4 * ИНН[2] + ...). Вычислить остаток от деления полученной суммы на 11. Сравнить младший разряд полученного остатка от деления с младшим разрядом ИНН. Если они равны, то ИНН верный.

10. Валидация номер карты – номер проверяется по специальному алгоритму валидации номеров карт Луна.

11. Проверка значений по заданному выражению – тип валидации, при котором происходит проверка нескольких введенных значений по заданной формуле. Если конкретное введённое значение в поле не удовлетворяет данному логическому выражению, то отобразится ошибка.
Пример выражения:

»(${si.value} – 0.1 * ${si2.value}) / 2.5  >= ${si2.value} + 3.1»

12. Минимальная дата – тип валидации для даты, при котором она должна быть больше заданной.

3.png

Для функционирования этого типа валидации необходимо заполнить «Значение, для которого установить отработку валидации» или указать в поле «Ссылка на другой компонент, значение которого будет сравниваться» ссылку на какой-нибудь компонент, относительно которого будет идти проверка.

Также в полях смещения можно указать целочисленные положительные или отрицательные величины, которые будут увеличивать или уменьшать дату, относительно которой будет идти расчет. При невыполнении правила валидации будет выдано сообщение, указанное в поле «Сообщение об ошибке, отображаемое, если правило валидации не выполняется».

13. Максимальная дата – тип валидации для даты, при котором она должна быть меньше заданной. Работает аналогично минимальной дате.

События валидации

Проверка вводимых пользователем данных может проводиться в различные моменты взаимодействия пользователя с формой услуги. В ВКУ выделены три таких момента:

  1. Когда пользователь изменяет значение в поле – валидация проводится при каждом изменении значения в поле.
  2. Когда пользователь нажимает вне поля – валидация проводится в момент, когда пользователь покидает поле.
  3. Когда пользователь переходит на следующий экран – валидация проводится, когда пользователь нажимает кнопку «Далее».

Целесообразней всего использовать варианты 2 и 3. Вариант 1 можно использовать в особых, крайне редких и узкоспециализированных случаях.

Авторизуйтесь, чтобы оставить комментарий к статье