Необходимо провести много документов одного типа. Сделал параллельные потоки. Все нормально. Друг друга не блокируют. Далее для ускорения у регистра накопления (оборотного) отключил итоги на время проведения, и документы стали друг друга блокировать.
Проверил: отладкой остановился в самом начале обработки проведения, в параллельном сеансе другой документ не проводится (конфликт блокировки).
Включил итоги заново, все нормально.
Вопрос: почему отключение итогов оборотного регистра вызывает его полную блокировку при проведение документа? Интересует логика такого поведения.
а это приколы которые родились из-за Разделения Итогов и Управляемых блокировок + в прикладном коде часто стали использовать итоги по таблице при проведении.
Написать свой алгоритм проведения по нужным регистрам с учетом блокировок в отдельной обработке?
"Типовой код от 1с бывает не идеален в определенных местах".
(4) Есть, "оборотные" итоги. Т.е. по вашему признак "Итоги" в обработке "Управление итогами" просто так стоит у оборотного регистра?
См. структуру хранения регистра в СУБД.
Вопрос решился. В документе стояло "Удалять автоматически", установил "Удалять автоматически при отмене проведения". Блокировка при отключенных итогах ушла.
(0) есть такой платформенный баг - при отключенных итогах блокировка на таблице настройки хранения итогов. В 8.3.22 он есть до сих пор, возможно это оно.
Лечится включением итогов или отключением проведения по регистру.
(6) Да, это оно. Обошел так: при включенных итогах многопоточно делаю записи в режиме Активность = Ложь (что не вызывает пересчет итогов), затем выключаю итоги, в один поток перевожу все записи в активные,и в включаю итоги.