Вход | Регистрация
 

Отмена проведения в цикле кодом VS интерактивно в форме списка

Отмена проведения в цикле кодом VS интерактивно в форме списка
Я
   Dmitry1c
 
01.06.20 - 10:56
Отмена проведения в цикле кодом VS интерактивно в форме списка

Почему-то установка в цикле по выборке УстановитьПометкуУдаления(Истина) стабильно отваливается с ошибкой конфлитка блокировок
При этом если интерактивно в форме списка делать, то ошибки конфликта блокировок нет

В базе работают пользователи, неск. десятков
Почему так?
   Галахад
 
1 - 01.06.20 - 11:00
"интерактивно в форме списка", аесли кнопку быстрее нажимать? ;-)
   Dmitry1c
 
2 - 01.06.20 - 11:01
(1) с выделением пачки доков разом, есессна
   lodger
 
3 - 01.06.20 - 11:05
(0) потому что надо писать запрос с "заблокировать для изменения"
   Dmitry1c
 
4 - 01.06.20 - 11:06
(3) данные документы, которые являются результатом выборки из запроса, рядовыми пользователями не используются.
   mzelensky
 
5 - 01.06.20 - 11:06
(2) Как вариант делать в привилегированном режиме с пометкой "ОбменДанными.Загрузка = Истина"
   Dmitry1c
 
6 - 01.06.20 - 11:07
(5) при "обмен данными. загрузка = истина" будет выполнена отмена проведения? в смысле очистки движений по регистрам.

прошу прощения за такой вопрос, сам должен знать.
   mzelensky
 
7 - 01.06.20 - 11:08
(0) А если групповой обработкой, то будет отваливаться?
   mzelensky
 
8 - 01.06.20 - 11:09
(6) Зависит от кода. Проверь. Если нет - грохни сам движения. Обычно это быстрее, т.к. ты просто очищаешь забор и записываешь. Без 100500 проверок.
   Dmitry1c
 
9 - 01.06.20 - 11:09
(7) а фиг его знает, пока не могу проверить.

суть вопроса сводится к тому, есть ли разница между отменой проведения программно и интерактивно в форме списка.
   lodger
 
10 - 01.06.20 - 11:10
(4) ты сам себе на пятки наступаешь.
пока а) идёт проведение и отработка всех событий первого вызова...
б) вызов номер N+1 успевает упереться в заблокированную в а) таблицу.
т.к. механически это разные транзакции.
а методология из (3) заставляет тебя делать единую транзакцию.
   Cyberhawk
 
11 - 01.06.20 - 11:10
Ошибку-то покажи
   Dmitry1c
 
12 - 01.06.20 - 11:12
(11) конфликт блокировки при выполнении транзакции
   mzelensky
 
13 - 01.06.20 - 11:13
(10) Чет ты путаешь. Или описываешь не так.

Он получил выборку запросом. Обходит ее и делает "УстановитьПометкуУдаления(Истина)". В это самое "УстановитьПометкуУдаления(Истина)" уже заложены "идёт проведение и отработка всех событий первого вызова" и никакого "вызов номер N+1" не будет, пока транзакция установки пометки на удаление не закончится.
   Dmitry1c
 
14 - 01.06.20 - 11:13
(13) именно
   mzelensky
 
15 - 01.06.20 - 11:14
(14) Попробуй групповой обработкой с настройкой "без контроля записи". Так, чисто ради интереса.
   vova1122
 
16 - 01.06.20 - 11:17
(0) Систематически валится ошибка или рандомно? Может попробовать это сделать на копии или без Юзверей.
   vova1122
 
17 - 01.06.20 - 11:20
+(16) еще попробовать установить в цикле паузу. Вдруг код уже отработал, а винчестер еще пилит табличку
   Dmitry1c
 
18 - 01.06.20 - 11:21
(17) вот такая мысль тоже была.

пауза средствами платформенная все еще не существует?
   lodger
 
19 - 01.06.20 - 11:23
(13) это было бы 100% верно для файловой базы.
а теперь добавь сюда лаг от работы с СУБД.
   mzelensky
 
20 - 01.06.20 - 11:25
(19) О каком лаге СУБД речь? Описанная транзакция будет именно на уровне СУБД.
   lodger
 
21 - 01.06.20 - 11:26
(20) ага, только вот (0) происходит и имеет место быть.
   mzelensky
 
22 - 01.06.20 - 11:32
(21) И что? То, что это происходит совершенно не означает, что твоя теория верна! Могут быть и другие причины.

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.