Возникает перед выполнением стандартной механики генерации задач. Если обработчик сам формирует список задач, то должен установить <СтандартнаяОбработка> в Ложь. В противном случае созданные им в этом обработчике задачи удаляются и заново формируются стандартной процедурой создания задач. Вне зависимости от <СтандартнаяОбработка> после этого обработчика обязательно будет вызван обработчик ПриСозданииЗадач.
Синтаксис
ПередСозданиемЗадач(<ТочкаМаршрута>, <ФормируемыеЗадачи>, <СтандартнаяОбработка>)Полное описание, параметры и ограничения
ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>.ПередСозданиемЗадач (BusinessProcessRoutePointRef.<Business process name>.BeforeCreateTasks)
ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса> (BusinessProcessRoutePointRef.<Business process name>)
ПередСозданиемЗадач (BeforeCreateTasks)
Доступен, начиная с версии 8.0.
Синтаксис:
ПередСозданиемЗадач(<ТочкаМаршрута>, <ФормируемыеЗадачи>, <СтандартнаяОбработка>)
Параметры:
<ТочкаМаршрута>
Тип: ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>.
Точка маршрута бизнес-процесса, на которой происходит создание задач.
<ФормируемыеЗадачи>
Тип: Массив.
Массив формируемых задач (объектов типа ЗадачаОбъект).
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартного формирования списка задач производиться не будет.
Значение по умолчанию: Истина.
Описание:
Возникает перед выполнением стандартной механики генерации задач. Если обработчик сам формирует список задач, то должен установить <СтандартнаяОбработка> в Ложь. В противном случае созданные им в этом обработчике задачи удаляются и заново формируются стандартной процедурой создания задач. Вне зависимости от <СтандартнаяОбработка> после этого обработчика обязательно будет вызван обработчик ПриСозданииЗадач.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Только для точек вида Действие и ВложенныйБизнесПроцесс.
Не допускаются интерактивные вызовы (открытие форм, предупреждений). Допускается использование метода Сообщить.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Согласовать: ПередСозданиемЗадач
Свой учебный процесс даёт настоящий источник события; в примере конкретное правило суммы, подтверждения или маршрутизации.
Где и как запускать
Модуль объекта своего бизнес-процесса УчебноеСогласование; процедуры назначаются в редакторе карты.
Подготовка
Работайте в отдельной пустой учебной конфигурации. Создайте справочник УчебныеИсполнители и предопределённый элемент Демонстрационный с наименованием Учебный исполнитель.
Создайте задачу УчебныеСогласования: строковый номер длиной 12, автонумерация, наименование длиной 100. Добавьте реквизит адресации Исполнитель типа СправочникСсылка.УчебныеИсполнители и выберите его основным реквизитом адресации. Здесь используется прямая адресация; регистр ролевой адресации не нужен.
Создайте параметр сеанса УчебныйИсполнитель того же ссылочного типа. В свойстве задачи Текущий исполнитель выберите этот параметр. Запросы урока передают исполнителя явно и не зависят от начального значения параметра сеанса.
Создайте бизнес-процесс УчебноеСогласование со строковым номером длиной 12 и автонумерацией. В свойстве Задача выберите УчебныеСогласования. Карта маршрута: Старт (начало) → Согласовать (действие) → Завершение. В точке Согласовать задайте адресацию Исполнитель = Демонстрационный, Групповая = Ложь.
И у задачи, и у бизнес-процесса создайте обычные реквизиты КомментарийУчебный (Строка 100), Сумма (Число 12.2), Подтверждено (Булево), ЗапретУдаления (Булево). Добавьте табличную часть Детали с колонками Наименование (Строка 100) и Количество (Число 10.0).
Каждый урок делайте на своей отдельной учебной карте. Основной код размещается в Модуле объекта бизнес-процесса УчебноеСогласование. В редакторе карты выберите указанную точку и назначьте её событию полное имя процедуры. Директивы клиентской формы в модуле объекта не добавляются.
Создайте собственный процесс через его форму, заполните Сумма=500, КомментарийУчебный=Учебная покупка; в Детали добавьте Книга / Количество=2. Адресация точки Согласовать — собственный Демонстрационный. Тестовые задачи и процессы действительно создаются только при вашем ручном запуске.
Не вызывайте обработчик вручную вместо механизма маршрута: событие получает настоящую точку / задачу от платформы. Ничего из приведённого кода при сборке HTML не выполнялось.
Процедура СогласоватьПередСозданиемЗадач(ТочкаМаршрута, ФормируемыеЗадачи, СтандартнаяОбработка)
СтандартнаяОбработка = Истина;
Сообщить("Задачи сформирует стандартная адресация своей точки");
Сообщить("До стандартного формирования: " + Строка(ФормируемыеЗадачи.Количество()));
КонецПроцедурыРазбор по шагам
Подготовьте собственную карту и её реквизиты.
Назначьте обработчик событию точной точки маршрута.
Запустите / выполните собственный процесс и сравните заполненные и незаполненные условия.
Как проверить результат
Для точки Согласовать назначена процедура СогласоватьПередСозданиемЗадач. Параметры соответствуют событию точки, а не похожему событию самой задачи.
Серверный обработчик использует Сообщить; модальные окна и формы в неинтерактивной обработке маршрута не открываются.
Список вручную не изменяется. При СтандартнаяОбработка=Истина платформа формирует его заново; добавленные вручную до этого элементы не следует считать сохранёнными.
Ожидаемый результат
Показано реальное место вызова и действие параметров конкретного события маршрута.
На что обратить внимание
Отказ и Результат имеют разные смыслы: Истина в Отказ отменяет действие, а Истина в ПроверкаУсловия выбирает отмеченную ветку.
Учебный UI-запуск действительно может записывать только собственные процессы / задачи. Рабочую базу не используйте.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.