Транспонировать таблицу значений



Функция ТранспонироватьТЗ(ТЗ)



ТЗ2 = Новый ТаблицаЗначений;

Массив = ТЗ.ВыгрузитьКолонку(ТЗ.Колонки[0]); // первая колонка содержит названия новых колонок

ТЗ2.Колонки.Добавить(ТЗ.Колонки[0].Имя); // старые названия колонок сохраним в первой колонке



Для Каждого Значения из Массив Цикл

ТЗ2.Колонки.Добавить(СокрЛП(Значения));

КонецЦикла;



Для Сч = 1 По ТЗ.Колонки.Количество() - 1 Цикл

ТЗ2.Добавить();

ТЗ2[Сч - 1][ТЗ.Колонки[0].Имя] = ТЗ.Колонки[Сч].Имя;

КонецЦикла;



СчетчикСтрок = -1;

Для каждого стр из Тз Цикл

СчетчикСтрок = СчетчикСтрок + 1;

Мас = Новый Массив;

Для Сч = 1 По ТЗ.Колонки.Количество() - 1 Цикл

Мас.Вставить(Сч - 1, стр[Сч]);

КонецЦикла;

ТЗ2.ЗагрузитьКолонку(Мас, ТЗ2.Колонки[СчетчикСтрок + 1]);

КонецЦикла;



Возврат ТЗ2;



КонецФункции




✍️ @odin1C_rus