Тормоза при открытии заказа покупателя в УНФ 1.6
UPD 2023-04-30: Было выяснено, что проблема была не в типовой форме, а в самодельном RLS. Там запрашивалось представление ссылки почему-то
У клиента долго открываются в первый раз заказы покупателя — по нескольку минут. Если один заказ открыт, то последующие открываются уже нормлаьно.
Замером производительности обнаружил что вызывается 12000 раз процедура модуля менеждера документа «Событие» — ОбработкаПолученияПредставления. Т.е. по сути для всех событий, доступных данному пользователю.
Поставил точку останова на этой процедуре, но там не показывается стек вызовов. Значит, это где-то начинают показываться все эти документы «Событие» без отбора.
Как понять, где? Задача поставила меня в тупик. Пришлось даже обратиться на мисту с вопросом, но там тоже не помогли найти решение.
И всё же там была высказана одна полезная мысль, которая и помогла найти проблему:
Сначала я подумал, что проблема форме списка событий, которая показывается на закладке «События» из документа заказ, я нашел там список, где не стояла галочка «Динамическое считывание данных»:
Но увы, установка галочки ничего не изменила, опять при открытии показывались тысячи документов Событие.
Но задачу нужно было решить, очень уж медленно работали заказы. Я решил скрыть закладку «События», т.к. подзревал, что проблема в ней:
Сначала я скрыл закладку, убрав видимость команды открытия формы списка событий. Торможение прекратилось. Потом я добавил видимость и убрал галочку «Автовидимость». Так тоже работало нормально.
Получается, проблема в автовидимости. Если она включена, то форма подключается, но не происходит открытие формы, т.е. не вызываются события «при создании» и «при открытии» формы. Очень опасное свойство. Нужно понять еще как его отключать программно.
В УНФ 1.6 эта команда ОткрытьСобытияПоОснованию подключена к документам: ДокументСсылка.РасходнаяНакладная, ДокументСсылка.ОтчетКомиссионера, ДокументСсылка.СверкаВзаиморасчетов, ДокументСсылка.ПриходнаяНакладная, ДокументСсылка.ЗаданиеНаРаботу, ДокументСсылка.АктВыполненныхРабот, ДокументСсылка.ЗаказНаПеремещение, ДокументСсылка.РасходСоСчета, ДокументСсылка.ОтчетОПереработке, ДокументСсылка.СчетФактура, ДокументСсылка.ПоступлениеВКассу, ДокументСсылка.ЗаказПокупателя, ДокументСсылка.ЗаказНаПроизводство, ДокументСсылка.СчетНаОплату, ДокументСсылка.ПриемИПередачаВРемонт, ДокументСсылка.Событие, ДокументСсылка.ОтчетПереработчика, ДокументСсылка.ПлатежноеПоручение, СправочникСсылка.ПрайсЛисты, ДокументСсылка.ОтчетКомитенту, ДокументСсылка.РасходИзКассы, ДокументСсылка.ЗаказПоставщику, ДокументСсылка.МассоваяРассылка, ДокументСсылка.ПоступлениеНаСчет, ДокументСсылка.СчетНаОплатуПоставщика
Слишком много, чтобы в каждом менять.
Попытки отключить код команды в конфигурации и расширении ни к чему не привели.
Единственный действенный способ — отключить тип параметра команды, чтобы эта проклятая форма не вызывалась вообще. При желании ее можно вызвать командой из формы документа, например подключаемой внешней обработкой:
К сожалению, этот метод работает только если конфигурацию можно менять, в расширении не получится.
Объем: 6 часов. УНФ 1.6.27.167. Платформа 8.3.21.1644
1 комментарий
[…] меня уже была похожая проблема, когда я допустил ошибку в RSL, но там проблема не […]