Имя: Пароль:
1C
1С v8
Запрос левое соед
0 lite700
 
24.08.17
10:50
Нужно выбрать закупки по контрагенту, и показать
продажи этих товаров ,анализирую рг покупки и продажи    
почемуто если не было продаж , а только приход , товар не попадает
в итоговый запрос ,Что тут не так ?


ВЫБРАТЬ РАЗЛИЧНЫЕ
            Закупки.Номенклатура КАК Номенклатура,
+ Code
            Закупки.Количество,
            СУММА(Закупки.Стоимость) КАК Стоимость,
            Закупки.Контрагент  ,
            Продажи.Номенклатура КАК Номенклатура1,
            Продажи.Количество КАК Количество1,
            СУММА(Продажи.Стоимость) КАК Стоимость1,
                Продажи.Контрагент КАК Контрагент1
            

               ИЗ
                    РегистрНакопления.Закупки КАК Закупки
                ЛЕВОЕ СОЕДИНЕНИЕ
                                РегистрНакопления.Продажи КАК Продажи
              ПО
                 (Закупки.Номенклатура=Продажи.Номенклатура)  
                     ГДЕ
            Закупки.Контрагент = &ВыбКонтр
            И Закупки.Период >= &д1
            И Закупки.Период <= &д2
                    И Продажи.Период >= &д1
            И Продажи.Период <= &д2


        
        СГРУППИРОВАТЬ ПО
            Закупки.Номенклатура,
                Закупки.Количество,
            Закупки.Контрагент ,
            Продажи.Номенклатура,    
            Продажи.Количество  ,
            Продажи.Контрагент

        УПОРЯДОЧИТЬ ПО
            Номенклатура
1 Ёпрст
 
24.08.17
10:51
(0) ГДЕ заменить на И
2 Ёпрст
 
24.08.17
10:54
Ну и левое соединение заменить на Объеденить Все.
3 Дмитрий
 
24.08.17
10:55
(0)  И Продажи.Период >= &д1
     И Продажи.Период <= &д2


продаж нет - условие не выполняется
4 lite700
 
24.08.17
10:57
ТОГДА фильтр контр и дате не пашет
5 Ёпрст
 
24.08.17
10:58
(4) см (2).
6 Волшебник
 
модератор
24.08.17
10:59
(2) ОбъедИнить
7 dezss
 
24.08.17
10:59
Можно еще запихать в 2 вт, а потом уже их соединять...
8 Windyhead
 
24.08.17
11:01
(1) Проблема в этом условии:
ГДЕ
.....
      И Продажи.Период >= &д1
      И Продажи.Период <= &д2

Если продаж не было то твое уловие не выполнится никогда
Используй виртуальные таблицы оборотов это более корректно и отбор по периоду в параметры таблиц закинь
9 Windyhead
 
24.08.17
11:03
Но если уж очень хочется оставить такую кривоту то эти два условия  "Продажи.Период >= &д1 И Продажи.Период <= &д2" перенеси в условие соединения.
10 lite700
 
24.08.17
11:08
Вроде работает ОК ,спасибо , да продажи период похоже
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс