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

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

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

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

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

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

Оффлайн ilyay

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

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

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


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
106 Сообщений
AIFrame
105 Сообщений
alex0402
28 Сообщений
kiksi
17 Сообщений
alexandr_ll
17 Сообщений
andron81_81
16 Сообщений
pavl_vs
13 Сообщений
LexaK
13 Сообщений
BuhRust
13 Сообщений
Artibon
12 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal