Имя: Пароль:
1C
 
объясните как работает запрос
0 dvrk
 
15.04.22
07:45
привет, как этот запрос может выдавать строки, в которых условие по менеджеру не выполняется?

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

СГРУППИРОВАТЬ ПО
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Поле4
АВТОУПОРЯДОЧИВАНИЕ
1 dvrk
 
15.04.22
07:50
поле4 <> поле4 - не обращайте внимания
2 Beduin
 
15.04.22
07:50
ИЛИ
Скобки нужны
3 dvrk
 
15.04.22
07:52
(2) не понял, где именно?
4 dvrk
 
15.04.22
07:55
Контрагенты.Менеджер = &Менеджер
    И (КонтактнаяИнформация.Поле4 ПОДОБНО "%Сатка%"
            ИЛИ КонтактнаяИнформация.Поле4 ПОДОБНО "%Усть-Катав%"
            ИЛИ КонтактнаяИнформация.Поле4 ПОДОБНО "%Аша%"
            ИЛИ КонтактнаяИнформация.Поле4 ПОДОБНО "%Катав-Ивановск%"
            ИЛИ КонтактнаяИнформация.Поле4 ПОДОБНО "%Куса%")
видимо так, спасибо
5 vbus
 
15.04.22
08:07
print(1==1 and 1==1 and 1==1 or 1==0 or 1==0 or 1==0)
True


print(1==0 and 1==1 and 1==1 or 1==1 or 1==0 or 1==0)
True
6 Sdn
 
15.04.22
08:15
Может потому что он отбирает менеджеров в правой таблице (ГДЕ
    (Контрагенты.Менеджер = &Менеджер), а поля выдает все из левой (Контрагенты.Менеджер КАК Менеджер) в том числе и не соответствующие "где"?
7 dvrk
 
15.04.22
08:20
(6) это я сразу переделал, но всё равно не работало пока не сделал как в (4)
8 Sdn
 
15.04.22
08:33
Подозреваю, что выбирает только с менеджерами лишь из-за того, что по И всегда у сработавшего ИЛИ есть менеджер.
9 Sdn
 
15.04.22
08:37
Надо И убрать и посмотреть результат.
10 dvrk
 
15.04.22
08:44
(8) я же сказал работает уже нормально в(4)
11 Sdn
 
15.04.22
08:58
Я написал, почему у меня это (что работает нормально) вызывает сомнение. Ну, дело Ваше.