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