Как преобразовать таблицу значений в массив для передачи с сервера на клиента Данная процедура Преобразует таблицу значений в массив.
Может использоваться для передачи на клиента данных, полученных на сервере в виде таблицы значений в том случае, если таблица значений содержит только такие значения, которые могут быть переданы на клиента
Полученный массив содержит структуры, каждая из которых повторяет структуру колонок таблицы значений.
Не рекомендуется использовать для преобразования таблиц значений с большим количеством строк.
Код 1C v 8.3
//
// Параметры: ТаблицаЗначений
// Возвращаемое значение: Массив
//
Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт
Массив = Новый Массив();
СтруктураСтрокой = "";
НужнаЗапятая = Ложь;
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
Если НужнаЗапятая Тогда
СтруктураСтрокой = СтруктураСтрокой + ",";
КонецЕсли;
СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
НужнаЗапятая = Истина;
КонецЦикла;
Для Каждого Строка Из ТаблицаЗначений Цикл
НоваяСтрока = Новый Структура(СтруктураСтрокой);
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
Массив.Добавить(НоваяСтрока);
КонецЦикла;
Возврат Массив;
КонецФункции
Подробнее мы писали об этом в статье: Как передать таблицу значений с сервера на клиент?
вот еще пример:
Код 1C v 8.2 УП &НаКлиенте
Процедура ПолучитьТаблицуНаСервер(Команда)
ТЗ = ПолучитьТЗНаСервере();
КонецПроцедуры
// Функция получает данные на сервере
&НаСервере
Функция ПолучитьТЗНаСервере()
// Для примера сформируем ТЗ с данными
ТЗ = ЗаполнитьТЗДанными();
МассивЗнч = Новый Массив;
Для Каждого СтрТЗ ИЗ ТЗ Цикл
СтруктураВМассив = Новый Структура;
СтруктураВМассив.Вставить("Поле1" , СтрТЗ.Поле1);
СтруктураВМассив.Вставить("Поле2" , СтрТЗ.Поле2);
СтруктураВМассив.Вставить("Поле3" , СтрТЗ.Поле3);
СтруктураВМассив.Вставить("Поле4" , СтрТЗ.Поле4);
СтруктураВМассив.Вставить("Поле5" , СтрТЗ.Поле5);
МассивЗнч.Добавить(СтруктураВМассив);
КонецЦикла;
Возврат МассивЗнч;
КонецФункции
//Функция заполняет ТЗ
&НаСервере
Функция ЗаполнитьТЗДанными()
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Поле1");
ТЗ.Колонки.Добавить("Поле2");
ТЗ.Колонки.Добавить("Поле3");
ТЗ.Колонки.Добавить("Поле4");
ТЗ.Колонки.Добавить("Поле5");
Для i = 1 По 3 Цикл
НоваяСтр = ТЗ.Добавить();
НоваяСтр.Поле1 = i;
НоваяСтр.Поле2 = 2*i;
НоваяСтр.Поле3 = 3*i;
НоваяСтр.Поле4 = 4*i;
НоваяСтр.Поле5 = 5*i;
КонецЦикла;
Возврат ТЗ;
КонецФункции
Категория:
Управляемое приложение, Тонкий клиент