Имя: Пароль:
1C
1С v8
Свойство контрагента в запросе по регистру продажи
0 Snik_666
 
11.09.14
09:09
Добрый день! У контрагента есть свойство Район, необходимо получить все продажи даже по тем контрагентам у которых не указан район. Как не кручу в конструкторе связи ну ни как не попадают данные по контрагентам которым не назначен район. Подскажите как это сделать в моем запросе ?

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

    Запрос.УстановитьПараметр("ВыбСвойствоРайон", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("ч00000001")); //Район
    Запрос.УстановитьПараметр("ВыбТорговыйАгент", ТорговыйАгент);
    Запрос.УстановитьПараметр("КонецПериода", Новый Граница(КонецДня(КонПериода),ВидГраницы.Включая));
    Запрос.УстановитьПараметр("НачалоПериода", Новый Граница(НачалоДня(НачПериода),ВидГраницы.Включая));
        
    ТЗ_Продаж = Запрос.Выполнить().Выгрузить();
    ТЗ_Продаж.Свернуть("Номенклатура,Район","СтоимостьОборот");
    ТЗ_Продаж.Сортировать("Номенклатура");
    ТЗ_Продаж.ВыбратьСтроку("Итого:"+ТЗ_Продаж.Итог("СтоимостьОборот"));
1 butterbean
 
11.09.14
09:10
ЛЕВОЕ, а не ПОЛНОЕ
2 butterbean
 
11.09.14
09:10
(1)+ условие ЗначенияСвойствОбъектов.Свойство = &ВыбСвойствоРайон перенести в условия соединения
3 Snik_666
 
11.09.14
09:19
(1) левое не помогает, и местами менял регистры в соеденении как только не пробовал.
(2) а вот это не понял как перенести в условия соединения ?
если не трудно кусочек запроса покажите
4 Snik_666
 
11.09.14
09:25
Дошло! СПАСИБО! Получилось!
Запрос.Текст =
        "ВЫБРАТЬ
        |    ПродажиОбороты.Номенклатура,
        |    ПродажиОбороты.СтоимостьОборот,
        |    ЗначенияСвойствОбъектов.Значение КАК Район,
        |    ПродажиОбороты.Контрагент
        |ИЗ
        |    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        |        ПО (ЗначенияСвойствОбъектов.Свойство = &ВыбСвойствоРайон)
        |            И ПродажиОбороты.Контрагент = ЗначенияСвойствОбъектов.Объект
        |ГДЕ
        |    ПродажиОбороты.Контрагент.МенеджерыПокупателя.МенеджерПокупателя = &ВыбТорговыйАгент
        |
        |СГРУППИРОВАТЬ ПО
        |    ПродажиОбороты.Номенклатура,
        |    ЗначенияСвойствОбъектов.Значение,
        |    ПродажиОбороты.СтоимостьОборот,
        |    ПродажиОбороты.Контрагент";