1С. Как передать таблицу значений с клиента на сервер или с сервера на клиент. Пример.

Разработчики платформы не реализовали передачу таблицы значений между клиентом и сервером. Это доставляет неудобства и приводит к ошибкам при сериализации данных во время передачи.

Самый простой и рабочий выход это использовать массив структур. Т.е. у вас на входе есть таблица значений. Вы создаете массив. Каждый отдельный элемент массива будет соответствовать строке таблицы значений. При этом колонкам строки таблицы значений будет соответствовать структура с элементами. Для упрощения получения массива структур по ТЗ я написал универсальную универсальную функцию. Можете изучить ее как пример или использовать для своих нужд: 

Функция ПолучитьМассивСтруктурПоТЗ(ТЗ)
    МассивИменКолонок = Новый Массив();
    Для каждого Колонка из ТЗ.Колонки Цикл
        МассивИменКолонок.Добавить(Колонка.Имя);
    КонецЦикла;
    МассивСтруктур = Новый Массив(); 
    Для каждого СтрокаТаблицыЗначений из ТЗ Цикл 
        СтруктураДанных = Новый Структура(); 
       Для ИндексИмениКолонки = 0 по МассивИменКолонок.Количество() – 1 Цикл
            ИмяКолонки = МассивИменКолонок[ИндексИмениКолонки]; 
            СтруктураДанных.Вставить(ИмяКолонки, СтрокаТаблицыЗначений[ИмяКолонки]); 
        КонецЦикла; 
        МассивСтруктур.Добавить(СтруктураДанных);
    КонецЦикла;
Возврат МассивСтруктур;
КонецФункции

Поделиться:

Читайте также: