Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 05:06

хранение массива в универсальной коллекции значений

Автор vesta1993, 09 авг 2013, 11:22

0 Пользователей и 1 гость просматривают эту тему.

vesta1993

Добрый день! Большая просьба помочь со следующей проблемой:
Необходимо хранить массив  в какой-либо универсальной коллекции значений.
Но организовать это у меня не получается.
Так например для 1 элемента необходимо хранить массив из одного символа ( Н-р 0)
Для второго элемента необходимо хранить массив из 2-х элементов ( 0,1)
Для третьего соответственно (0,1,2)
Следующий код:

Массив1 = Новый Массив;
ХранениеМассива = Новый Структура;

Для Инд=0 По 2 Цикл
Массив1.Добавить(Инд);
Стр = "_"+Строка(Инд);
ХранениеМассива.Вставить(Стр, Массив1);
КонецЦикла;

приводит к тому что в значениях структуры хранится одинаковый массив , т.е.
для ключа _0 хранится значение 0 1 2
и для ключа _2 хранится 0 1 2 .
Как я понимаю значениях структуры хранится ссылка на массив.
Эксперименты с хранением массива в таблице значений тоже приводит к тому что во всех строчках таблицы хранится одинаковый массив

Спасибо.

MuI_I_Ika

У вас не продумана система ключей для вашей структуры. Можно сделать например так.

Массив1 = Новый Массив;
ХранениеМассива = Новый Структура;

Для Инд=0 По 2 Цикл
    Массив1.Добавить(Инд);
КонецЦикла;
Стр = "_1";
ХранениеМассива.Вставить(Стр, Массив1);

ilyay

У вас ссылка получается в разных элементах на одну область памяти.
Можно было бы создавать новый массив каждый раз внутри цикла, но придется его заполнять. Проще так:

СписокЗначений = Новый СписокЗначений;
ХранениеМассива = Новый Структура;

Для Инд=0 По 2 Цикл
    СписокЗначений.Добавить(Инд);
    Стр = "_"+Строка(Инд);
    ХранениеМассива.Вставить(Стр, СписокЗначений.ВыгрузитьЗначения());
КонецЦикла;

Теги:
Рейтинг@Mail.ru

Поиск