Стандартная механика обеспечивает автоматическое завершение бизнес-процесса, когда он достигает точки завершения и все задачи по нему выполнены. Однако иногда может потребоваться принудительно завершить бизнес-процесс, не дожидаясь, пока он дойдет до точки завершения.
Для этого необходимо установить свойство Завершен бизнес-процесса равным Истина:
Копировать в буфер обменаБизнесПроцесс.Завершен = Истина; БизнесПроцесс.Записать();
Далее нужно отметить все задачи по этому бизнес-процессу как выполненные. Отобрать задачи по бизнес-процессу можно с помощью запроса вида:
Копировать в буфер обмена"ВЫБРАТЬ | Задача.Ссылка |ИЗ | Задача.Задача КАК Задача |ГДЕ | Задача.БизнесПроцесс = &Парам";
После чего каждой из отобранных задач нужно установить свойство Выполнена равным Истина:
Копировать в буфер обменаТекущаяЗадача.Выполнена = Истина; ТекущаяЗадача.Записать();
Рекомендуется выполнять запись бизнес-процесса и задач в транзакции, чтобы избежать возможного расхождения бизнес-процесса и связанных с ним задач.
Пример реализации такой методики завершения бизнес-процесса приводится в обработке "ЗавершениеБизнесПроцессов". Эта обработка позволяет выбрать любой бизнес-процесс и завершить его путем нажатия на кнопку "Завершить":
Обработка ЗавершениеБизнесПроцессов81.epf находится на CD-ROM в каталоге \1CITS\EXE\BusinessProcess81\