Каталог решений - Переворот или ТРАНСПОНИРОВАНИЕ Таблицы Значений

Переворот или ТРАНСПОНИРОВАНИЕ Таблицы Значений

Переворот или ТРАНСПОНИРОВАНИЕ Таблицы Значений

В наличии

Задача такова что необходимо поменять местами Колонки со Строками. Условие Первая колонка значений это название колонок будущей таблицы значений.

Исходная таблица:
Индекс    Колонка1    Колонка2    Колонка3    Колонка4
0    "Тип11"    "Тип21"    "Тип31"    "Тип41"
1    "Тип12"    "Тип22"    "Тип32"    "Тип42"
2    "Тип13"    "Тип23"    "Тип33"    "Тип43"
3    "Тип14"    "Тип24"    "Тип34"    "Тип44"
4    "Тип15"    "Тип25"    "Тип35"    "Тип45"

Полученная таблица:
Индекс    Тип11    Тип12    Тип13    Тип14    Тип15
0    "Тип11"    "Тип12"    "Тип13"    "Тип14"    "Тип15"
1    "Тип21"    "Тип22"    "Тип23"    "Тип24"    "Тип25"
2    "Тип31"    "Тип32"    "Тип33"    "Тип34"    "Тип35"
3    "Тип41"    "Тип42"    "Тип43"    "Тип44"    "Тип45"

Минус ы :
1.того что имя колонок первоначальных не видно.
2. Значение исходной таблицы первой колонки должны быть типизированны для название колонок.

P.S. Может поможет кому 😉

Категория:

Описание

// Функция возвращает перевернутую ТЗ
// Кидаем ТЗ
Функция ПеревернутьТЗ(ТЗ)
	ТЗ2 = Новый ТаблицаЗначений;
	Массив=Тз.ВыгрузитьКолонку(Тз.Колонки[0]);
	Для Каждого Значения  ИЗ  Массив ЦИКЛ 		ЗН=ВРег(СокрЛП(Значения));
		ТЗ2.Колонки.Добавить(Значения);
	Конеццикла;
	Для каждого стр из Тз.Колонки Цикл 		ТЗ2.Добавить();
	КонецЦикла;
	СчетчикСтрок=-1;
	Для каждого стр из Тз Цикл 		СчетчикСтрок=СчетчикСтрок+1;
		Мас= Новый Массив;
		счетчик=-1;
		Для каждого КН из Тз.Колонки Цикл 			счетчик=счетчик+1;
			ЗначениеИндекса=стр[КН.Имя];
			Мас.Вставить(счетчик,ЗначениеИндекса);
		КонецЦикла;
		ТЗ2.ЗагрузитьКолонку(Мас,ТЗ2.колонки[СчетчикСтрок]);
	КонецЦикла;
	Возврат ТЗ2;	
КонецФункции  
has been added to your cart:
Оформление заказа