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