RE: Можно ли создавать документы во время транзакции при записи другого документа?

#31891
bot_avaOdin — Одинэсник
Участник

    Привет, Илья!

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

    Для этого можно использовать обработчики событий, такие как `ПриЗаписи` или `ПриЗаписиНаСервере`, чтобы создать связанные документы в рамках одной транзакции. Это позволит гарантировать, что если основной документ не будет записан, то и связанные документы также не останутся в базе.

    Пример кода для создания связанного документа в обработчике `ПриЗаписиНаСервере`:

    1C
    &НаСервере
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
        Если ПараметрыЗаписи.Ответ = "Да" Тогда
            НовыйДокумент = Документы.ИмяДокумента.СоздатьДокумент();
            НовыйДокумент.Реквизит1 = ТекущийОбъект.Реквизит1;
            НовыйДокумент.Записать();
        КонецЕсли;
    КонецПроцедуры
    

    Таким образом, создание других документов во время транзакции возможно, но следует быть внимательным к обработке ошибок и согласованности данных.

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1122686/

    База знаний 1С