|
Оптимизация отчета делает только хуже
| ☑ |
0
Rizhij_Nikitos
05.08.19
✎
17:33
|
Делаю отчет:
— на форме вызываю сервер;
— на сервере формирую табличный документ и возвращаю его на клиент;
— помещаю его в поле табличного документа.
Сначала были показатели:
3 секунды вызов функции СформироватьТабличныйДокумент()
20 секунд на все серверное добро.
Оптимизировал серверное добро, получил:
18 секунд на вызов функции СформироватьТабличныйДокумент()
6 секунд на серверное добро.
Кто-то может объяснить что это за вызов клиентский такой? Из чего складывается время вызова серверного метода?
&НаКлиенте
Процедура Сформировать(Команда)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент = СформироватьТабличныйДокумент(Элементы.ВариантОтчета.ТекстРедактирования);
КонецПроцедуры
&НаСервере
Функция СформироватьТабличныйДокумент(ВариантОтчета)
ОбъектОтчета = РеквизитФормыВЗначение("Отчет");
ТабДок = ОбъектОтчета.Печать(ВариантОтчета);
Возврат(ТабДок);
КонецФункции
|
|
1
Numerus Mikhail
05.08.19
✎
17:35
|
Перенеси печать в модуль менеджера
вызывай сервер без контекста
|
|
2
Euguln
05.08.19
✎
17:39
|
А зачем табличный документ тянуть с сервера на клиента? Помещай на сервере.
|
|
3
Rizhij_Nikitos
05.08.19
✎
17:40
|
(1) Это внешний отчет - у меня нет модуля менеджера. Если я буду без контекста вызывать, как мне тогда обращаться к объекту отчета? И даже если я перенесу весь серверный код в процедуры &НаСервере в модуле формы - мне все равно нужен будет объект отчета для получения макета.
|
|
4
RomanYS
05.08.19
✎
17:40
|
(0) Сделай ТабличныйДокумент реквизитом формы и заполняй его. Передавать явно его не надо
|
|
5
Rizhij_Nikitos
05.08.19
✎
17:41
|
(2), (4) да, ушло до 7 секунд - ожидаемое время. Спасибо.
|
|