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