Управляемая блокировка на регистр бухгалтерии #738540


#0 by dabudi
8.2.19.83. УПП. Режим блокировок у конфигурации стоит «Управляемый». У одного документа есть проводки по регистру бухгалтерии. При проведении документа происходит очистка движений в общем модуле. Если после этой очистки поставить точку останова, и параллельно запустить  проведение другого документа, то при очистке его проводок вываливается ошибка «Lock request time out period exceeded». Проводки у обоих документов идут по одной организации и одинаковым счетам, но в разных месяцах. Как поставить на регистр бухгалтерии управляемую блокировку, чтобы можно было одновременно писать в разных периодах? Пробовал по-разному, не получается. Может проблема в релизе платформы?
#1 by DmitrO
Надо включить режим разделения итогов по этому регистру.
#2 by dabudi
Галка "Разрешить разделение итогов" стоит.
#3 by H A D G E H O G s
Ничего, что блокировка СУБД?
#4 by H A D G E H O G s
Смотри план запросов. Возможно у тебя indexscan по какой-то из таблиц РБ.
#5 by DmitrO
вижу. А режим разделения не разделяет при управляемой транзакции и блокировке СУБД? (я вот не знаю)
#6 by H A D G E H O G s
Ну, как бы в УПП везде стоит разделение итогов.
#7 by DmitrO
Суть в том что чтобы: "..по одной организации и одинаковым счетам.." надо как раз таки не ставить никаких блокировок и режим разделения итогов. Ну по путевому-то, надо не чистить движения в начале проведения по феншую.
#8 by dabudi
Насколько я понял, режим разделения актуален для одинаковых периодов, а у меня разные.
#9 by 1sanekmaloi1
Разделитель не поможет, если скан таблицы
#10 by DmitrO
думаешь изменение остатка в меньшем периоде не должно никак отражаться на остаток в большем периоде?
#11 by dabudi
должно
#12 by DmitrO
у него очистка движений еще только идет в обоих транзакциях, там может быть скан таблицы?
#13 by 1sanekmaloi1
тоесть вы хотите сказать что при записи "февраль орг1 счет1 сумма" зблочится и "март орг1 счет1 сумма" ?
#14 by DmitrO
ну конечно, период это не измерение, остатки жеж!
#15 by 1sanekmaloi1
очистка движений у него это правильно, но если набор ЧИТАЕТСЯ при этом, то вполне может быть и скан
#16 by H A D G E H O G s
Можно гадать до загоговения, а можно посмотреть блокировки на СУБД через DMV.
#17 by dabudi
В коде 1С набор не читается. Он создается, устанавливается регистратор и записывается. А вот, что делает СУБД, я пока не знаю.
#18 by 1sanekmaloi1
соглашусь с , нужно просто в том же профайлере или монитором сиквела глянуть что происходит. да чета тупанул про остатки я.
#19 by dabudi
Профайлер показал, что конфликт блокировок происходит на табличке "ИтогиПоСчетамССубконто1".
#20 by dabudi
при выполнении операции Update
#21 by H A D G E H O G s
Пересечение на индексе или на данных?
#22 by dabudi
Это я пока не понял. Я с профайлером только начинаю дружить. Не подскажешь, как посмотреть?
#23 by H A D G E H O G s
Я вот этим скриптом пользуюсь. Правда он выводит и блокировки намерений (который нафиг не нужны для анализа), я его переписывал, но уже не могу найти. Пользуй такой.
#24 by H A D G E H O G s
Естественно, скрипт надо выполнять в тот момент, когда 2 транзакция пытается установить блокировку, еще до таймаута.
#25 by Гёдза
А разве ТЖ не поможет ?
#26 by H A D G E H O G s
А в ТЖ есть блокировки СУБД?
#27 by Гёдза
Вроде были
#28 by H A D G E H O G s
Не зря ЦУП цепляется к серверу MS SQL
#29 by Зеленый пень
Таблица оперативных (текущих) итогов пересчитывается при изменении данных в любом периоде. Поэтому - только разделение итогов.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С