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

Отмена проведения в цикле кодом 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 или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.