Как передать Таблицу Значений с Клиента на Сервер

Бывают ситуации при которых необходимо передать структуру данных ТаблицаЗначений с Клиента на Сервер, но проблема в том, что платформа 1С не поддерживает такую передачу, но поддерживает передачу Массива.

Для передачи Таблицы Значений между клиентом и сервером, нужно преобразовать Таблицу Значений в Массив на клиенте, а после из массива в Таблицу Значений на сервере.

В Библиотеке стандартных подсистем (БСП) предусмотрены функции которые решают данную задачу:

Массив = ОбщегоНазначения.ТаблицаЗначенийВМассив(ТабРез);
ТЗ = УниверсальныйОбменСБанками.МассивВТаблицуЗначений(Массив);

Код данных функций преобразования представлен ниже:

Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт
	
	Массив = Новый Массив();
	СтруктураСтрокой = "";
	НужнаЗапятая = Ложь;
	Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
		Если НужнаЗапятая Тогда
			СтруктураСтрокой = СтруктураСтрокой + ",";
		КонецЕсли;
		СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
		НужнаЗапятая = Истина;
	КонецЦикла;
	Для Каждого Строка Из ТаблицаЗначений Цикл
		НоваяСтрока = Новый Структура(СтруктураСтрокой);
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
		Массив.Добавить(НоваяСтрока);
	КонецЦикла;
	Возврат Массив;

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *