Имя: Пароль:
1C
1С v8
Помгите разложить Структуры в СписокЗначений
0 inkvizitr
 
31.07.18
14:13
Ниже предоставлен синтаксис, в цикле
"Пока ДЗДокументаРеализации.Следующий() Цикл" возникают проблема, мне нужно в Список Значении, по порядку добовлять структуры, т.е. строки табличной части документа, все вроде делается, но во всех структурах встает одна и таже номенклатура.

Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
    |    СУММА(РеализацияТоваровУслугТовары.Цена) КАК Цена,
    |    СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма
    |ПОМЕСТИТЬ ДокТЧ
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |
    |СГРУППИРОВАТЬ ПО
    |    РеализацияТоваровУслугТовары.Ссылка,
    |    РеализацияТоваровУслугТовары.Номенклатура,
    |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    |    РеализацияТоваровУслуг.Дата КАК Дата,
    |    РеализацияТоваровУслуг.Склад КАК Склад,
    |    РеализацияТоваровУслуг.Поставщик КАК Поставщик,
    |    ДокТЧ.Номенклатура КАК Номенклатура,
    |    ДокТЧ.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    ДокТЧ.Количество КАК Количество,
    |    ДокТЧ.Цена КАК Цена,
    |    ДокТЧ.Сумма КАК Сумма
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ЛЕВОЕ СОЕДИНЕНИЕ ДокТЧ КАК ДокТЧ
    |        ПО (ДокТЧ.Ссылка = РеализацияТоваровУслуг.Ссылка)
    |ГДЕ
    |    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
    |ИТОГИ ПО
    |    Ссылка";
    
    Запрос.УстановитьПараметр("ДатаНачало", ДатаНачало);
    Запрос.УстановитьПараметр("ДатаКонец", ДатаКонец);
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ссылка");
    
    КолекцияДокументовРеализации = Новый СписокЗначений;
    ДокументРеализации = Новый Структура("Дата, Склад, Покупатель, ТЧДокументаРеализации");
    
    Пока Выборка.Следующий() Цикл
        
        ДокументРеализации.Дата = Выборка.Дата;
        ДокументРеализации.Склад = Выборка.Склад;
        ДокументРеализации.Покупатель = Выборка.Поставщик;
        
        ДЗДокументаРеализации = Выборка.Выбрать();
        
        ДокументРеализации.ТЧДокументаРеализации = Новый СписокЗначений;
        
        Пока ДЗДокументаРеализации.Следующий() Цикл
            
                        
            ДокументРеализации.ТЧДокументаРеализации.Добавить(Новый Структура("Номенклатура, ЕдиницаИзмерения, Количество, Цена, Сумма",
            ДЗДокументаРеализации.Номенклатура,
            ДЗДокументаРеализации.ЕдиницаИзмерения,
            ДЗДокументаРеализации.Количество,
            ДЗДокументаРеализации.Цена,
            ДЗДокументаРеализации.Сумма));
            
        КонецЦикла;
        
    КонецЦикла;    
    
    КолекцияДокументовРеализации.Добавить(ДокументРеализации);

    Возврат КолекцияДокументовРеализации;
1 youalex
 
31.07.18
14:14
(0) структуру нужно  в цикле создавать, иначе получается, что ты перезаполняешь одну и ту же структуру.
2 inkvizitr
 
31.07.18
14:15
(1) понял, щас проверю
3 youalex
 
31.07.18
14:20
+ открой для себя ЗаполнитьЗначенияСвойств()
4 inkvizitr
 
31.07.18
14:21
все получилось, спасибо, еще ошибку нашел, это надо было в цикл запихнуть строку КолекцияДокументовРеализации.Добавить(ДокументРеализации);
5 inkvizitr
 
31.07.18
14:21
(3) щас тоже попробую
6 inkvizitr
 
31.07.18
14:27
(3) с ЗаполнитьЗначенияСвойств() тоже все получилось, спасибо.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.