Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Не могу понять запрос

Не могу понять запрос
Я
   serg999
 
10.10.18 - 15:26
Не пинайте, но не могу понять конструкцию ...

=========
ГДЕ
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.КорСчет В (&ФильтрСписокСчетов)
        ТОГДА ВЫБОР
            КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО
                ТОГДА НЕ ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
        ИНАЧЕ НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
                И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) = &ДоговорКонтрагента)
            КОНЕЦ
        ИНАЧЕ ИСТИНА
    КОНЕЦ
=========

Что по итогу тут:
ТОГДА НЕ ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
и тут 
НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
                И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) = &ДоговорКонтрагента)
 
 
   Cool_Profi
 
1 - 10.10.18 - 15:26
Проверка заполненности полей
   serg999
 
2 - 10.10.18 - 15:30
Зачем из проверять в "ГДЕ" ?
   Cool_Profi
 
3 - 10.10.18 - 15:31
(2) А где ты предлагашь это сделать?
   serg999
 
4 - 10.10.18 - 15:36
Тогда еще раз .. допустим "ХозрасчетныйОбороты.КорСубконто1" = "NULL" проверил:

ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО)

Вернул "НЕОПРЕДЕЛЕНО"

Далее зачем второй раз проверить:
НЕОПРЕДЕЛЕНО = &Контрагент
   Cool_Profi
 
5 - 10.10.18 - 15:40
А если ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) вернул какое-то приличное значение, а не NULL?
   Cool_Profi
 
6 - 10.10.18 - 15:40
Но не контрагента, например. Или другого контру?
   Михаил Козлов
 
7 - 10.10.18 - 15:44
Если параметр Договор не указан, проверяется на совпадение контрагента. В противном случае на совпадение и договора и контрагента.
   unregistered
 
8 - 10.10.18 - 15:50
(7) Точнее не "на совпадение", а "на НЕ совпадение".
   serg999
 
9 - 10.10.18 - 16:00
То что проверятся заполнение параметра &ДоговорКонтрагента это понятно, вопрос по ЕСТЬNULL ..
(6) Но NULL, как и "НЕОПРЕДЕЛЕНО" не будет равно &Контрагент, почему не написать:
"ТОГДА НЕ ХозрасчетныйОбороты.КорСубконто1 = &Контрагент"
?
   Cool_Profi
 
10 - 10.10.18 - 16:04
(9) потому что любое сравнение с NULL даёт ложь
 
 Рекламное место пустует
   serg999
 
11 - 10.10.18 - 16:43
Cool_Profi .. спасибо!!!

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