Задача [0150]: Серверная валидация только изменённых полей в РКК

Проблема: на данный момент при редактировании документа (например, добавлении основания), чья дата завершения меньше, чем текущая дата на сервере, система отображает ошибку "Дата завершения меньше текущей даты" и не позволяет сохранять изменения. В связи с этим необходимо отключить проверку условия, что дата завершения должна быть больше текущей даты в случае, если это поле не менялось.

Сопроводительная документация:

Используется: Документооборот -> Карточка РКК (документы со статусом "Черновик" и "Отклонен").

Решение: необходимо проводить валидацию только измененных полей документа отдельно по следующим группам:

При этом валидация должна происходить на стороне сервера.

Валидация при сохранении документа с измененными полями. Необходимо запрещать сохранять изменения в карточке РКК и отображать ошибку со следующим текстом в зависимости от поля:

Примечание 1

Если дата, указанная в компоненте "Дата завершения" не была изменена, необходимо позволять сохранять изменения в карточке РКК, а также отсылать документ на регистрацию в случае, даже если эта дата меньше, чем текущая дата на сервере.

Примечание 2

Изменения должны учитываться лишь в случае, если значение поля до момента вызова валидации отличается от сохраняемого.

Примечание 3

Необходимо сохранить функционал компонентов "Длительность", "Дата регистрации" и "Дата завершения", а именно:

В случае ввода неправильного формата даты (несуществующая дата) и/или длительности (отрицательное число / 0 / символы вместо цифр) необходимо подсвечивать поле красным цветом и отображать ошибку с текстом, согласно изменяемому компоненту.

Валидация при отправке на регистрацию документа с измененными полями. Необходимо запрещать сохранять изменения в карточке РКК, а также отправлять документ на регистрацию и отображать ошибку со следующим текстом в зависимости от поля:

Пример ожидаемого результата

  1. Создать черновик документа_1.

  2. Создать черновик документа_2.

  3. Перевести время на сервере таким образом, что дата завершения документа_1 была меньше, т.е. документ_1 стал просроченным.

  4. Авторизоваться с логином и паролем сотрудника канцелярии.

  5. Открыть карточку РКК документа_1.

  6. В поле "Основание" выбрать документ_2.

  7. Сохранить изменения.

  8. Документ_1 успешно сохранен, в качестве основания данного документа указан документ_2.