Хранение таблицы значений на сервере или быстрая передача ее между клиентом и сервером

1. ttt1380 14 09.09.19 22:11 Сейчас в теме
Управляемое приложение. Тонкий клиент. Версия платформы 8.3.14.xx.
Есть большая таблица значений, как реквизит формы. При передачи ее на сервер, происходит существенный лаг по времени. Вопрос: как ускорить передачу с клиента на сервер, либо кто какие варианты хранения, использует таблицы значений на сервере?

На данный момент лучшем решением, видится сохранение ТЗ на сервере во временное хранилище и хранение адреса на клиенте.
По теме из базы знаний
Найденные решения
23. ttt1380 14 10.09.19 12:45 Сейчас в теме
Всем большое спасибо за участие. Буду использовать ТЗ на сервере и временное хранилище
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. EVKash 14 10.09.19 08:20 Сейчас в теме
(1) Попробуйте запускать тонкий клиент не со стандартным сжатием.
если канал хороший, то
/TComp -None
если не очень, то
/TComp -Deflate
Стандартное сжатие вроде как тормозит на больших данных.
8. ttt1380 14 10.09.19 10:16 Сейчас в теме
4. SlavaKron 10.09.19 08:51 Сейчас в теме
(1)
сохранение ТЗ на сервере во временное хранилище и хранение адреса на клиенте

Собственно, да, это решение, при котором передача ТЗ между сервером и клиентом не происходит вообще. Данные ТЗ на клиенте, я так понимаю, не нужны?
6. ttt1380 14 10.09.19 09:27 Сейчас в теме
(4) Здесь меня смущает, не потеряется ли все в один прекрасный момент. Что происходит если rphost перезапуститься или произойдет переключение на другой процесс, как временное хранилище будет работать?
24. herfis 498 10.09.19 13:01 Сейчас в теме
(1)
На данный момент лучшем решением, видится сохранение ТЗ на сервере во временное хранилище и хранение адреса на клиенте.

А других вариантов вроде и нет. Только помещать в хранилище надо обязательно с привязкой к форме. Тогда время жизни будет привязано к времени жизни формы. И если долго не обращаться, ТЗ может быть сериализована на диск. Тогда будет большой лаг при очередном обращении.
sulfur17; +1 Ответить
2. coollerinc 186 09.09.19 23:59 Сейчас в теме
С такой проблемой не сталкивался, хотя были достаточно большие и таблицы и деревья. Большая это сколько? Вы замеряли время, с пустой таблицей быстро передает, с огромной таблицей медленно и есть прямая зависимость? Я очень сомневаюсь, что дело в этом. Там все достаточно оптимизировано, на сервер идут только измененные строки.
5. ttt1380 14 10.09.19 09:24 Сейчас в теме
(2) Я тоже так думал и ранее не сталкивался с такими проблемами. Вообще таблица по высоте не большая, около 5000 тыс. строк, но вот колонок там более 400. Таблица строится динамически. Это довольно специфическая задача (планирование ресурсов). На форме клиент меняет данные. Потеря производительности происходит при вызове сервера. Замеры делал, разница более чем 10 раз, когда таблица почти пустая и когда она наполнена данными.
Дополнение: Сама таблица на форму не выведена, пользователю показывается все в табличном документе. изменение он тоже делает через таб. документ
7. YannikAlx 43 10.09.19 09:48 Сейчас в теме
(5) Пробуйте как вариант таблицу значений хранить изначально не как реквизит формы , а как табличную часть объекта, который выведен на форму.
Его фактическое расположение естественно на сервере и он будет синхронизироваться после каждого изменения, возможно только в части измененных данных, не передавая весь объем...
9. ttt1380 14 10.09.19 10:21 Сейчас в теме
(7) О, это вариант, спасибо. сейчас буду пробовать. Плюс для таб. части можно отключить использовать всегда (как я понимаю то в этом случае данные не должны ходить на клиент). Отпишусь чуть позже по результату
10. ttt1380 14 10.09.19 11:26 Сейчас в теме
(9) Данный вариант не помог. Флаг "ИспользоватьВсегда" не понял вообще как работает, при снятии он не видит таблицу в серверной процедуре (&НаСервере)
Вот для наглядности сделал процедуры:
&НаКлиенте
Процедура ТестоваяКоманда(Команда)
	
	ТестоваяКомандаСервер();
	ТестоваяКомандаСерверБезКонтекста();
	
КонецПроцедуры

&НаСервере
Процедура ТестоваяКомандаСервер()
		
	Счетчик = 1;
			
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ТестоваяКомандаСерверБезКонтекста()
		
	Счетчик = 1;
			
КонецПроцедуры
Показать




Замеры при пустой таблицы и заполненной данными :
Прикрепленные файлы:
14. dhurricane 10.09.19 12:15 Сейчас в теме
(10) А обойтись без обработки таблицы на сервере не получится? Я о том, чтобы снять таки флаг "Использовать всегда", и обращаться уже не к таблице реквизита формы "Объект", а непосредственно к табличной части "ТекущегоОбъекта" перед записью.
17. ttt1380 14 10.09.19 12:17 Сейчас в теме
(14) К сожалению нет, юзеры данные изменяют
19. ttt1380 14 10.09.19 12:20 Сейчас в теме
(14) И скорее всего если обращаться к ТекущемуОбъекту, то уже созданных динамически колонок система не увидет. Не пробывал, но подозреваю что будет так. А вся проблема в том что у меня колонки динамически формируются
20. dhurricane 10.09.19 12:26 Сейчас в теме
(19) Конечно, в ТекущемОбъекте таблица будет именно в том виде, в котором она записывается в ИБ. Но я подумал исходя из Вашего описания, что все необходимые данные, введенные пользователем, у Вас есть в табличном документе. Из него я и подразумевал заполнять ТекущийОбъект.
21. ttt1380 14 10.09.19 12:40 Сейчас в теме
(20) Не совсем все. В ТЗ есть все данные. а в таб документе, только данные которые хочет видеть пользователь, т.е. у вас есть модель планирования (настраиваемая) в качестве разреза при планировании используются скажем Аналитика1, Аналитика2, Аналитика3 и показатели П1, П2, П3, и т.д.

При отрисовке таб. документа пользователь настраивает вид (структуру отчета) и например выбирает что он хочет видеть Аналитику1 и Аналитику2 и показатели. При этом аналитика3 в таб. документ не попадает. При построение таб. документа данные из ТЗ агрегируются (сумма, среднее, максимум и т.д.) по своим правилам и выводятся
22. dhurricane 10.09.19 12:44 Сейчас в теме
23. ttt1380 14 10.09.19 12:45 Сейчас в теме
Всем большое спасибо за участие. Буду использовать ТЗ на сервере и временное хранилище
11. coollerinc 186 10.09.19 11:58 Сейчас в теме
выложите всю обработку, изначальную. где хранится в таблице значений
12. ttt1380 14 10.09.19 12:09 Сейчас в теме
(11) Это документ а не обработка. Полностью к сожалению выложить не могу
13. ttt1380 14 10.09.19 12:14 Сейчас в теме
Поместил таблицу в ТЗ на сервер используя временное хранилище. Результат успешно. Замеры ниже
Прикрепленные файлы:
16. dhurricane 10.09.19 12:17 Сейчас в теме
(13) Похоже, это старые замеры. :) Или разница на один порядок - ожидаема?
18. ttt1380 14 10.09.19 12:18 Сейчас в теме
(16) почему старые, нет с использованием ТЗ на сервере
15. ttt1380 14 10.09.19 12:16 Сейчас в теме
Теперь осталось переделать все и смотреть как это будет все себя показывать в продакшене
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот