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