Имя: Пароль:
1C
1С v8
Блокировка регистра накопления при отключенных итогах
0 baza1
 
29.09.23
17:01
Необходимо провести много документов одного типа. Сделал параллельные потоки. Все нормально. Друг друга не блокируют. Далее для ускорения у регистра накопления (оборотного) отключил итоги на время проведения, и документы стали друг друга блокировать.
Проверил: отладкой остановился в самом начале обработки проведения, в параллельном сеансе другой документ не проводится (конфликт блокировки).
Включил итоги заново, все нормально.

Вопрос: почему отключение итогов оборотного регистра вызывает его полную блокировку при проведение документа? Интересует логика такого поведения.
1 lodger
 
29.09.23
17:25
а это приколы которые родились из-за Разделения Итогов и Управляемых блокировок + в прикладном коде часто стали использовать итоги по таблице при проведении.

обсуждалось как то тут
https://forum.infostart.ru/forum9/topic279119/
вряд ли что изменилось.
2 lubitelxml
 
29.09.23
19:23
(0) смотрите план запроса, делайте выводы
3 floverr
 
29.09.23
23:18
Написать свой алгоритм проведения по нужным регистрам с учетом блокировок в отдельной обработке?
"Типовой код от 1с бывает не идеален в определенных местах".
4 Valdis2007
 
30.09.23
11:47
(0) Вопрос: почему отключение итогов оборотного регистра....а ничего , что у оборотного регистра нет итогов?
5 baza1
 
30.09.23
13:59
(4) Есть, "оборотные" итоги. Т.е. по вашему признак "Итоги" в  обработке "Управление итогами" просто так стоит у оборотного регистра?
См. структуру хранения регистра в СУБД.

Вопрос решился. В документе стояло "Удалять автоматически", установил "Удалять автоматически при отмене проведения". Блокировка при отключенных итогах ушла.
6 ИначеЕсли
 
30.09.23
14:35
(0) есть такой платформенный баг - при отключенных итогах блокировка на таблице настройки хранения итогов. В 8.3.22 он есть до сих пор, возможно это оно.
Лечится включением итогов или отключением проведения по регистру.
7 baza1
 
01.10.23
23:23
(6) Да, это оно. Обошел так: при включенных итогах многопоточно делаю записи в режиме Активность = Ложь (что не вызывает пересчет итогов), затем выключаю итоги, в один поток перевожу все записи в активные,и в включаю итоги.
Ошибка? Это не ошибка, это системная функция.