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

Можно ли создавать ...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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

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

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

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

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



   
ОтветитьЦитата