Структура в структуре

1. Aftee 18.02.19 17:59 Сейчас в теме
Добрый день!
Платформа 8.3.13.
Формирую и заполняю структуру следующим образом:

//ПромежуточнаяСтруктураКолонок - структура

Для Каждого Элемент Из МассивСтрок Цикл
		
		ЗаполнитьЗначенияСвойств(ПромежуточнаяСтруктураКолонок, Элемент);
		СтруктураКолонок.Вставить("Строка" + Сч, ПромежуточнаяСтруктураКолонок);
		
		Сч = Сч + 1;
		
	КонецЦикла;
Показать


После прохождения всего цикла получаю структуру с количеством элементов, равных количеству итераций, которые содержат последнюю структуру ПромежуточнаяСтруктураКолонок. Например, 10 элементов с одной и той же структурой в значении. То есть при каждом изменении структуры ПромежуточнаяСтруктураКолонок, в структуре СтруктураКолонок также все перезаполняется. Можете объяснить почему такое происходит?
Спасибо
По теме из базы знаний
Найденные решения
2. dhurricane 18.02.19 18:17 Сейчас в теме
(1) Дело в том, что "ПромежуточнаяСтруктураКолонок" - это один и тот же объект на всех итерациях цикла. Вставляя его в структуру колонок Вы не копируете объект, вы вставляете все тот же самый. Иначе можно сказать, что в структуре колонок хранится не копия объекта (ПромежуточнаяСтруктураКолонок), а лишь ссылки на него.

Поэтому объект "ПромежуточнаяСтруктураКолонок" на каждой итерации нужно создавать заново. Например, копированием.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 18.02.19 18:17 Сейчас в теме
(1) Дело в том, что "ПромежуточнаяСтруктураКолонок" - это один и тот же объект на всех итерациях цикла. Вставляя его в структуру колонок Вы не копируете объект, вы вставляете все тот же самый. Иначе можно сказать, что в структуре колонок хранится не копия объекта (ПромежуточнаяСтруктураКолонок), а лишь ссылки на него.

Поэтому объект "ПромежуточнаяСтруктураКолонок" на каждой итерации нужно создавать заново. Например, копированием.
3. Xershi 1484 18.02.19 18:17 Сейчас в теме
(1)
ПромежуточнаяСтруктураКолонок
нужно инициировать его в цикле, а у вас просто замена значений.
4. Denis_CFO 48 18.02.19 18:23 Сейчас в теме
(1)
Для Каждого Элемент Из МассивСтрок Цикл


ЗаполнитьЗначенияСвойств(ПромежуточнаяСтруктураКолонок, Элемент);
СтруктураКолонок.Вставить(Новый Структура ("Строка" + Сч, ПромежуточнаяСтруктураКолонок));

Сч = Сч + 1;

КонецЦикла;
5. Aftee 19.02.19 09:28 Сейчас в теме
Большое спасибо! При инициализации структуры в цикле все работает.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот