Имя: Пароль:
1C
1С v8
Простенький запрос к ТЧ Реализации товаров и услуг
0 Sj
 
17.01.13
00:18
Делаю запрос
ВЫБРАТЬ
   Товары.Ссылка КАК Ссылка,
   Товары.НомерСтроки КАК НомерСтроки,
   Товары.Номенклатура КАК Номенклатура,
   Товары.Номенклатура.Код КАК Код,
   НоменклатураДополнительныеРеквизиты.Свойство
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК Товары
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
       ПО Товары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
ГДЕ
   Товары.Ссылка В(&МассивОбъектов)
   И ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Свойство, &Свойство) = &Свойство

УПОРЯДОЧИТЬ ПО
   НомерСтроки

  так как соединение левое, то ожидаю в результате увидеть номер строки 1, 2, 3, 4, 5, 6
  но вижу: 2, 3, 4,5, 6
  потому что у номенклатуры в первой строчке не заполнено свойство &Свойство.
  Но ведь левое соединение предполагает, что Документ.РеализацияТоваровУслуг.Товары будет полностью проходить в результат.

  Что не так в запросе?
1 mxs089
 
17.01.13
00:23
условие накладывается на результат и поэтому "потому что у номенклатуры в первой строчке не заполнено свойство &Свойство"
2 shuhard
 
17.01.13
00:24
(0)[Что не так в запросе?]
ГДЕ
   Товары.Ссылка В(&МассивОбъектов)
   И ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Свойство, &Свойство) = &Свойство
3 Sj
 
17.01.13
00:29
Выполняю запрос
ВЫБРАТЬ
   Товары.Ссылка КАК Ссылка,
   Товары.НомерСтроки КАК НомерСтроки,
   Товары.Номенклатура КАК Номенклатура,
   Товары.Номенклатура.Код КАК Код,
   НоменклатураДополнительныеРеквизиты.Свойство
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК Товары
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
       ПО Товары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
ГДЕ
   Товары.Ссылка = (&МассивОбъектов)

УПОРЯДОЧИТЬ ПО
   НомерСтроки

Вижу
1,1,1,1
2,2,2,2,2
3,3
4,4,4
5,5
6,6,6
4 mxs089
 
17.01.13
00:30
а что ты хочешь увидеть?
5 mxs089
 
17.01.13
00:31
ГДЕ
   Товары.Ссылка = (&МассивОбъектов)
там вместо = В
6 Sj
 
17.01.13
00:32
да. надо наверное сначала выбрать свойства, а потом только соединять. Левое соединение производится, но потом режется условием. Спасибо за подсказку, что-то не сообразил.
7 Sj
 
17.01.13
00:34
(5) = да я это для примера, что точно одна накладная в запросе