|
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 это не поправили.
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший