Во вложении внешняя обработка, ее можно использовать как для проверки, так и для внесения механизма в рабочую базу. Для проверки достаточно указать любую задачу по предмету, которая уже согласована, и при нажатии "Старт" остальные задачи согласованию по предмету, которые находятся у этого же исполнителя закроются автоматически.
В процессе выполнения выполняется несколько проверок:
1. Если исполнителем задачи является роль, то проверяется что исполнителем по этой роли является единственный участник, и этот участник уже согласовал предмет задачи.
2. Если по каким то причинам закрыть задачу не удалось, все изменения откатываются.
3. Проверяется что все задачи относятся к одному комплексному процессу, прочие задачи закрыты не будут (например, если была создана вручную подзадача согласования по этому предмету она не будет закрываться автоматически).
Для того чтобы внедрить этот функционал к себе в базу, достаточно воспользоваться стандартным функционалом обработчиков бизнес событий:
1. Нужно добавить обработчик бизнес события, скопировать в него полностью код процедуры "Проверка обработчика()" из прилагаемой внешней обработки, и раскомментить одну строчку кода (на скрине):
2. У нашего обработчика должны быть добавлены подписки на эти события:
Обратите внимание, автоматически будут закрыты как уже созданные задачи согласования участника, так и новые, которые будут созданы по этому предмету в процессе выполнения комплексного процесса! Если вы не хотите, чтобы закрывались последующие задачи, достаточно будет не добавлять подписку "Создание задачи", а добавить только "Задача выполнена". \
Проверено и используется на версии 1С: ДО 2.1.25.5.