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