Имя: Пароль:
1C
 
Запрос Номенклатуры типа Набор
0 pro3ri
 
10.05.15
18:35
Добрый вечер, подскажите почему возвращается не набор(фара 2ед, отраджатели - 3 ед, и тд., а одна строчка - набор "Фара")

код:
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("ВидУслуга", Перечисления.ВидыНоменклатуры.Услуга);
    Запрос.УстановитьПараметр("ВидНабор", Перечисления.ВидыНоменклатуры.Набор);


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

    Если ЭтоАвансовыйОтчет Тогда
        
        Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПоступлениеТоваров", "АвансовыйОтчет");
    
    КонецЕсли;              
    Таблица = Запрос.Выполнить().Выгрузить();
1 pro3ri
 
10.05.15
18:36
2 GANR
 
10.05.15
18:39
(0) Как минимум настораживает одно из условий соединения ПоступлениеТоваровТовары.Номенклатура = &ВидНабор - оно всегда будет равно ЛОЖЬ. Понятно? Дальше не копал.
3 GANR
 
10.05.15
18:41
+(2) Ну и еще в этом запросе Сумма из табличной части поступления будет умножена на количество различных комплектующих. Догадываешься почему?
4 pro3ri
 
10.05.15
18:53
(2) все, поправил, да так и есть :
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПоступлениеТоваровТовары.Номенклатура,
                   |    СУММА(ПоступлениеТоваровТовары.Количество * ПоступлениеТоваровТовары.ЕдИзм.Коэффициент) КАК Количество,
                   |    СУММА(ПоступлениеТоваровТовары.Сумма) КАК Сумма,
                   |    ПоступлениеТоваровТовары.Качество,
                   |    ПоступлениеТоваровТовары.Ссылка.Дата КАК Период,
                   |    ПоступлениеТоваровТовары.Ссылка.Контрагент КАК Контрагент
                   |ИЗ
                   |    Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
                   |ГДЕ
                   |    ПоступлениеТоваровТовары.Ссылка = &Ссылка
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ПоступлениеТоваровТовары.Номенклатура,
                   |    ПоступлениеТоваровТовары.Качество,
                   |    ПоступлениеТоваровТовары.Ссылка.Дата,
                   |    ПоступлениеТоваровТовары.Ссылка.Контрагент";
    
спасибо добрый человек!