Тормоза при открытии заказа покупателя в УНФ 1.6

UPD 2023-04-30: Было выяснено, что проблема была не в типовой форме, а в самодельном RLS. Там запрашивалось представление ссылки почему-то

У клиента долго открываются в первый раз заказы покупателя — по нескольку минут. Если один заказ открыт, то последующие открываются уже нормлаьно.

Замером производительности обнаружил что вызывается 12000 раз процедура модуля менеждера документа «Событие» — ОбработкаПолученияПредставления. Т.е. по сути для всех событий, доступных данному пользователю.

Поставил точку останова на этой процедуре, но там не показывается стек вызовов. Значит, это где-то начинают показываться все эти документы «Событие» без отбора.

Как понять, где? Задача поставила меня в тупик. Пришлось даже обратиться на мисту с вопросом, но там тоже не помогли найти решение.

И всё же там была высказана одна полезная мысль, которая и помогла найти проблему:

Сначала я подумал, что проблема форме списка событий, которая показывается на закладке «События» из документа заказ, я нашел там список, где не стояла галочка «Динамическое считывание данных»:

Но увы, установка галочки ничего не изменила, опять при открытии показывались тысячи документов Событие.

Но задачу нужно было решить, очень уж медленно работали заказы. Я решил скрыть закладку «События», т.к. подзревал, что проблема в ней:

Сначала я скрыл закладку, убрав видимость команды открытия формы списка событий. Торможение прекратилось. Потом я добавил видимость и убрал галочку «Автовидимость». Так тоже работало нормально.

Получается, проблема в автовидимости. Если она включена, то форма подключается, но не происходит открытие формы, т.е. не вызываются события «при создании» и «при открытии» формы. Очень опасное свойство. Нужно понять еще как его отключать программно.

В УНФ 1.6 эта команда ОткрытьСобытияПоОснованию подключена к документам: ДокументСсылка.РасходнаяНакладная, ДокументСсылка.ОтчетКомиссионера, ДокументСсылка.СверкаВзаиморасчетов, ДокументСсылка.ПриходнаяНакладная, ДокументСсылка.ЗаданиеНаРаботу, ДокументСсылка.АктВыполненныхРабот, ДокументСсылка.ЗаказНаПеремещение, ДокументСсылка.РасходСоСчета, ДокументСсылка.ОтчетОПереработке, ДокументСсылка.СчетФактура, ДокументСсылка.ПоступлениеВКассу, ДокументСсылка.ЗаказПокупателя, ДокументСсылка.ЗаказНаПроизводство, ДокументСсылка.СчетНаОплату, ДокументСсылка.ПриемИПередачаВРемонт, ДокументСсылка.Событие, ДокументСсылка.ОтчетПереработчика, ДокументСсылка.ПлатежноеПоручение, СправочникСсылка.ПрайсЛисты, ДокументСсылка.ОтчетКомитенту, ДокументСсылка.РасходИзКассы, ДокументСсылка.ЗаказПоставщику, ДокументСсылка.МассоваяРассылка, ДокументСсылка.ПоступлениеНаСчет, ДокументСсылка.СчетНаОплатуПоставщика

Слишком много, чтобы в каждом менять.

Попытки отключить код команды в конфигурации и расширении ни к чему не привели.

Единственный действенный способ — отключить тип параметра команды, чтобы эта проклятая форма не вызывалась вообще. При желании ее можно вызвать командой из формы документа, например подключаемой внешней обработкой:

К сожалению, этот метод работает только если конфигурацию можно менять, в расширении не получится.

Объем: 6 часов. УНФ 1.6.27.167. Платформа 8.3.21.1644

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *