Добрый день! Большая просьба помочь со следующей проблемой:
Необходимо хранить массив строк в какой-либо универсальной коллекции значений.
Но организовать это у меня не получается.
Так например для 1 элемента необходимо хранить массив из одного символа ( Н-р 0)
Для второго элемента необходимо хранить массив из 2-х элементов ( 0,1)
Для третьего соответственно (0,1,2)
Следующий код:
Массив1 = Новый Массив;
ХранениеМассива = Новый Структура;
Для Инд=0 По 2 Цикл
Массив1.Добавить(Инд);
Стр = "_"+Строка(Инд);
ХранениеМассива.Вставить(Стр, Массив1);
КонецЦикла;
приводит к тому что в значениях структуры хранится одинаковый массив , т.е.
для ключа _0 хранится значение 0 1 2
и для ключа _2 хранится 0 1 2 .
Как я понимаю значениях структуры хранится ссылка на массив.
Эксперименты с хранением массива в таблице значений тоже приводит к тому что во всех строчках таблицы хранится одинаковый массив
Спасибо.
Необходимо хранить массив строк в какой-либо универсальной коллекции значений.
Но организовать это у меня не получается.
Так например для 1 элемента необходимо хранить массив из одного символа ( Н-р 0)
Для второго элемента необходимо хранить массив из 2-х элементов ( 0,1)
Для третьего соответственно (0,1,2)
Следующий код:
Массив1 = Новый Массив;
ХранениеМассива = Новый Структура;
Для Инд=0 По 2 Цикл
Массив1.Добавить(Инд);
Стр = "_"+Строка(Инд);
ХранениеМассива.Вставить(Стр, Массив1);
КонецЦикла;
приводит к тому что в значениях структуры хранится одинаковый массив , т.е.
для ключа _0 хранится значение 0 1 2
и для ключа _2 хранится 0 1 2 .
Как я понимаю значениях структуры хранится ссылка на массив.
Эксперименты с хранением массива в таблице значений тоже приводит к тому что во всех строчках таблицы хранится одинаковый массив
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Массив хранит только ссылки, при каждом обходе он просто дополняется. Для хранения необходимо использовать устойчивые структуры. Причем при каждом обходе вложенную коллекцию необходимо пересоздавать.
Например, так
Хотя мб и с массивом прокатит...вообщем, так или иначе, ключ решения в пересоздании вложенной коллекции на каждой итерации цикла.
Например, так
Структура = Новый Структура;
Для i=1 по 3 Цикл
Список = Новый СписокЗначений;
Для j = 0 по i Цикл
Список.Добавить(j);
КонецЦикла;
ИмяЭлемента = "фыв"+Строка(i);
Структура.Вставить(ИмяЭлемента,Список);
КонецЦикла;
Для Каждого КлючИЗначение из Структура Цикл
Сообщить(КлючИЗначение.Значение.Количество());
КонецЦикла;
ПоказатьХотя мб и с массивом прокатит...вообщем, так или иначе, ключ решения в пересоздании вложенной коллекции на каждой итерации цикла.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот