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

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

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

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

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

Подготовка

  1. Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланВидовРасчета УчебныеВидыРасчета; не добавляйте эти учебные объекты в рабочую базу.

  2. Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.

  3. Для плана видов расчёта не включайте зависимость от базового периода и действие по периоду. Регистры расчёта в этом уроке не нужны.

  4. Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.

  5. Для этой диагностики дополнительно создайте документ УчебныйРасчетНастроек с разрешённым проведением. Создайте регистр расчёта УчебныеНачисленияНастроек, периодичность Месяц, план видов расчёта УчебныеВидыРасчета, регистратор УчебныйРасчетНастроек, ресурс Результат типа Число 12.2.

  6. У регистра УчебныеНачисленияНастроек остальные механизмы расчёта оставьте выключенными. Обновите учебную базу; источник создаёт один свой вид расчёта, документ и запись результата 750.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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