ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>.ПриСозданииВложенныхБизнесПроцессов

События · OnCreateSubBusinessProcesses

Возникает после формирования списка ведущих задач для вложенных бизнес-процессов. Список ведущих задач может быть сформирован либо платформой автоматически, либо переопределен разработчиком в обработчике события ПриСозданииЗадач. Этот же обработчик предназначен для того, чтобы изменить списки ведущих задач и вложенных бизнес-процессов, сформированные платформой. Например, добавить к ним новые бизнес-процессы и ведущие задачи, или удалить ненужные. Если вложенный бизнес-процесс имеет несколько точек старта, то в этом обработчике можно записать и стартовать вложенный бизнес-процесс с нужной точки старта. Запись и старт вложенных бизнес-процессов будет осуществлен после завершения обработчика.

Синтаксис

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

ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>.ПриСозданииВложенныхБизнесПроцессов (BusinessProcessRoutePointRef.<Business process name>.OnCreateSubBusinessProcesses)

ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса> (BusinessProcessRoutePointRef.<Business process name>)

ПриСозданииВложенныхБизнесПроцессов (OnCreateSubBusinessProcesses)

Доступен, начиная с версии 8.0.

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

<ТочкаМаршрута>
Тип: ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>.
Точка бизнес-процесса, на которой происходит создание вложенных бизнес-процессов.

<ФормируемыеБизнесПроцессы>
Тип: Массив.
Массив формируемых бизнес-процессов.

<Отказ>
Тип: Булево.
Признак отказа от записи и старта вложенных бизнес-процессов. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись и старт вложенных бизнес-процессов произведен не будет.
Значение по умолчанию: Ложь.
Описание:

Возникает после формирования списка ведущих задач для вложенных бизнес-процессов. Список ведущих задач может быть сформирован либо платформой автоматически, либо переопределен разработчиком в обработчике события ПриСозданииЗадач.
Этот же обработчик предназначен для того, чтобы изменить списки ведущих задач и вложенных бизнес-процессов, сформированные платформой. Например, добавить к ним новые бизнес-процессы и ведущие задачи, или удалить ненужные.
Если вложенный бизнес-процесс имеет несколько точек старта, то в этом обработчике можно записать и стартовать вложенный бизнес-процесс с нужной точки старта.
Запись и старт вложенных бизнес-процессов будет осуществлен после завершения обработчика.

Доступность:

Сервер, толстый клиент, внешнее соединение.

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

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

ПроверитьВложенно: ПриСозданииВложенныхБизнесПроцессов

Свой учебный процесс даёт настоящий источник события; в примере конкретное правило суммы, подтверждения или маршрутизации.

Где и как запускать

Модуль объекта своего бизнес-процесса УчебноеСогласование; процедуры назначаются в редакторе карты.

Подготовка

  1. Работайте в отдельной пустой учебной конфигурации. Создайте справочник УчебныеИсполнители и предопределённый элемент Демонстрационный с наименованием Учебный исполнитель.

  2. Создайте задачу УчебныеСогласования: строковый номер длиной 12, автонумерация, наименование длиной 100. Добавьте реквизит адресации Исполнитель типа СправочникСсылка.УчебныеИсполнители и выберите его основным реквизитом адресации. Здесь используется прямая адресация; регистр ролевой адресации не нужен.

  3. Создайте параметр сеанса УчебныйИсполнитель того же ссылочного типа. В свойстве задачи Текущий исполнитель выберите этот параметр. Запросы урока передают исполнителя явно и не зависят от начального значения параметра сеанса.

  4. Создайте бизнес-процесс УчебноеСогласование со строковым номером длиной 12 и автонумерацией. В свойстве Задача выберите УчебныеСогласования. Карта маршрута: Старт (начало) → Согласовать (действие) → Завершение. В точке Согласовать задайте адресацию Исполнитель = Демонстрационный, Групповая = Ложь.

  5. И у задачи, и у бизнес-процесса создайте обычные реквизиты КомментарийУчебный (Строка 100), Сумма (Число 12.2), Подтверждено (Булево), ЗапретУдаления (Булево). Добавьте табличную часть Детали с колонками Наименование (Строка 100) и Количество (Число 10.0).

  6. Каждый урок делайте на своей отдельной учебной карте. Основной код размещается в Модуле объекта бизнес-процесса УчебноеСогласование. В редакторе карты выберите указанную точку и назначьте её событию полное имя процедуры. Директивы клиентской формы в модуле объекта не добавляются.

  7. Создайте собственный процесс через его форму, заполните Сумма=500, КомментарийУчебный=Учебная покупка; в Детали добавьте Книга / Количество=2. Адресация точки Согласовать — собственный Демонстрационный. Тестовые задачи и процессы действительно создаются только при вашем ручном запуске.

  8. Не вызывайте обработчик вручную вместо механизма маршрута: событие получает настоящую точку / задачу от платформы. Ничего из приведённого кода при сборке HTML не выполнялось.

  9. Создайте отдельный дочерний бизнес-процесс УчебнаяПроверкаКниг с собственной простой картой Старт → Действие → Завершение и той же учебной задачей. В родительской карте добавьте точку ВложенныйБизнесПроцесс ПроверитьВложенно и выберите этот дочерний вид. Не указывайте родительский вид в качестве собственного дочернего процесса: рекурсивный запуск не нужен.

  10. В обработчиках не вызываются Записать и Старт у вложенных процессов: их создание / запуск после успешного обработчика выполняет механизм платформы. Пустой массив в ПередСозданиемВложенныхБизнесПроцессов означает стандартное формирование, а не гарантированное отсутствие дочернего процесса.

Процедура ПроверитьВложенноПриСозданииВложенныхБизнесПроцессов(ТочкаМаршрута, ФормируемыеБизнесПроцессы, Отказ)
    КоличествоПроцессов = ФормируемыеБизнесПроцессы.Количество();
    Если КоличествоПроцессов > 2 Тогда
        Отказ = Истина;
        Сообщить("В учебной покупке разрешено не более двух вложенных проверок");
    Иначе
        Сообщить("Будет создано вложенных процессов: " + Строка(КоличествоПроцессов));
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Подготовьте собственную карту и её реквизиты.

  2. Назначьте обработчик событию точной точки маршрута.

  3. Запустите / выполните собственный процесс и сравните заполненные и незаполненные условия.

Как проверить результат

  1. Для точки ПроверитьВложенно назначена процедура ПроверитьВложенноПриСозданииВложенныхБизнесПроцессов. Параметры соответствуют событию точки, а не похожему событию самой задачи.

  2. Серверный обработчик использует Сообщить; модальные окна и формы в неинтерактивной обработке маршрута не открываются.

Ожидаемый результат

Показано реальное место вызова и действие параметров конкретного события маршрута.

На что обратить внимание

  1. Отказ и Результат имеют разные смыслы: Истина в Отказ отменяет действие, а Истина в ПроверкаУсловия выбирает отмеченную ветку.

  2. Учебный UI-запуск действительно может записывать только собственные процессы / задачи. Рабочую базу не используйте.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.