Имя: Пароль:
1C
1С v8
Управляемая блокировка на регистр бухгалтерии
0 dabudi
 
31.03.15
16:00
8.2.19.83. УПП. Режим блокировок у конфигурации стоит «Управляемый».

У одного документа есть проводки по регистру бухгалтерии. При проведении документа происходит очистка движений в общем модуле. Если после этой очистки поставить точку останова, и параллельно запустить  проведение другого документа, то при очистке его проводок вываливается ошибка «Lock request time out period exceeded». Проводки у обоих документов идут по одной организации и одинаковым счетам, но в разных месяцах. Как поставить на регистр бухгалтерии управляемую блокировку, чтобы можно было одновременно писать в разных периодах?

Пробовал по-разному, не получается. Может проблема в релизе платформы?
1 DmitrO
 
31.03.15
16:19
Надо включить режим разделения итогов по этому регистру.
2 dabudi
 
31.03.15
16:24
(1) Галка "Разрешить разделение итогов" стоит.
3 H A D G E H O G s
 
31.03.15
16:24
(1) Ничего, что блокировка СУБД?
4 H A D G E H O G s
 
31.03.15
16:25
(0) Смотри план запросов. Возможно у тебя indexscan по какой-то из таблиц РБ.
5 DmitrO
 
31.03.15
16:35
(3)вижу. А режим разделения не разделяет при управляемой транзакции и блокировке СУБД? (я вот не знаю)
6 H A D G E H O G s
 
31.03.15
16:40
(5) Ну, как бы в УПП везде стоит разделение итогов.
7 DmitrO
 
31.03.15
16:47
(0)Суть в том что чтобы:
"..по одной организации и одинаковым счетам.."
надо как раз таки не ставить никаких блокировок и режим разделения итогов.
Ну по путевому-то, надо не чистить движения в начале проведения по феншую.
8 dabudi
 
31.03.15
16:48
(5) Насколько я понял, режим разделения актуален для одинаковых периодов, а у меня разные.
9 1sanekmaloi1
 
31.03.15
16:48
Разделитель не поможет, если скан таблицы
10 DmitrO
 
31.03.15
16:50
(8) думаешь изменение остатка в меньшем периоде не должно никак отражаться на остаток в большем периоде?
11 dabudi
 
31.03.15
16:51
(10) должно
12 DmitrO
 
31.03.15
16:53
(9)(4) у него очистка движений еще только идет в обоих транзакциях, там может быть скан таблицы?
13 1sanekmaloi1
 
31.03.15
16:54
(10) тоесть вы хотите сказать что при записи "февраль орг1 счет1 сумма" зблочится и "март орг1 счет1 сумма" ?
14 DmitrO
 
31.03.15
16:56
(13)ну конечно, период это не измерение, остатки жеж!
15 1sanekmaloi1
 
31.03.15
16:56
очистка движений у него это правильно, но если набор ЧИТАЕТСЯ при этом, то вполне может быть и скан
16 H A D G E H O G s
 
31.03.15
17:00
Можно гадать до загоговения, а можно посмотреть блокировки на СУБД через DMV.
17 dabudi
 
31.03.15
17:01
(15) В коде 1С набор не читается. Он создается, устанавливается регистратор и записывается. А вот, что делает СУБД, я пока не знаю.
18 1sanekmaloi1
 
31.03.15
17:01
соглашусь с (16), нужно просто в том же профайлере или монитором сиквела глянуть что происходит.
(14) да чета тупанул про остатки я.
19 dabudi
 
03.04.15
16:22
Профайлер показал, что конфликт блокировок происходит на табличке "ИтогиПоСчетамССубконто1".
20 dabudi
 
03.04.15
16:26
(19) при выполнении операции Update
21 H A D G E H O G s
 
03.04.15
16:28
(20) Пересечение на индексе или на данных?
22 dabudi
 
03.04.15
16:30
(21) Это я пока не понял. Я с профайлером только начинаю дружить. Не подскажешь, как посмотреть?
23 H A D G E H O G s
 
03.04.15
16:41
(22) Я вот этим скриптом пользуюсь.
http://infostart.ru/public/193674/

Правда он выводит и блокировки намерений (который нафиг не нужны для анализа), я его переписывал, но уже не могу найти.

Пользуй такой.
24 H A D G E H O G s
 
03.04.15
16:43
(22) Естественно, скрипт надо выполнять в тот момент, когда 2 транзакция пытается установить блокировку, еще до таймаута.
25 Гёдза
 
03.04.15
16:47
А разве ТЖ не поможет ?
26 H A D G E H O G s
 
03.04.15
16:48
(25) А в ТЖ есть блокировки СУБД?
27 Гёдза
 
03.04.15
16:50
(26) Вроде были
http://www.gilev.ru/latch/
28 H A D G E H O G s
 
03.04.15
16:54
(27) Не зря ЦУП цепляется к серверу MS SQL
29 Зеленый пень
 
03.04.15
17:07
Таблица оперативных (текущих) итогов пересчитывается при изменении данных в любом периоде. Поэтому - только разделение итогов.