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

ЛЕВОЕ СОЕДИНЕНИЕ с условием

ЛЕВОЕ СОЕДИНЕНИЕ с условием
Я
   grasshoper
 
09.03.21 - 15:59
День добрый. Столкнулся недавно с непонятным поведением запроса (может что-то упускаю). При соединении с таблицей в конструкции ВЫБОР КОГДА ТОГДА КОНЕЦ второе условие (ИЛИ СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сырье)) не отрабатывает. Если оставляю один какой-то из операндов условия, то оно срабатывает как нужно, но при добавлении ИЛИ отрабатывает только первая его часть. Может у кого есть идеи?

ЛЕВОЕ СОЕДИНЕНИЕ СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
ПО ЗаказыНаПроизводство.Номенклатура = СпецификацииНоменклатуры.Номенклатура
    И (ВЫБОР
        КОГДА ЗаказыНаПроизводство.Оформление <> &Строк
            ТОГДА СпецификацииНоменклатуры.Оформление = ЗаказыНаПроизводство.Оформление
                ИЛИ СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сырье)
        ИНАЧЕ СпецификацииНоменклатуры.ВидСпецификации = ЗНАЧЕНИЕ(Перечисление.ВидыСпецификаций.Сборочная)
    КОНЕЦ)
   ДенисЧ
 
1 - 09.03.21 - 16:00
Если первое срабатывает в ложь, то второе уже не вычисляется.
   mikecool
 
2 - 09.03.21 - 16:01
(1) + "о сколько нам открытий чудных..."
   grasshoper
 
3 - 09.03.21 - 16:01
(1) Почему? ИЛИ строгое?
   ДенисЧ
 
4 - 09.03.21 - 16:02
(1) я имел в виду наоборот )))
Если первое истина, тогда...

Спутал...
   grasshoper
 
5 - 09.03.21 - 16:04
(4) Всё, понял, вычисляется как выражение) Всем спасибо)
   grasshoper
 
6 - 10.03.21 - 10:45
(4) В результате если первое ложь, то второе не вычисляется, потому что есть записи соответствующие обеим частям условиям, а выводятся только соответствующие первой его части.

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