1. ttt1380 2 09.09.19 22:11 Сейчас в теме

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

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

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

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

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

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

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




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

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

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день


Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству