Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Почему не работает условие "не равно" в запросе?

Почему не работает условие "не равно" в запросе?
Я
   tabarigen
 
13.04.20 - 13:56
Всем добра, мне баблка.

Есть запрос. Хочу отобрать характеристики на остатке за исключением тех что есть в доке поступления.
Пишу запрос,
ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Характеристика КАК Характеристика,
    Остатки.КоличествоОстаток КАК КоличествоОстаток,
    ПТиУТ.Характеристика КАК Характеристика1
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК Остатки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров.Товары КАК ПТиУТ
        ПО (Остатки.Номенклатура = ПТиУТ.Номенклатура)
            И (Остатки.Характеристика <> ПТиУТ.Характеристика)
ГДЕ
    ПТиУТ.Ссылка = &ДокПоступления

в результате получаю все характеристики..
   tabarigen
 
1 - 13.04.20 - 13:57
Как будто условие 
И (Остатки.Характеристика <> ПТиУТ.Характеристика)

игнорится..
   tabarigen
 
2 - 13.04.20 - 13:57
не могу понять
   sitex
 
3 - 13.04.20 - 13:59
(1) потому что первое уже Истина
   tabarigen
 
4 - 13.04.20 - 13:59
блин осенило. все дело в том что у меня в документе поступления могут быть товары с разными характеристиками. видимо поэтому странно себя ведет запрос.
   tabarigen
 
5 - 13.04.20 - 14:00
(3) да нет не в этом дело.
   tabarigen
 
6 - 13.04.20 - 14:00
(4) то есть есть один  и тот же товар но с разными характеристиками. а условие связи левое как то странно  себя ведет
   Antonych31
 
7 - 13.04.20 - 14:01
(3) Этого не может быть. операция И может не дойти до второго операнда, если первый ложь. Если первое выражение истина, то полюбому и второе тоже проверять нужно.
   Жан Пердежон
 
8 - 13.04.20 - 14:06
(0) ты вообще представляешь как (любое) соединение делается?
   Antonych31
 
9 - 13.04.20 - 14:17
Тут, наверное, нужно делать полное (или левое - смотря что нужно получить) соединение по номенклатура = номенклатура и хар-ка = хар-ка, и условием отбирать записи, где хар-ка есть Null
   Antonych31
 
10 - 13.04.20 - 14:21
ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Характеристика КАК Характеристика,
    Остатки.КоличествоОстаток КАК КоличествоОстаток,
    ПТиУТ.Характеристика КАК Характеристика1
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК Остатки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров.Товары КАК ПТиУТ
        ПО (Остатки.Номенклатура = ПТиУТ.Номенклатура)
            И (Остатки.Характеристика = ПТиУТ.Характеристика)
ГДЕ
    ПТиУТ.Ссылка = &ДокПоступления
    И ПТиУТ.Характеристика есть Null

Так попробуй.
   Ёпрст
 
11 - 13.04.20 - 14:23
(0)
На вот, наслаждайся

ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Характеристика КАК Характеристика,
    Остатки.КоличествоОстаток КАК КоличествоОстаток,
    ПТиУТ.Характеристика КАК Характеристика1
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК Остатки
ГДЕ
   НЕ (Остатки.Номенклатура,Остатки.Характеристика) в (выбрать ПТиУТ.Номенклатура,ПТиУТ.Характеристика ИЗ Документ.ПоступлениеТоваров.Товары КАК ПТиУТ ГДЕ ПТиУТ.Ссылка = &ДокПоступления)

   Ёпрст
 
12 - 13.04.20 - 14:24
+11 и
ПТиУТ.Характеристика КАК Характеристика1//вот это выкини из селект листа
   Жан Пердежон
 
13 - 13.04.20 - 14:25
(10) твой запрос всегда пустой результат будет выдавать
   tabarigen
 
14 - 13.04.20 - 14:27
(12) в таком случае даст все характеристики даже той номенклатуры которой нет в документе поступления
   Жан Пердежон
 
15 - 13.04.20 - 14:28
(11) вангу, ему надо только по тем же товарам, что в ПТУ, но другим хар-кам
   tabarigen
 
16 - 13.04.20 - 14:29
(15)  да так и надо..
   sitex
 
17 - 13.04.20 - 14:30
(15)  И (Остатки.Характеристика <> ПТиУТ.Характеристика) а разве в самом начале по этому не понятно было ?
   Ёпрст
 
18 - 13.04.20 - 14:31
(14,15) в (0) вопрос только про хар-ки был )))

(16) ну добавь так еще, делов то


ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Характеристика КАК Характеристика,
    Остатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад и Номенклатура в (выбрать ПТиУТ.Номенклатура из Документ.ПоступлениеТоваров.Товары КАК ПТиУТ ГДЕ ПТиУТ.Ссылка = &ДокПоступления)) КАК Остатки
ГДЕ
   НЕ (Остатки.Номенклатура,Остатки.Характеристика) в (выбрать ПТиУТ.Номенклатура,ПТиУТ.Характеристика ИЗ Документ.ПоступлениеТоваров.Товары КАК ПТиУТ ГДЕ ПТиУТ.Ссылка = &ДокПоступления)

   RomanYS
 
19 - 13.04.20 - 14:32
(11) А почему условие не в параметрах ВТ?
   Ёпрст
 
20 - 13.04.20 - 14:33
(19) потому, что копипасте
   RomanYS
 
21 - 13.04.20 - 14:35
(20) Понятно. А то закрались сомнения, что для подобных условий есть какие-то другие рекомендации :)
   tabarigen
 
22 - 13.04.20 - 14:42
(18)  Спасибо друже, все работает. Теперь понял в чем дело


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.