|
Отмена проведения в цикле кодом VS интерактивно в форме списка | ☑ | ||
---|---|---|---|---|
0
Dmitry1c
01.06.20
✎
10:56
|
Отмена проведения в цикле кодом VS интерактивно в форме списка
Почему-то установка в цикле по выборке УстановитьПометкуУдаления(Истина) стабильно отваливается с ошибкой конфлитка блокировок При этом если интерактивно в форме списка делать, то ошибки конфликта блокировок нет В базе работают пользователи, неск. десятков Почему так? |
|||
1
Галахад
гуру
01.06.20
✎
11:00
|
"интерактивно в форме списка", аесли кнопку быстрее нажимать? ;-)
|
|||
2
Dmitry1c
01.06.20
✎
11:01
|
(1) с выделением пачки доков разом, есессна
|
|||
3
lodger
01.06.20
✎
11:05
|
(0) потому что надо писать запрос с "заблокировать для изменения"
|
|||
4
Dmitry1c
01.06.20
✎
11:06
|
(3) данные документы, которые являются результатом выборки из запроса, рядовыми пользователями не используются.
|
|||
5
mzelensky
01.06.20
✎
11:06
|
(2) Как вариант делать в привилегированном режиме с пометкой "ОбменДанными.Загрузка = Истина"
|
|||
6
Dmitry1c
01.06.20
✎
11:07
|
(5) при "обмен данными. загрузка = истина" будет выполнена отмена проведения? в смысле очистки движений по регистрам.
прошу прощения за такой вопрос, сам должен знать. |
|||
7
mzelensky
01.06.20
✎
11:08
|
(0) А если групповой обработкой, то будет отваливаться?
|
|||
8
mzelensky
01.06.20
✎
11:09
|
(6) Зависит от кода. Проверь. Если нет - грохни сам движения. Обычно это быстрее, т.к. ты просто очищаешь забор и записываешь. Без 100500 проверок.
|
|||
9
Dmitry1c
01.06.20
✎
11:09
|
(7) а фиг его знает, пока не могу проверить.
суть вопроса сводится к тому, есть ли разница между отменой проведения программно и интерактивно в форме списка. |
|||
10
lodger
01.06.20
✎
11:10
|
(4) ты сам себе на пятки наступаешь.
пока а) идёт проведение и отработка всех событий первого вызова... б) вызов номер N+1 успевает упереться в заблокированную в а) таблицу. т.к. механически это разные транзакции. а методология из (3) заставляет тебя делать единую транзакцию. |
|||
11
Cyberhawk
01.06.20
✎
11:10
|
Ошибку-то покажи
|
|||
12
Dmitry1c
01.06.20
✎
11:12
|
(11) конфликт блокировки при выполнении транзакции
|
|||
13
mzelensky
01.06.20
✎
11:13
|
(10) Чет ты путаешь. Или описываешь не так.
Он получил выборку запросом. Обходит ее и делает "УстановитьПометкуУдаления(Истина)". В это самое "УстановитьПометкуУдаления(Истина)" уже заложены "идёт проведение и отработка всех событий первого вызова" и никакого "вызов номер N+1" не будет, пока транзакция установки пометки на удаление не закончится. |
|||
14
Dmitry1c
01.06.20
✎
11:13
|
(13) именно
|
|||
15
mzelensky
01.06.20
✎
11:14
|
(14) Попробуй групповой обработкой с настройкой "без контроля записи". Так, чисто ради интереса.
|
|||
16
vova1122
01.06.20
✎
11:17
|
(0) Систематически валится ошибка или рандомно? Может попробовать это сделать на копии или без Юзверей.
|
|||
17
vova1122
01.06.20
✎
11:20
|
+(16) еще попробовать установить в цикле паузу. Вдруг код уже отработал, а винчестер еще пилит табличку
|
|||
18
Dmitry1c
01.06.20
✎
11:21
|
(17) вот такая мысль тоже была.
пауза средствами платформенная все еще не существует? |
|||
19
lodger
01.06.20
✎
11:23
|
(13) это было бы 100% верно для файловой базы.
а теперь добавь сюда лаг от работы с СУБД. |
|||
20
mzelensky
01.06.20
✎
11:25
|
(19) О каком лаге СУБД речь? Описанная транзакция будет именно на уровне СУБД.
|
|||
21
lodger
01.06.20
✎
11:26
|
(20) ага, только вот (0) происходит и имеет место быть.
|
|||
22
mzelensky
01.06.20
✎
11:32
|
(21) И что? То, что это происходит совершенно не означает, что твоя теория верна! Могут быть и другие причины.
Я могу предположить, что когда я "пукаю", то происходит цунами в Индийском Океане. И Даже если вдруг эти события действительно совпали, то это совершенно не подтверждает их прямую или даже косвенную взаимосвязь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |