|
Табличный документ, тонкий клиент и производительность. | ☑ | ||
---|---|---|---|---|
0
H A D G E H O G s
27.03.14
✎
20:59
|
День добрый.
Ситуация - управляемая форма, на ней Табличный документ, примерно в 10000 строк, с 20 колонками, расшифровкой, и.т.д. Вывод в него производится на сервере (на клиенте выводить нельзя). После вывода табличный документ передается на клиент, как результат функции. Передача отнимает 30 секунд в локальной сети (но проблема не в этом). 28 секунд примерно занимает Сериализация Табличного документа в XDTO и записи в XML объект, который и передается по сети. К такому выводу я пришел, когда получил такую же производительность при ручной сериализации (если я не прав - прошу поправить меня специалистам). Код сериализации: &НаСервереБезКонтекста Функция ПолучитьТабДокЧерезXDTOНаСервере(Знач ИмяБлока,Знач АдресДанныхНаСервере) Декларации=ВывестиБлокДанныхВТабличныйДокумент("Декларации",АдресДанныхНаСервере); Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO); ОбъектXDTO = Сериализатор.ЗаписатьXDTO(Декларации); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("D:\test\new.xml"); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO); //28 секунд ЗаписьXML.Закрыть(); КонецФункции записанный файл занимает 69 мегабайт. Беда. Что пробовалось: 1. Запись табличного документа в mxl (39 мегабайт, практически мгновенное формирование, отличной ZIP сжатие), но метод Прочитать() у Табличного документа не доступен на Тонком клиенте. 2. Сериализация в ЗаписьFastInfoset (25 мегабайт, приемлимая скорость (5-7 секунд), но объект ЧтениеFastInfoset недоступен на Тонком клиенте (в отличии от ЧтенияXML) Есть еще идеи? |
|||
2
H A D G E H O G s
28.03.14
✎
09:36
|
Поднимем ветку.
|
|||
3
Kyon8
28.03.14
✎
09:39
|
А пользователи все 10000 строк внимательно просматривают? :)
|
|||
4
H A D G E H O G s
28.03.14
✎
09:42
|
(3) Да.
|
|||
5
alexhtn
28.03.14
✎
09:47
|
Попробовал сформировать табличный документ с большим количеством строк и по счетчикам производительности вижу, что он не весь сразу передается тонкому клиенту, а только по мере прокрутки.
Попробую сделать замер производительности. |
|||
6
H A D G E H O G s
28.03.14
✎
09:58
|
(5) Момент
|
|||
8
H A D G E H O G s
28.03.14
✎
10:06
|
Так, беру таймаут.
Изначально, я получал табдок через безконтекстную функцию. Сейчас попробовал получил через контекстную функцию, выводя его на форму прямо на сервере. Все отработало быстро, по мере промотки табличного документа - периодическое обращение к серверу (при безконтекстном вызове такого не было). Респект 1С, они сделали динамически подгружаемый с сервера, табличный документ. |
|||
9
alexhtn
28.03.14
✎
10:20
|
Но только сохранение такого документа превращается в ужас.
Количество вызовов сервера зашкаливает. |
|||
10
H A D G E H O G s
28.03.14
✎
10:45
|
(9) Неприятность эту мы переживем. Вызов безконтекстной функции, которая вернет этот таб док сразу. Который будет нединамическим.
|
|||
11
mistеr
28.03.14
✎
11:26
|
(4) Не верю. (с)
|
|||
12
vi0
09.04.14
✎
21:05
|
(5) а какие счетчики смотрел?
|
|||
13
H A D G E H O G s
09.04.14
✎
21:07
|
(12) Да просто окно производительности.
При прокрутке - мигает обращением к серверу - только в путь и накапливает счетчик серверных вызовов. |
|||
14
vi0
09.04.14
✎
21:09
|
(13) одинесная которая?
|
|||
15
H A D G E H O G s
09.04.14
✎
21:22
|
(14) да
|
|||
16
jsmith82
09.04.14
✎
21:24
|
для твоего примера 28 секунд это норма
|
|||
17
jsmith82
09.04.14
✎
21:26
|
>>безконтекстную
бесконтекстную, не режь ухо |
|||
18
Torquader
09.04.14
✎
22:12
|
Можно передать на клиента таблицу или массив с данными, а уже саму таблицу собрать на клиенте - явно получится намного меньше.
P.S. я так Excel собирал. |
|||
19
H A D G E H O G s
09.04.14
✎
22:34
|
(18) табличный документ на клиенте не формируется
|
|||
20
floody
09.04.14
✎
22:46
|
(17) давно правильное написание стало резать ухо?
|
|||
21
milan
09.04.14
✎
22:48
|
Попробуй перескочить в конец документа, а потом отмотать к началу - получишь тот же самый фриз ;)
Вообще беда с производительностью - что динамические списки, что скд, что табдоки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |