Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Июн 2018, 05:08
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: хранение массива в универсальной коллекции значений  (Прочитано 3477 раз)

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

Оффлайн vesta1993

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-08
  • Сайт: 
  • Профессия: Бухгалтер
Добрый день! Большая просьба помочь со следующей проблемой:
Необходимо хранить массив  в какой-либо универсальной коллекции значений.
Но организовать это у меня не получается.
Так например для 1 элемента необходимо хранить массив из одного символа ( Н-р 0)
Для второго элемента необходимо хранить массив из 2-х элементов ( 0,1)
Для третьего соответственно (0,1,2)
Следующий код:

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

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

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

Спасибо.


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6651
  • РЕПУТАЦИЯ: 787
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
У вас не продумана система ключей для вашей структуры. Можно сделать например так.

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

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

Оффлайн ilyay

  • 1С:Специалист, 1С:Эксперт
  • *****
  • Сообщений: 533
  • РЕПУТАЦИЯ: 96
  • КПД: 18%
  • Регистрация: 2011-06-09
  • Сайт: 
  • Профессия: Разработчик 1С
У вас ссылка получается в разных элементах на одну область памяти.
Можно было бы создавать новый массив каждый раз внутри цикла, но придется его заполнять. Проще так:

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

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
128 Сообщений
AIFrame AIFrame
118 Сообщений
alexandr_ll
57 Сообщений
alex0402
47 Сообщений
pavl_vs
47 Сообщений
buketov.av buketov.av
40 Сообщений
ilyay ilyay
36 Сообщений
trialex3
24 Сообщений
magnifico61
20 Сообщений
wise wise
15 Сообщений

* Кто онлайн

  • Точка Гостей: 210
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal