Имя: Пароль:
1C
1С v8
Не работает полное соединение в элементарном запросе
0 evorle145
 
05.01.13
14:11
Не понимаю, почему не выходят ячейки со значением null, то есть  результат запроса получаю как внутреннее соединение

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

   Запрос1.УстановитьПараметр("ДатаКонец", КонецДня(ЭлементыФормы.ДатаКонец.Значение));
   Запрос1.УстановитьПараметр("ДатаНачала", НачалоДня(ЭлементыФормы.ДатаНачала.Значение));
   Запрос1.УстановитьПараметр("Проведен", Истина);

   Результат = Запрос1.Выполнить().Выгрузить();

Помогите понять, где туплю?
1 evorle145
 
05.01.13
14:16
В документах реализации есть номенклатура, которой не было в поступлении, значит точно должны быть строки типа
Номен1    NULL
Номен2    NULL
2 shuhard
 
05.01.13
14:16
(0) [где туплю]
в блоке Where
3 evorle145
 
05.01.13
14:17
(2) но я там только делаю выборку за нужный период и беру только проведенные документы и все..
4 Ns33
 
05.01.13
14:20
Сначала выполняется соединение, а потом применяются условия. В данном случае условия накладываются на поля обеих таблиц, т.е. Истина будет только там, где есть не пустые поля из обеих таблиц.
Делать подзапросами или через временные таблицы.
5 evorle145
 
05.01.13
14:23
(4), эх, точно. Спасибо! Второй раз уже на эти грабли натыкаюсь, обидно даже...
6 shuhard
 
05.01.13
14:24
(0) правильный запрос:
            ВЫБРАТЬ
   ВложенныйЗапрос.Номенклатура,
   СУММА(ВложенныйЗапрос.Продано) КАК Продано,
   СУММА(ВложенныйЗапрос.Куплено) КАК Куплено
ИЗ
   (ВЫБРАТЬ
       РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
       РеализацияТоваровУслугТовары.Количество КАК Продано,
       0 КАК Куплено
   ИЗ
       Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       ПоступлениеТоваровУслугТовары.Номенклатура,
       0,
       ПоступлениеТоваровУслугТовары.Количество
   ИЗ
       Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Номенклатура
7 evorle145
 
05.01.13
14:25
(6), я понял-понял. Спасибо больше! видимо я просто после праздников не успел отойти =)