Использование параллельных вложенных бизнес-процессов

Механизм бизнес-процессов 1С:Предприятия 8 предусматривает вызов вложенных бизнес-процессов и ожидание их завершения для продвижения родительского бизнес-процесса дальше по карте маршрута.

Для этого предназначена точка вложенного бизнес-процесса, одним из свойств которой является тип бизнес-процесса. В приведенном примере после выписки счета менеджером создается вложенный бизнес-процесс контроля оплаты счета, по завершении которого кладовщик выдает товар со склада:

Стандартная механика обеспечивает создание, запись и старт одиночного бизнес-процесса указанного типа.

С помощью обработчиков ПередСозданиемВложенныхБизнесПроцессов() и ПриСозданииВложенныхБизнесПроцессов() можно дополнить или полностью переопределить стандартную механику, см. рисунок:

 

В качестве примера рассмотрим создание сразу нескольких вложенных бизнес-процессов в точке маршрута «подготовка к испытательному сроку» бизнес-процесса приема нового сотрудника на работу.

Для этого в обработчике ПередСозданиемВложенныхБизнесПроцессов() создадим нужно количество вложенных бизнес-процессв и добавим их в массив "ФормируемыеБизнесПроцессы". Если этот массив не пустой, то стандартная механика создания вложенного бизнес-процесса не будет выполнена, а созданные в этом обработчике бизнес-процуессы будут связаны с соответствующими мастер-задачами, записаны и стартованы.

Копировать в буфер обмена
Процедура ПередСозданиемВложенныхБизнесПроцессов(ТочкаМаршрутаБизнесПроцесса, ФормируемыеБизнесПроцессы, Отказ)

            БизнесПроцесс1 = БизнесПроцессы.ПодготовкаРабочегоМеста.СоздатьБизнесПроцесс();
            // Настройка бизнес-процесса БизнесПроцесс1
            ФормируемыеБизнесПроцессы.Добавить(БизнесПроцесс1);

            БизнесПроцесс2 = БизнесПроцессы.Инструктаж.СоздатьБизнесПроцесс();
            // Настройка бизнес-процесса БизнесПроцесс2
            ФормируемыеБизнесПроцессы.Добавить(БизнесПроцесс2);

            БизнесПроцесс3 = БизнесПроцессы.ПодготовкаОборудования.СоздатьБизнесПроцесс();
            // Настройка бизнес-процесса БизнесПроцесс3
            ФормируемыеБизнесПроцессы.Добавить(БизнесПроцесс3);

КонецПроцедуры