|
Блокировка документов при работе обработки | ☑ | ||
---|---|---|---|---|
0
Wefast
08.10.19
✎
13:21
|
Есть обработка которая создает документы пачкой.
Мне нужно что бы последовательность этих документов не была нарушена, если к примеру кто то еще запустит эту обработку. Т.е. по факту мне нужно запретить пользователям только создавать новые документы Пишу: НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Документ.КА_НарядНаСдельнуюРаботу"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; Блокировка.Заблокировать(); Для каждого СтрокаТехОперции из КакаяТаблица цикл КонецЦикла; Попытка ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); КонецПопытки; |
|||
1
Wefast
08.10.19
✎
13:21
|
В цикле я создаю документ
|
|||
2
Wefast
08.10.19
✎
13:23
|
В итоге не работает блокировка, и документы создаются не через 1 к примеру. А идет часть документов первой обработки. Потом часть(почти все) второй обработки, потом опять первой и в какой то момент еще 1 второй обработки где то вклинивается
|
|||
3
Мимохожий Однако
08.10.19
✎
13:26
|
Запрети запуск второго экземпляра обработки.
|
|||
4
Wefast
08.10.19
✎
13:26
|
да база серверная
|
|||
5
Wefast
08.10.19
✎
13:27
|
(3) и как это отследить?
|
|||
6
Tonik992
08.10.19
✎
13:29
|
Блокировку поставь на диапозон даты.
|
|||
7
H A D G E H O G s
08.10.19
✎
13:29
|
(5) Служебный справочник с предопределенными элементами на все случаи жизни, например
Справочник.АСФОбъектыВариантовОбменаДляБлокировки и элементы: ОбменСWMS ОбменСOmobus И при начале обработки Попытка ЗаблокироватьДанныеДляРедактирования(Ссылка); Исключение КонецПопытки |
|||
8
Мимохожий Однако
08.10.19
✎
13:29
|
(5) Лобовой вариант: при открытии или запуске проверять наличие запущенного фонового задания.
|
|||
9
H A D G E H O G s
08.10.19
✎
13:31
|
В Исключении тебе даже покажет пользователя, который уже работает с обработкой
Но вообще, странно, что блокировка не срабатывает. |
|||
10
Wefast
08.10.19
✎
13:38
|
Да кажется я не там ее вызвал. Да, спасибо за варианты
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |