Имя: Пароль:
1C
 
1С намертво зависает при печати пф
0 tkrwa
 
01.07.24
08:34
УТ 11 (11.5.12.270), версия платформы 8.3.22.2283

При попытке напечатать типовую УПД или внешнюю пф (тоже УПД своя) 1с виснет, пользователь справляется с этим только завершив сеанс через диспетчер задач.
Делали замер, больше всего времени тратится на строчке "Блокирвока.Заблокировать()" в общем модуле "РаспределениеВзаиморасчетовВызовСервера" процедура "ЗаблокироватьРегистрЗаданий", блокируется регистр "ЗаданияКРаспределениюРасчетовСКлиентами". Расписание рег. задания - каждые 60 сек.
Такое зависание 1с происходит не при каждой попытке напечатать что-то: иногда печатает быстро, иногда за пару минут, а бывает что намертво виснет.

А если и выводит форму через 5 минут, то выходит сообщение о неактуальности данных.

Может кто-то сталкивался и знает как решить проблему?
1 tkrwa
 
01.07.24
08:42
Пробовали чистить кэш у пользователя, не помогло, при тестировании и замерах обнаружили, что и под админом виснет так же
2 DJ Anthon
 
01.07.24
08:51
он делает пересчет взаиморасчетов, потому что они могли "измениться". такой пересчет может и час занять. такая вот тупая архитектура. можете вырезать этот кусок кода в расширении. но пересчитывать всё равно придётся, рано или поздно. например, это делается при любой попытке получить свежие данные по партнеру или при закрытии месяца.
конкретно у меня я обнаружил, что расчет происходит быстро, а вот запись в регистр почему-то резко тормозится, пока что не нашёл, как исправить, надеюсь, это пофиксили в новой платформе, так как видно, что это косяк сервера. у нас постгри, 23-я версия. в процессе расчетов образуется 4-6 пачек записей по 8000 строк. он должен их мгновенно записывать, но почему-то быстро пишет только одну-две пачки, на остальных сильно виснет.
3 arsik
 
01.07.24
08:59
А нафига при печати УПД взаиморасчеты считать?
4 tkrwa
 
01.07.24
09:15
Это типовой функционал, и он скорее всего не при печати запускается, а при проведении рту/заведении сф.
После этого пользователь сразу пытается распечатать УПД и, как я думаю, попадает на это задание.
Предлагали пользователю немного ждать после заведения документа, не печатать сразу. Сказал, что в целом та же история, то печатает нормально, то зависает.
5 H A D G E H O G s
 
01.07.24
10:49
При печати пересчитываются взаиморсчеты.
Надмозги из 1С используют при этом таблицу ОстаткиИОбороты, которой не хватает индекса по одному измерению и когда данных становилось очень много, sql внезапно выбирал неверный план запроса. Так было в 11.3, неужели в 11.5 это не поправили.