Преобразование Объекта ДеревоЗначений в Объект ТаблицаЗначений

andrey5565 298 5 9 8

В первую функцию передаем - ДеревоЗначений, во вторую (рекурсивную) функцию передаем созданный объект встроенного языка - ТаблицаЗначений, и строку дерева; В место вызова функции ДеревоЗначенийВТаблицуЗначений() произойдет возврат ТаблицыЗначений.

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

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

См. также

Функция копирования колонок в таблицу или дерево значений (конструктор таблиц и деревьев значений)

Выгрузить Таблицу значений в массив структур (для передачи сервер - клиент)

Вывод данных СКД в таблицу значений (дерево)

mxl в таблицу значений

Таблица значений в табличный документ

ТаблицаЗначений из кроны ДереваЗначений

Создание схемы компоновки данных программно

МассивСтруктурВТаблицуЗначений

ТаблицаЗначенийВМассивСтруктур

Модератору