|
Работа с таблицами большого объема | ☑ | ||
---|---|---|---|---|
0
Victor111
02.09.21
✎
13:55
|
Есть обработка с табличной часть куда загружаем запросом данные.
Проблема возникает при передачи с сервера на клиент, очень много времени занимает, может кто-то сталкивался с таким и как боролся? Циклов не использую, Выгрузить/Загрузить (запрос очень быстро отдает результат) |
|||
1
RomanYS
02.09.21
✎
13:56
|
(0) А на клиенте то данные эти нужны?
|
|||
2
Михаил Козлов
02.09.21
✎
13:57
|
(1)+ Что Вы собираетесь с ними на клиенте делать?
|
|||
3
Мультук
гуру
02.09.21
✎
14:04
|
(0)
1) "Очень" это сколько тысяч строк? 2) Не показывайте эту таб.часть на клиенте |
|||
4
nicxxx
02.09.21
✎
14:05
|
Мало контекста. Нужны ли все данные сразу на клиенте или можно показать часть? Если можно - делайте пагинацию своими силами. Примеры запросов можно взять для MSSQL и переделать на 1С. Говорю из собственного опыта.
|
|||
5
nicxxx
02.09.21
✎
14:08
|
Второй вариант - передавайте меньше данных. Кодируйте значения, например Перечисление.ВидОперации.Покупка будет символ "1". Колонки типизируйте заранее. На клиенте - раскодирование, будете подставлять нужное значение вместо кода.
|
|||
6
RomanYS
02.09.21
✎
14:09
|
(4) О! Кстати интересно, можно ли малой кровью создать ДС к ТЗ которая будет жить на сервере (без сохранения в БД). Или в контексте (0) такая реализация не имеет смысл ил не возможна
|
|||
7
H A D G E H O G s
02.09.21
✎
14:09
|
(0) Регистр сведений и ДинамическийСписок.
Не забывайте только чистить после работы |
|||
8
H A D G E H O G s
02.09.21
✎
14:10
|
(6) ДинСписок к ВТ было бы годно!
|
|||
9
Garykom
гуру
02.09.21
✎
14:20
|
(0) код покажи, как ТЧ заполняешь
|
|||
10
Fragster
гуру
02.09.21
✎
14:33
|
если вызов неконтекстный - то сделай его контекстным. не крути таблицу на клиенте. всю таблицу на клиент он не всегда тянет, немного подробнее см https://infostart.ru/public/504141/
|
|||
11
Fragster
гуру
02.09.21
✎
14:37
|
в некоторых случаях большую таблицу хранить во временном хранилище и на клиент передавать только нужную часть
|
|||
12
Victor111
02.09.21
✎
14:40
|
(9) на сервере процедура, выполняю
порядка 5000 строк, может быть еще больше. РезТЗ = Запрос.Выполнить().Выгрузить(); Объект.ТЗДанные.Загрузить(РезТЗ); // около 1-2-х секунд Все просто, быстро, процедура закончилась на сервере. Возвращаемся на клиент и тут происходит зависание (дальше на клиенте ни одной строчки кода), может до 20-30 секунд висеть. |
|||
13
Victor111
02.09.21
✎
14:41
|
(10) спасибо, почитаю
|
|||
14
Victor111
02.09.21
✎
14:47
|
(8) изначально использовал ДС, потом отказались от этого.
Информативно ДС хорошо использовать, но не для постоянной работы со строками. у меня обработка выступает как пульт оператора, где постоянно фиксируют данные/сохраняют + использую функционал отборов свой, где при позиционировании в колонке, предлагает уникальные данные в этой колонке, и так далее по уменьшению в каждой колонке (такого штатным не сделать) |
|||
15
fisher
02.09.21
✎
15:19
|
(12) > Возвращаемся на клиент и тут происходит зависание (дальше на клиенте ни одной строчки кода), может до 20-30 секунд висеть.
Ненормально на первый взгляд. Либо что-то все-таки еще происходит, либо таблица реально большая (много длинных строк, например). |
|||
16
Garykom
гуру
02.09.21
✎
15:21
|
(15) подозреваю отрабатывает ПриИзменении на клиенте или нечто вроде
|
|||
17
Dmitrii
гуру
02.09.21
✎
15:34
|
(16) > отрабатывает ПриИзменении на клиенте или нечто вроде.
Тогда это было бы видно в окне отчета замера производительности. |
|||
18
Fragster
гуру
02.09.21
✎
15:35
|
попробуй на клиенте принудительно первую сроку установить активной после загрузки данных. ну и в процессе этого последить за счетчиками объема переданных данных - передаст он всю таблицу на клиент в момент возврата на клиента или в момент выхода из клиентской процедуры.
также можно складывать данныеформыколлекция на сервере во временное хранилище, очищать и доставать в реквизит на клиенте. по какой-то причине это часто быстрее. но тогда перед контекстным уходом на сервер надо очищать обратно будет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |