|
Не могу понять запрос |
☑ |
0
serg999
10.10.18
✎
15:26
|
Не пинайте, но не могу понять конструкцию ...
=========
ГДЕ
ВЫБОР
КОГДА ХозрасчетныйОбороты.КорСчет В (&ФильтрСписокСчетов)
ТОГДА ВЫБОР
КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО
ТОГДА НЕ ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
ИНАЧЕ НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) = &ДоговорКонтрагента)
КОНЕЦ
ИНАЧЕ ИСТИНА
КОНЕЦ
=========
Что по итогу тут:
ТОГДА НЕ ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
и тут
НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) = &ДоговорКонтрагента)
|
|
1
Cool_Profi
10.10.18
✎
15:26
|
Проверка заполненности полей
|
|
2
serg999
10.10.18
✎
15:30
|
Зачем из проверять в "ГДЕ" ?
|
|
3
Cool_Profi
10.10.18
✎
15:31
|
(2) А где ты предлагашь это сделать?
|
|
4
serg999
10.10.18
✎
15:36
|
Тогда еще раз .. допустим "ХозрасчетныйОбороты.КорСубконто1" = "NULL" проверил:
ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО)
Вернул "НЕОПРЕДЕЛЕНО"
Далее зачем второй раз проверить:
НЕОПРЕДЕЛЕНО = &Контрагент
|
|
5
Cool_Profi
10.10.18
✎
15:40
|
А если ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) вернул какое-то приличное значение, а не NULL?
|
|
6
Cool_Profi
10.10.18
✎
15:40
|
Но не контрагента, например. Или другого контру?
|
|
7
Михаил Козлов
10.10.18
✎
15:44
|
Если параметр Договор не указан, проверяется на совпадение контрагента. В противном случае на совпадение и договора и контрагента.
|
|
8
unregistered
10.10.18
✎
15:50
|
(7) Точнее не "на совпадение", а "на НЕ совпадение".
|
|
9
serg999
10.10.18
✎
16:00
|
То что проверятся заполнение параметра &ДоговорКонтрагента это понятно, вопрос по ЕСТЬNULL ..
(6) Но NULL, как и "НЕОПРЕДЕЛЕНО" не будет равно &Контрагент, почему не написать:
"ТОГДА НЕ ХозрасчетныйОбороты.КорСубконто1 = &Контрагент"
?
|
|
10
Cool_Profi
10.10.18
✎
16:04
|
(9) потому что любое сравнение с NULL даёт ложь
|
|
11
serg999
10.10.18
✎
16:43
|
Cool_Profi .. спасибо!!!
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший