Вход | Регистрация


Переопределение структуры в массиве

Переопределение структуры в массиве
Я
   ZloyRafa
 
05.10.17 - 10:38
МассивДокументовКПечатиДоговора     = Новый Массив;
    МассивДоговоровДляНовойБазы         = Новый Массив;
ДоговораКСозданиюВБазе                = Новый Структура();    
    Для каждого Элемент из СписокКонтрагентов Цикл
        
        Если Элемент.Просрочка>0 Тогда 
        Договор = СоздатьДоговор(Элемент.АльтернативныйНомер,Элемент.Контрагент);
        ДоговораКСозданиюВБазе.Вставить("Договор", Договор);
        ДоговораКСозданиюВБазе.Вставить("Сумма", Элемент.Просрочка);
        МассивДоговоровДляНовойБазы.Добавить(ДоговораКСозданиюВБазе);


после обхода всего цикла у меня в массиве имеется n-ое кол-во элементов в массиве, но у всех элементов структура содержит значения последнего элемента цикла, как такое возможно ?
Ошибку исправил, переопределением структуры в цикле, но почему так ?
 
 
   Numerus Mikhail
 
1 - 05.10.17 - 10:41
(0) Структура состоит из пары Ключ-Значение.
и так как ключ вы подставляете один и тот же, пара не добавляется, а перезаписывается.
   Ненавижу 1С
 
2 - 05.10.17 - 10:42
(1) не поэтому
просто Структура это ссылочный тип

фактически у тебя в каждом элементе массива ссылка на один и тот же объект
   h-sp
 
3 - 05.10.17 - 11:13
(0) МассивДокументовКПечатиДоговора     = Новый Массив;
    МассивДоговоровДляНовойБазы         = Новый Массив;
    Для каждого Элемент из СписокКонтрагентов Цикл
        ДоговораКСозданиюВБазе          = Новый Структура();

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует