Show/Hide Toolbars

Руководство администратора

После создания задачи рассчитаем номер договора как следующий порядковый номер за год и запишем это значение в ДП "Номер договора" в формате:

XXXX/N,

где XXXX — год (четыре цифры), а N — порядковый номер договора за год (количество цифр не ограничено).

Примечание: В реальных процессах часто поддерживается более сложная нумерация — в разрезе видов договоров, контрагентов, филиалов и пр.
Например, номер договора "ООО Ромашка П4-2019/2" может означать — договор с ООО Ромашка, вид договора "продажа", договор заключен филиалом №4 в 2019 году, и это второй договор продажи в этом году с этим контрагентом.

Проверка на уникальность номера договора

Номер договора должен быть уникальным. Проверка на уникальность должна выполняться в двух случаях:

при создании задачи — эта автоматизация должна срабатывать на событие "Перед постановкой и переносом задачи",

при изменении ДП Номер договора в уже созданной задаче — эта автоматизация должна срабатывать на событие "Перед сменой ДП".

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

Теперь добавим проверку уникальности номера договора при изменении ДП в уже созданной задаче. Смарт-пакет для отмены изменения можно использовать тот же самый, что и в предыдущей автоматизации. Но смарт-фильтр нужен другой, и вот почему:

когда смарт-фильтр создается для определенного события, в нем доступны параметры этого события. Подробнее об этом можно прочитать здесь. Для других событий этот смарт-фильтр уже не подходит.
В данной автоматизации мы проверяем новое значение ДП до того, как оно будет записано в БД. Этот параметр доступен только для события "Перед сменой дп". Поэтому нам нужен отдельный смарт-фильтр для работы именно с этим событием.

Полезные ссылки