Имя: Пароль:
1C
1С v8
СписокXDTO, некорректное заполнение
0 mTema32
 
25.02.16
12:11
Добрый день!
Собственно есть код по заполнению СпискаXDTO.
req.AddressReq - это собственно сам список.

Для Каждого СтрокаАдреса Из АдресаКонтрагента Цикл
        
        AddressReq.street = СтрокаАдреса.Улица;
        AddressReq.houseNumber = СтрокаАдреса.Дом;
        AddressReq.apartment = СтрокаАдреса.Квартира;
        AddressReq.city = СтрокаАдреса.Город;
        AddressReq.postal = СтрокаАдреса.ПочтовыйИндекс;
        
        Если СтрокаАдреса.Вид = Справочники.ВидыКонтактнойИнформации.АдресПоПрописке Тогда
            ТипАдреса = 1;        
        ИначеЕсли СтрокаАдреса.Вид = Справочники.ВидыКонтактнойИнформации.АдресПроживания Тогда
            ТипАдреса = 2;
        КонецЕсли;
        AddressReq.addressType = Строка(ТипАдреса);
        
    req.AddressReq.Добавить(AddressReq);
        
    КонецЦикла;

Все вроде просто, но есть проблема.
В массиве адресов два элемента. И в цикле оба успешно добавляются в списокХDTO. НО(!) значения в этом списке (улица, дом и т.п.) у обоих элементов списка сохраняются те, которые были в последнем элементе массива адресов.
Получается два элемента в списке с одинаковыми значениями.
Чего не так делаю?
1 DmitrO
 
25.02.16
12:23
>>Чего не так делаю?
Добавляешь один и тот же экземпляр объекта XDTO в список.

Внутри цикла на каждой итерации создавай новый, заполняй его, и его добавляй в список.
2 mTema32
 
25.02.16
12:25
(1) Спасибо. Да, действительно я затупил.
Тема закрыта.
Закон Брукера: Даже маленькая практика стоит большой теории.