ПослеЗаписи: собственная обычная форма accumulation

Учебные задачи

После успешной платформенной записи своей формы увеличиваем её локальный счётчик. Здесь нет параметра Отказ и отменять уже завершённую запись этим событием нельзя.

Где и как запускать

Модуль обычной формы конкретного собственного объекта. Открывающий обработчик — другая собственная обычная форма; толстый клиент.

Подготовка

  1. В собственной пустой учебной конфигурации создайте документ УчебноеДвижениеНастроек с разрешённым проведением и регистр накопления УчебныеОстаткиНастроек вида Остатки. Добавьте измерение Товар типа Строка 100 и ресурс Количество типа Число 12.2, регистратор УчебноеДвижениеНастроек.

  2. У собственного регистра УчебныеОстаткиНастроек создайте обычную форму набора УчебныйНабор через конструктор формы набора записей. Основной реквизит — набор этого регистра; выведите его строки и ресурсы.

  3. Источник сохраняет новый собственный документ-регистратор, но сам набор до открытия формы не записывает. Сохранение набора выполняется стандартной командой открытой формы по фильтру этого нового регистратора.

  4. В самой обычной форме записи / набора добавьте собственные реквизиты Статус (Строка 200) и СчетчикЗаписей (Число 10.0); выведите их на форму.

  5. Основной блок назначьте событию формы ПослеЗаписи, дополнительный инициализатор — ПриОткрытии этой же формы. Это не событие модуля набора / значения константы.

  6. Открывающий блок разместите в другой обычной форме своей внешней обработки и назначьте кнопке. Запуск — толстый клиент. В открытой форме используйте стандартную команду Записать, не прямой вызов обработчика.

Процедура ПослеЗаписи()
    СчетчикЗаписей = СчетчикЗаписей + 1;
    Статус = "Успешных записей своей формы: " + Строка(СчетчикЗаписей);
    Сообщить(Статус);
КонецПроцедуры
Та же целевая обычная форма: назначить событию ПриОткрытии
Процедура ПриОткрытии()
    СчетчикЗаписей = 0;
    Статус = "Собственная форма готова к проверке записи";
    Сообщить(Статус);
КонецПроцедуры
Другая обычная форма своей внешней обработки: кнопка ОткрытьСвойУрок
Процедура ОткрытьСвойУрок(Кнопка)
    Документ = Документы.УчебноеДвижениеНастроек.СоздатьДокумент();
    Документ.Дата = Дата(2026, 10, 14);
    Документ.Записать();
    Набор = РегистрыНакопления.УчебныеОстаткиНастроек.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Документ.Ссылка);
    Запись = Набор.Добавить();
    Запись.Период = Документ.Дата;
    Запись.Активность = Истина;
    Запись.ВидДвижения = ВидДвиженияНакопления.Приход;
    Запись.Товар = "Книга";
    Запись.Количество = 3;
    ФормаУрока = Набор.ПолучитьФорму("УчебныйНабор");
    ФормаУрока.Открыть();
КонецПроцедуры

Разбор по шагам

  1. Конструктор создаёт настоящую форму конкретной собственной записи / набора / констант.

  2. Открывающая кнопка передаёт форме реальный собственный объект с ограниченным ключом / регистратором.

  3. Стандартная команда формы вызывает платформенное событие; обработчик меняет только свой флаг отказа или локальный статус.

Как проверить результат

  1. После успешной стандартной записи счётчик увеличился на 1.

  2. Отменённая запись не должна отмечаться как успешная. Счётчик относится к открытому экземпляру формы, а не к количеству записей в регистре.

Ожидаемый результат

Этап записи показан на настоящей собственной обычной форме, а не ручным вызовом процедуры с подставными аргументами.

На что обратить внимание

  1. ПередЗаписью, ПриЗаписи и ПослеЗаписи — разные этапы. Не посылайте внешние сообщения об успехе из ПриЗаписи до фиксации.

  2. Источник набора нельзя открывать без отбора регистратора / собственного ключа; не заменяйте источник рабочим набором.

  3. При сборке HTML BSL, запись в 1С и открытие её форм не выполнялись.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.