|
Создание массива структур |
☑ |
0
2dolist
02.04.18
✎
10:55
|
Добрый день. Создаю массив структур в цикле
Пока Выборка.Следующий() Цикл
ТестСтруктура = Новый Структура("Выборка", Выборка);
ТестМассив.Добавить(ТестСтруктура);
КонецЦикла;
В результате получается массив из одинаковых структур потому что ТестСтруктура переписывается. А как передать разные структуры?
Пример упростил, вообещ структура там потому что надо ряд значений передавать, но сейчас не принципиально.
|
|
1
Cool_Profi
02.04.18
✎
10:56
|
А зачем ты туда пишешь Выборку, которая при следующей итерации цикла изменится?
Создавай поля и заполняй их...
|
|
2
Diman000
02.04.18
✎
10:58
|
Это не из-за структуры, а из-за того что ты туда пихаешь Выборку.
|
|
3
Diman000
02.04.18
✎
10:58
|
Новый Структура дальше ЗаполнитьЗначенияСвойств и все взлетит.
|
|
4
2dolist
02.04.18
✎
11:01
|
я и не подумал на выборку и правда. Спасибо.
|
|
5
Волшебник
02.04.18
✎
11:02
|
Пока Выборка.Следующий() Цикл
ТестСтруктура = Новый Структура("Поле1, Поле2", Выборка.Поле1, Выборка.Поле2);
ТестМассив.Добавить(ТестСтруктура);
КонецЦикла;
|
|
6
ПегийЛунь
02.04.18
✎
11:05
|
В частности смотрим БП 3.0.
Общий модуль "ОбщегоНазначения"
Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт
Массив = Новый Массив();
СтруктураСтрокой = "";
НужнаЗапятая = Ложь;
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
Если НужнаЗапятая Тогда
СтруктураСтрокой = СтруктураСтрокой + ",";
КонецЕсли;
СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
НужнаЗапятая = Истина;
КонецЦикла;
Для Каждого Строка Из ТаблицаЗначений Цикл
НоваяСтрока = Новый Структура(СтруктураСтрокой);
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
Массив.Добавить(НоваяСтрока);
КонецЦикла;
Возврат Массив;
КонецФункции
|
|