|
Создание массива структур | ☑ | ||
|---|---|---|---|---|
|
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.
Общий модуль "ОбщегоНазначения" Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт Массив = Новый Массив(); СтруктураСтрокой = ""; НужнаЗапятая = Ложь; Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл Если НужнаЗапятая Тогда СтруктураСтрокой = СтруктураСтрокой + ","; КонецЕсли; СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя; НужнаЗапятая = Истина; КонецЦикла; Для Каждого Строка Из ТаблицаЗначений Цикл НоваяСтрока = Новый Структура(СтруктураСтрокой); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); Массив.Добавить(НоваяСтрока); КонецЦикла; Возврат Массив; КонецФункции |
| Форум | Правила | Описание | Секции | Поиск |