РегистрНакопленияНаборЗаписей.<Имя регистра накопления>.ПриЗаписи

События · OnWrite

Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.

Синтаксис

ПриЗаписи(<Отказ>, <Замещение>)
Полное описание, параметры и ограничения

РегистрНакопленияНаборЗаписей.<Имя регистра накопления>.ПриЗаписи (AccumulationRegisterRecordSet.<Accumulation register name>.OnWrite)

РегистрНакопленияНаборЗаписей.<Имя регистра накопления> (AccumulationRegisterRecordSet.<Accumulation register name>)

ПриЗаписи (OnWrite)

Доступен, начиная с версии 8.0.

Синтаксис:
ПриЗаписи(<Отказ>, <Замещение>)
Параметры:

<Отказ>
Тип: Булево.
Признак отказа от выполнения действия.
Значение по умолчанию: Ложь.

<Замещение>
Тип: Булево.
Режим записи набора.
Истина - запись осуществляется с заменой существующих в базе данных записей набора.
Ложь - запись осуществляется с "дописыванием" текущего набора записей.
Описание:

Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Замечание:

Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Обработать ПриЗаписи своего УчебныеОстаткиНастроек

Показываем состав настоящего записываемого набора. ПриЗаписи выполняется внутри процесса записи и не означает, что внешняя транзакция уже зафиксирована.

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

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

Подготовка

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

  2. Обновите учебную конфигурацию. Движения и документы не создавайте: код объясняет свойство ВидРегистра, а не подсчитывает остатки.

  3. В модуле набора записей УчебныеОстаткиНастроек поместите основной обработчик. Для его запуска не назначайте событие формы и не вызывайте процедуру вручную.

  4. Обновите учебную базу. Дополнительный блок выполняйте в серверной процедуре своей обработки. Каждый запуск создаёт отдельный собственный документ-регистратор; фильтр набора ограничивает запись только этим новым документом.

  5. В этом упражнении учебный регистратор записывается без проведения, затем явно записывается его набор. Это демонстрация API набора, не реализация полноценного проведения документа. Рабочие документы не используются.

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

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

  1. ЭтотОбъект в модуле набора записей — тот самый набор, созданный и заполненный дополнительным кодом.

  2. ПроверитьЗаполнение запускает соответствующую проверку; Записать запускает события записи. Один вызов не подменяется ручным вызовом процедуры.

  3. Замещение касается выбранного регистратора. Обработчик не записывает ЭтотОбъект повторно и не запускает рекурсивное проведение.

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

  1. С положительным ресурсом проверка допускает запись собственного набора. Сообщения обработчика показывают его реальные строки.

  2. Для ОбработкаПроверкиЗаполнения / ПередЗаписью замените ресурс в новом проверочном наборе на -1: своё правило устанавливает Отказ. Для ПриЗаписи проверка отрицательных значений не добавляется, обработчик только сообщает значения.

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

Платформенное событие обработало настоящий собственный набор записей.

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

  1. Отказ отменяет конкретное действие; сообщение само по себе ничего не отменяет.

  2. Не очищайте отбор регистратора и не запускайте этот учебный блок над рабочими записями.

  3. ПриЗаписи не подходит для отправки внешних сообщений о гарантированно зафиксированной транзакции. Показанный BSL при сборке справочника не выполнялся.

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

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

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

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

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