0
Wefast
23.10.19
✎
14:27
|
Есть обработка, которая создает пачку документов.
Документы должны идти по порядку.
Бывает пользователь в момент работы обработки создает руками документ и он "рушит" последовательность.
Было написано вот так:
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Документ.МойДокумент");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Для каждого Строка из ТаблицаДляВывода цикл
СоздатьМойДокумент(Строка,КоличествоПродукцииВерхнегоУровня);
КонецЦикла;
Попытка
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
КонецПопытки;
Мне кажется тут либо блокировка лишняя, либо транзакция.
Т.е. если оставить только транзакцию, разве не будут документы записаны разом, исключая возможность вклинится какому то пользователю.
Или блокировать документы перед "ЗафиксироватьТранзакцию()".
|
|