Всем привет. Может быть для большинства это покажется банально, но я для себя недавно открыл новую функцию преобразования таблицы значений в массив структур без перебора коллекции колонок для каждой строки строки таблицы. Вот как выглядит стандартное решение, которое в большинстве случаев есть в интернете и на самом Инфостарте:
&НаСервере
Функция ПреобразоватьТаблицуЗначенийВМассивСтруктур(п_ТЗ) Экспорт
МассивСтруктур = Новый Массив;
Для Каждого СтрокаТЗ Из п_ТЗ Цикл
ЭлементСтруктура = Новый Структура;
Для Каждого ИмяКолонки Из п_ТЗ.Колонки Цикл
ЭлементСтруктура.Вставить(ИмяКолонки.Имя, СтрокаТЗ[ИмяКолонки.Имя]);
КонецЦикла;
МассивСтруктур.Добавить(ЭлементСтруктура);
КонецЦикла;
Возврат МассивСтруктур;
КонецФункции
А вот более аккуратное и красивое решение этой задачи:
Функция ПреобразоватьТаблицуЗначенийВМассивСтруктур(п_ТЗ) Экспорт
Массив = Новый Массив();
СтруктураСтрокой = "";
НужнаЗапятая = Ложь;
Для Каждого Колонка Из п_ТЗ.Колонки Цикл
Если НужнаЗапятая Тогда
СтруктураСтрокой = СтруктураСтрокой + ",";
КонецЕсли;
СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
НужнаЗапятая = Истина;
КонецЦикла;
Для Каждого Строка Из п_ТЗ Цикл
НоваяСтрока = Новый Структура(СтруктураСтрокой);
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
Массив.Добавить(НоваяСтрока);
КонецЦикла;
Возврат Массив;
КонецФункции
Преимущество очевидно. И хотя это решение присутствует в типовых конфигурациях, я мало где видел что бы его использовали вне разработки типовых решений.
Всем удачи. Может, кому пригодится.