Возникает в момент, когда выполняется установка нового номера бизнес-процесса.
Синтаксис
ПриУстановкеНовогоНомера(<СтандартнаяОбработка>, <Префикс>)Полное описание, параметры и ограничения
БизнесПроцессОбъект.<Имя бизнес-процесса>.ПриУстановкеНовогоНомера (BusinessProcessObject.<Business process name>.OnSetNewNumber)
БизнесПроцессОбъект.<Имя бизнес-процесса> (BusinessProcessObject.<Business process name>)
ПриУстановкеНовогоНомера (OnSetNewNumber)
Доступен, начиная с версии 8.0.
Синтаксис:
ПриУстановкеНовогоНомера(<СтандартнаяОбработка>, <Префикс>)
Параметры:
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная генерация нового номера производиться не будет.
Значение по умолчанию: Истина.
<Префикс>
Тип: Строка.
Префикс, который будет использоваться для генерации номера. Может быть изменен в процедуре-обработчике события.
Описание:
Возникает в момент, когда выполняется установка нового номера бизнес-процесса.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Параметр <Префикс> может быть указан, если Номер имеет тип Строка.
Замечание:
Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
См. также:
БизнесПроцессОбъект.<Имя бизнес-процесса>, метод УстановитьНовыйНомер
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Обработать ПриУстановкеНовогоНомера у собственного бизнес-процесса
Событие вызывается платформой при конкретном действии. Отказ, стандартная обработка и результат изменяются только там, где это предусмотрено сигнатурой.
Где и как запускать
Модуль объекта УчебноеСогласование. Без клиентских директив; действия запускаются из серверной учебной процедуры.
Подготовка
Работайте в отдельной пустой учебной конфигурации. Создайте справочник УчебныеИсполнители и предопределённый элемент Демонстрационный с наименованием Учебный исполнитель.
Создайте задачу УчебныеСогласования: строковый номер длиной 12, автонумерация, наименование длиной 100. Добавьте реквизит адресации Исполнитель типа СправочникСсылка.УчебныеИсполнители и выберите его основным реквизитом адресации. Здесь используется прямая адресация; регистр ролевой адресации не нужен.
Создайте параметр сеанса УчебныйИсполнитель того же ссылочного типа. В свойстве задачи Текущий исполнитель выберите этот параметр. Запросы урока передают исполнителя явно и не зависят от начального значения параметра сеанса.
Создайте бизнес-процесс УчебноеСогласование со строковым номером длиной 12 и автонумерацией. В свойстве Задача выберите УчебныеСогласования. Карта маршрута: Старт (начало) → Согласовать (действие) → Завершение. В точке Согласовать задайте адресацию Исполнитель = Демонстрационный, Групповая = Ложь.
И у задачи, и у бизнес-процесса создайте обычные реквизиты КомментарийУчебный (Строка 100), Сумма (Число 12.2), Подтверждено (Булево), ЗапретУдаления (Булево). Добавьте табличную часть Детали с колонками Наименование (Строка 100) и Количество (Число 10.0).
Создайте общий реквизит УчебныйИсточник типа Строка 20, Разделение данных = Не использовать. Включите только учебную задачу и бизнес-процесс в его состав. Это не разделитель и не настройка рабочей конфигурации.
В модуле объекта бизнес-процесса разместите отдельный обработчик СогласоватьПриСозданииЗадач из дополнительного блока. В свойствах точки Согласовать назначьте его событию ПриСозданииЗадач. Платформа записывает сформированные задачи после обработчика; внутри него Записать не вызывается.
Обновите учебную базу. Создайте серверный общий модуль УчебныеПроцессы: поместите туда функцию ПодготовитьУчебныйПроцесс из отдельного блока и процедуру ВыполнитьПример() Экспорт. Основной код без заголовка вставляйте в тело этой процедуры и вызывайте её из серверной команды своей обработки.
Каждый запуск подготовки действительно создаёт новый учебный бизнес-процесс и его задачу. Не используйте рабочую базу. Табличные части и обычные реквизиты заполняются только у этих новых объектов; ничего не отправляется по сети.
На время этого урока оставьте у соответствующего объекта только текущий показанный обработчик жизненного цикла. Обработчик создания задач точки Согласовать сохраняется отдельно.
Показанный ОбработкаЗаполнения принимает именно структуру КомментарийУчебный,Сумма из дополнительного блока; это не универсальный алгоритм ввода на основании любого документа.
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
Префикс = "УС" + Префикс;
СтандартнаяОбработка = Истина;
Сообщить("Номер генерирует платформа с префиксом " + Префикс);
КонецПроцедурыСерверный общий модуль УчебныеПроцессы: реальное создание процесса и задачи
Функция ПодготовитьУчебныйПроцесс(ЗапуститьМаршрут = Истина) Экспорт
Процесс = БизнесПроцессы.УчебноеСогласование.СоздатьБизнесПроцесс();
Процесс.Дата = Дата(2026, 10, 14, 10, 0, 0);
Процесс.КомментарийУчебный = "Согласовать учебную покупку";
Процесс.Сумма = 100;
Процесс.Подтверждено = Ложь;
Процесс.УчебныйИсточник = "ПРИМЕР";
Деталь = Процесс.Детали.Добавить();
Деталь.Наименование = "Книга";
Деталь.Количество = 2;
Процесс.Записать();
Если Не ЗапуститьМаршрут Тогда
Возврат Новый Структура("Процесс,Задача", Процесс.Ссылка, Задачи.УчебныеСогласования.ПустаяСсылка());
КонецЕсли;
Процесс.Старт();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Задача.УчебныеСогласования ГДЕ БизнесПроцесс = &Процесс";
Запрос.УстановитьПараметр("Процесс", Процесс.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Не Выборка.Следующий() Тогда
ВызватьИсключение "Маршрут не создал учебную задачу: проверьте подготовку";
КонецЕсли;
Возврат Новый Структура("Процесс,Задача", Процесс.Ссылка, Выборка.Ссылка);
КонецФункцииМодуль объекта бизнес-процесса: назначенный обработчик точки Согласовать
Процедура СогласоватьПриСозданииЗадач(ТочкаМаршрута, ФормируемыеЗадачи, Отказ)
Для Каждого НоваяЗадача Из ФормируемыеЗадачи Цикл
НоваяЗадача.КомментарийУчебный = "Проверить учебную покупку";
НоваяЗадача.Сумма = 100;
НоваяЗадача.УчебныйИсточник = "ПРИМЕР";
Деталь = НоваяЗадача.Детали.Добавить();
Деталь.Наименование = "Книга";
Деталь.Количество = 2;
КонецЦикла;
КонецПроцедурыСерверная процедура ВыполнитьПример: действие, реально вызывающее событие
Контекст = ПодготовитьУчебныйПроцесс();
Объект = Контекст.Процесс.ПолучитьОбъект();
Объект.УстановитьНовыйНомер();
Сообщить(Объект.Номер);
Сообщить("Новый номер пока находится в памяти объекта");Разбор по шагам
Процедура находится в модуле объекта УчебноеСогласование, а не в модуле формы. Подпись совпадает с установленной справкой; параметр Элемент здесь не добавляется.
Дополнительный код сначала создаёт именно учебный объект и затем вызывает действие ПриУстановкеНовогоНомера через штатный API.
Условие проверяет конкретные реквизиты покупки: сумму, комментарий, подтверждение или запрет удаления. Событие ПриЗаписи ещё находится внутри транзакции.
Как проверить результат
Для отрицательной суммы, превышения предела, пустого комментария или неподтверждённого выполнения показано предусмотренное сообщение и отмена.
Копия и результат заполнения остаются в памяти до записи. ПроверитьВыполнение проверяет достаточное условие, но не заменяет выполнение задачи.
Ожидаемый результат
Показан результат для собственных подготовленных объектов учебного согласования.
На что обратить внимание
Все имена метаданных берутся из подготовки; в типовой конфигурации таких учебных объектов может не быть.
Каждый блок вставляется в указанный модуль отдельно. Не вызывайте процедуру события вручную вместо реального действия платформы.
Запись и старт относятся только к новым учебным объектам. Пример не выполняет обработку реальных согласований и не гарантирует правильность чужого маршрута.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.