﻿# Сравнение способов запуска подпроцессов

> [HTML Version](start-subprocesses.html)

При моделировании сложных бизнес‑процессов часто возникает необходимость декомпозиции: выделить повторяющиеся или обособленные сценарии в отдельные подпроцессы. В системе существует несколько способов запуска одного процесса из другого:

- блок **Запуск процесса** — отдельный графический элемент, который вы размещаете на схеме родительского процесса. Позволяет запустить любой процесс, созданный на уровне приложения, раздела или компании;

- вкладка **Запуск процесса** в настройках блоков **Задача**, **Создание элемента**, **Изменение элемента**, **Согласование**, **Ознакомление**, **Согласование по маршруту**, **Регистрация документа**, **Подписать** — способ доступен с версии системы 2026.2. Позволяет запустить подпроцесс одновременно с постановкой задачи родительского процесса. При этом в скриптах дочернего процесса вы можете получить прямой доступ к данным связанной задачи через системное свойство `\_\_task`;

- действие БП типа **Вызов процесса** — запускает процессы, созданные в пользовательском модуле.

Рассмотрим их сходства и различия.

## Сравнение действия типа «Вызов процесса», блока «Запуск процесса» и вкладки «Запуск процесса»

Действие типа **Вызов процесса**, блок **Запуск процесса **и вкладка **Запуск процесса** похожи, но между ними есть различия. Их сравнение приведено в таблице.

| | | | |
|------|------|------|------|
|  | **Вызов процесса** | **Блок «Запуск процесса»** | **Вкладка «Запуск процесса»** |
| Цель | Позволяет настроить запуск определённого бизнес‑процесса, созданного на уровне модуля.<br>Такой процесс нельзя запустить напрямую в интерфейсе ELMA365, например, через кнопку запуска процесса, добавленную на карточку элемента.<br>Выполняется только с помощью действия типа **Вызов процесса**. | Позволяет запустить любой бизнес-процесс, созданный на уровне приложения, раздела или компании. | 
| Пример использования | Обработка контекстных переменных родительского процесса в рамках настроенной интеграции со сторонним ресурсом через пользовательский модуль. | Работа с переменными родительского процесса в дочернем процессе в рамках параллельной комплексной задачи со своими зонами ответственности, шагами и т. д. | Передача системных свойств задачи из родительского в дочерний процесс, например, для формирования ссылки на задачу и т. д.  |
| Когда запускается | Подпроцесс запускается на отдельном шаге родительского процесса. | | Подпроцесс запускается одновременно с блоком, к которому привязан в родительском процессе. |
| Где настраивается | Пользовательское действие, созданное заранее в модуле. Отображается в виде блока на вкладке **Интеграции**, если модуль включён. | Отдельный блок на вкладке **Стандартные элементы**. | В настройках блоков **Задача**, **Создание элемента**, **Изменение элемента**, **Согласование**, **Ознакомление**, **Согласование по маршруту**, **Регистрация документа**, **Подписать**. |
| Асинхронный запуск | Нет.<br>Переход к следующему шагу бизнес-процесса возможен только после выполнения действия типа **Вызов процесса**. | Да (опционально).<br>Родительский процесс может выполняться параллельно с дочерним, т. е. с блоком **Запуск процесса**, не дожидаясь его окончания.<br>Также можно настроить возобновление родительского процесса только после окончания дочернего. | Только асинхронный запуск —  параллельно с родительским процессом. |
| Связать запуск подпроцесса с объектом родительского процесса | Нет. | Можно связать запуск подпроцесса с переменной типа **Приложение** родительского процесса. Тогда события дочернего процесса отобразятся в ассоциированной ленте связанного объекта. | Подпроцесс связывается автоматически с текущей задачей родительского процесса. Это позволяет в дочернем процессе обращаться в скриптах к данным этой задачи с помощью системного свойства `\_\_task`. |
| Передача контекстных переменных из родительского в дочерний процесс | Да. | | 
| Передача контекстных переменных из дочернего в родительский процесс | Да. | Да, если отключён асинхронный запуск. | Нет. |
| Отслеживается в мониторе процессов | Да. | | 
| История выполнения каждого шага доступна пользователям | Да. Информация доступна в карточке экземпляра на вкладке **История**. | | 

Подробнее о настройке этих способов читайте:

- о действии пользовательского модуля — в статье [«Вызов процесса»](call-process-activity.md);

- о блоке — в статье [«Запуск процесса»](360012266792.md);

- о вкладке —  в статье [«Параллельный запуск подпроцесса из текущего шага»](start-subprocess-tab.md).

