Проверка оптимизированной передачи ДанныеФормыДерево

05.03.26

Разработка - Механизмы платформы 1С

Многие программисты 1С до сих пор не верят в то, что платформа 1C 8.3.27 оптимизирует передачу коллекции типа ДанныеФормыДерево между клиентом и сервером. Эта статья призвана убедить их.

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Оптимизированная передача ДанныеФормыДерево между клиентом и сервером для любой конфигурации
.epf 31,40Kb
11 Скачать бесплатно

Вступление

В ИТС нам обещают 

платформа 1С:Предприятие самостоятельно оптимизирует объем передаваемых данных между клиентом и сервером (в обоих направлениях). Прежде всего, это реквизиты формы с табличными документами и коллекции элементов (ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево)

Но давайте проверим это.

 

Проверка

Создаем тестовую форму с реквизитом типа ДеревоЗначений, отображаемым в таблице формы, и модулем

Код написан на скорую руку чисто для теста и не является примером для подражания

&НаКлиенте
Процедура Команда1(Команда)
	Для Счетчик = 1 По 10000 Цикл
		Дерево.ПолучитьЭлементы().Добавить().Реквизит1 = Счетчик;
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Команда2(Команда)
	Родитель = Дерево.НайтиПоИдентификатору(Элементы.Дерево.ТекущаяСтрока);
	Для Счетчик = 1 По 10 Цикл
		Родитель.ПолучитьЭлементы().Добавить().Реквизит1 = Счетчик;
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Команда3(Команда)
	СерверныйВызов();
КонецПроцедуры

&НаСервере
Процедура СерверныйВызов()
КонецПроцедуры

Команда1 - добавляет 1000 строк верхнего уровня.

Команда2 - добавляет 10 дочерних строк в текущую строку дерева.

Команда3 - делает чистый контекстный серверный вызов.

Теперь запускаем форму на платформе 8.3.27 и с включенными показателями производительности наблюдаем на числом переданных байт (показатель "Отправлено" в нижней области главного окна) в контекстных серверных вызовах после обоих видов добавления строк в дерево.

 

 

Выводы из видео

1. Передаваемое число байт при серверном вызове составляет минимально, т.е. при отсутствии изменений в форме, стабильные 1100 байт независимо от число элементов в дереве.

2. Передаваемое число байт при серверном вызове после добавления 1000 строк в дерево составляет 16900 (15800 чистых) байт независимо от общего числа элементов в дереве.

3. Передаваемое число байт при серверном вызове после добавления 10 дочерних строк в дерево составляет 1300 (200 чистых) байт независимо от общего числа элементов в дереве.

Таким образом наши наблюдения подтвердили и прояснили, что платформа в контекстном серверном вызове передает только изменившиеся строки коллекции ДанныеФормыДерево независимо от их размещения в структуре дерева.

Вступайте в нашу телеграмм-группу Инфостарт

ДанныеФормыДерево

См. также

Механизмы платформы 1С Программист Бесплатно (free)

Разберем 15 мифов о работе платформы «1С:Предприятие 8» – как распространенных, так и малоизвестных. Начнем с классики: «Код, написанный в одну строку, работает быстрее, чем многострочный». Так ли это на самом деле?

16.07.2025    29280    TitanLuchs    106    

148

Механизмы платформы 1С Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    15971    bayselonarrend    127    

68

Механизмы платформы 1С Программист 1С:Предприятие 8 Бесплатно (free)

В этой статье подробно рассматривается работа с JSON в XDTO в 1С:Предприятие. Вы узнаете, как сериализовать и десериализовать объекты XDTO в JSON, интегрировать 1С с веб-сервисами и API, а также корректно обрабатывать данные при обмене. Разбираются особенности работы с коллекциями, использование функций восстановления и частые ошибки при работе с JSON и XDTO.

30.01.2025    18767    user2122906    9    

64

Механизмы платформы 1С WEB-интеграция Программист 1С:Предприятие 8 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    29591    dsdred    92    

147

Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    26595    bayselonarrend    22    

175

Механизмы платформы 1С Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    14405    dsdred    22    

85
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1037 05.03.26 08:32 Сейчас в теме
Только вот Дерево.ПолучитьЭлементы() и Родитель.ПолучитьЭлементы() лучше выносить за пределы цикла! Тогда мы по 1 разу получим ссылку на коллекцию.
tormozit; +1 Ответить
2. tormozit 7337 05.03.26 08:50 Сейчас в теме
(1) С точки зрения скорости работы кода - да. Но с точки зрения компактности кода теста - скорее наоборот.
3. SerVer1C 1037 05.03.26 08:52 Сейчас в теме
(2) Падаванов надо сразу приучать к хорошим манерам. Они же тебе безусловно доверяют )
4. tormozit 7337 05.03.26 09:01 Сейчас в теме
(3) Добавил сноску
Код написан на скорую руку чисто для теста и не является примером для подражания
starik-2005; top_1c; Hobbit_Jedi; SerVer1C; +4 Ответить
5. mefalcon 39 05.03.26 10:24 Сейчас в теме
6. starik-2005 3213 05.03.26 15:07 Сейчас в теме
(4)
примером
Чтобы было в соответствии со стандартами 1С, надо:
Для С = 1 По Х Цикл
Для отправки сообщения требуется регистрация/авторизация