Имя: Пароль:
1C
1С v8
Данные долго возвращаются на клиент
0 Evil-Wisp
 
06.03.17
05:38
Добрый день. Пл.8.3.8.1747, MS SQL, не терминальный доступ.
Возникла следующая проблема с производительностью в созданной внутренней обработке:
С клиента вызывается процедура &НаСервере, там заполняется реквизит формы Таблица значений (30 колонок). При большом количестве строк в таблице (5500) переход от строчки "КонецПроцедуры" и возврат к клиентский метод занимает 5-6 секунд (60% времени). Для оперативной работы в механизме это долго.
Примерно получается что 1000 строк таблицы передаются 1 секунду.
Можно ли это как-то ускорить?
1 Antony8x
 
06.03.17
05:43
Вместо Таблицы значений использовать Список значений или Структуру и не трогать сервер
2 VladZ
 
06.03.17
05:45
(0) А если использовать табличную часть?
3 Evil-Wisp
 
06.03.17
06:35
(2) С табличной частью ничего не изменилось
(1) Ты имеешь в виду сделать структуру массивов и передавать их из процедуры &НаСервереБезКонтекста?
4 SergeyKB
 
06.03.17
06:45
(0)
в плюс к без контекстному заполнению исключи передачу на клиента ссылок, только представление
если данную таблицу планируешь отражать клиенту
саму таблицу с ссылками храни помещай в хранилище и привязывай к идентификатору формы
строки связывай по ключу строки
5 vi0
 
06.03.17
07:32
попробуй на сервере сделать отдельную таблицу значений и передавать ее на клиент сжатой в хранилище значения
и на клиенте уже загрузить в форму
6 FIXXXL
 
06.03.17
09:03
(5) нет на клиенте таблицы...
а если через РС и дин.список сделать?
7 vi0
 
06.03.17
09:22
(6) можно массив структур попробовать
8 FIXXXL
 
06.03.17
09:25
(7) да можно
но не уверен в выигрыше во времени
что платформа парсит ХМЛ, что кодом из массивов собирать таблицу
там ведь львиная доля времени не на ПЕРЕДАЧУ данных как таковых, а на "сложить в ХМЛ"-"поднять из ХМЛ"
9 Evil-Wisp
 
06.03.17
09:29
(6) На клиенте есть реквизит таблица значений.
Про РС интересно. 4-5 пользователей получают данный список раз в 2-3 минуты, иногда чаще. 30 ресурсов регистра по 5000 строк от каждого пользователя.
Может общая производительность упасть, но попробовать тоже можно.
&НаСервереБезКонтекста пока не переписывал, там довольно много, но боюсь, что передача данных от этого не ускорится.
10 vi0
 
06.03.17
09:31
(8) все понятно, но никто не мешает попробовать
где именно там будет узкое место неясно
11 vi0
 
06.03.17
09:34
(0) а что за таблица такая?
в чем прикладная задача?
12 Evil-Wisp
 
06.03.17
09:44
(11) Подсистемка для продажников и телемаркетологов. Все на отдельных регистрах. Запрос 3-х этапный с ветвлениями и 20+ пакетами. Но он отрабатывает 25% времени и его еще можно ускорить.
А сам список содержит контрагентов, колонки в зависимости от выбранных настроек и режимов.
В нем должен работать поиск.
13 FIXXXL
 
06.03.17
09:58
(9) вся прелесть с РС+дин.список в том, что с клиента на сервер и обратно гоняется не 5 тыщ, а видимый кусок +запас на листание
14 тарам пам пам
 
06.03.17
10:44
можно еще попробовать вместо таблицы значений использовать табличный документ - насколько я помню, он тоже не целиком между клиентом и сервером ездит.