Работа с универсальными коллекциями данных

andrey5565 311 6 8 8

Преобразование таблицы значений в массив структур, параметр - ТаблицаЗначений, возвращаемое значение - МассивСтруктур;

&НаСервере
Функция ТаблицаЗначенийВМассивСтруктур(Знач ТаблицаЗначений)  Экспорт

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

Комментарии

СергейТ
#1, 08 ноября 2022 14:58

А есть ли разница в формировании структуры перебирая массив в цикле, предварительно подготовив его из колонок ТЗ, вместо перебора сразу колонок в цикле? Лучше уж сформировать ещё и строку полей при обходе колонок, и создавать структуру конструктором Новый Структура(СписокПолейСтрокойЧерезЗапятую); ИМХО


andrey5565
#2, 08 ноября 2022 22:28

(1) СергейТ, Хорошая идея, Сергей, спасибо!


См. также

ЭтоУзелУниверсальногоОбменаДанными (БСП)

ИспользуемыеОбластиДанных (БСП)

Универсальные процедуры для работы с логами

КоллекцияСтранМираПоДаннымКлассификатора (БСП)

ЗаполнитьОбластиПерсональныхДанных (БСП)

МодельДанныхОбласти (БСП)

ЗапрещенныеТипыОбщихДанных (БСП)

ПриПодготовкеНабораДанных (БСП)

НайтиСтрокуВДанныхФормыДерево (БСП)

Модератору