Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Оптимизация отчета делает только хуже

Оптимизация отчета делает только хуже
Я
   Rizhij_Nikitos
 
05.08.19 - 17:33
Делаю отчет:
— на форме вызываю сервер;
— на сервере формирую табличный документ и возвращаю его на клиент;
— помещаю его в поле табличного документа.

Сначала были показатели:
3 секунды вызов функции СформироватьТабличныйДокумент()
20 секунд на все серверное добро.

Оптимизировал серверное добро, получил:
18 секунд на вызов функции СформироватьТабличныйДокумент()
6 секунд на серверное добро.

Кто-то может объяснить что это за вызов клиентский такой? Из чего складывается время вызова серверного метода?


&НаКлиенте
Процедура Сформировать(Команда)
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент = СформироватьТабличныйДокумент(Элементы.ВариантОтчета.ТекстРедактирования);
    
КонецПроцедуры

&НаСервере
Функция СформироватьТабличныйДокумент(ВариантОтчета)

    ОбъектОтчета = РеквизитФормыВЗначение("Отчет");    
    ТабДок = ОбъектОтчета.Печать(ВариантОтчета);
    Возврат(ТабДок);

КонецФункции
 
 
   Numerus Mikhail
 
1 - 05.08.19 - 17:35
Перенеси печать в модуль менеджера
вызывай сервер без контекста
   Euguln
 
2 - 05.08.19 - 17:39
А зачем табличный документ тянуть с сервера на клиента? Помещай на сервере.
   Rizhij_Nikitos
 
3 - 05.08.19 - 17:40
(1) Это внешний отчет - у меня нет модуля менеджера. Если я буду без контекста вызывать, как мне тогда обращаться к объекту отчета? И даже если я перенесу весь серверный код в процедуры &НаСервере в модуле формы - мне все равно нужен будет объект отчета для получения макета.
   RomanYS
 
4 - 05.08.19 - 17:40
(0) Сделай ТабличныйДокумент реквизитом формы и заполняй его. Передавать явно его не надо
   Rizhij_Nikitos
 
5 - 05.08.19 - 17:41
(2), (4) да, ушло до 7 секунд - ожидаемое время. Спасибо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.