Имя: Пароль:
1C
1С v8
Объясните строчку в запросе
0 Кондер
 
31.08.23
17:21
Где НЕ ЕСТЬNULL(спр.Статус, спр1.Статус) ЕСТЬ NULL
1 Кондер
 
31.08.23
17:22
|ГДЕ
        |    НЕ ЕСТЬNULL(спр.Статус, спр1.Статус) ЕСТЬ NULL
        |;
2 Garykom
 
31.08.23
17:24
НЕ(спр.Статус ЕСТЬ NULL) ИЛИ НЕ(спр1.Статус ЕСТЬ NULL)
3 Кондер
 
31.08.23
17:26
Спасибо, добрый человек
4 Мультук
 
31.08.23
17:27
(0)

ВЫБРАТЬ НЕ ЕСТЬNULL("Хрень", NULL) ЕСТЬ NULL КАК а1,
        НЕ ЕСТЬNULL(NULL,   "Хрень") ЕСТЬ NULL КАК а2,
        НЕ ЕСТЬNULL(NULL,    NULL)    ЕСТЬ NULL КАК а3


ну или так, чтобы понять что когда будет
5 Garykom
 
31.08.23
17:29
(3) хотя я может ошибся и там оба Статус должны быть не NULL а не хотя бы один
6 Кондер
 
31.08.23
17:30
Короче я закипел )) Завтра, там весь запрос . на нул не нул
7 Donkey_hot
 
31.08.23
17:34
НЕ (Спр.Статус ЕСТЬ NULL И Спр1.Статус ЕСТЬ NULL)
что, впрочем, равноценно написанному в (2)
8 Гена
 
31.08.23
17:38
(6) Не кипите. ЕстьNull и Есть Null разные методы.
Кто кодил - эстет )
9 Garykom
 
31.08.23
17:48
(8) дятел он а не эстет
1. Его версия тормозней чем прямая
2. Его версия при расширении/добавлении (еще спр2.Статус и т.д.) превратится в хз что
10 Eiffil123
 
31.08.23
17:51
(7) так красивее всего
11 lodger
 
31.08.23
18:01
(9) 2. просто добавь воды:
Где НЕ ЕСТЬNULL(ЕСТЬNULL(спр.Статус, спр1.Статус), спр2.Статус) ЕСТЬ NULL    
Где НЕ ЕСТЬNULL(ЕСТЬNULL(ЕСТЬNULL(спр.Статус, спр1.Статус), спр2.Статус), спр3.Статус) ЕСТЬ NULL    
Где НЕ ЕСТЬNULL(ЕСТЬNULL(ЕСТЬNULL(ЕСТЬNULL(спр.Статус, спр1.Статус), спр2.Статус), спр3.Статус), спр4.Статус) ЕСТЬ NULL
12 Гена
 
31.08.23
18:02
(7) ИЛИ в запросе плоховато. Так что надо сделать замер по Вашему коду и исходному )
13 Гена
 
31.08.23
18:25
Но там, где есть отрицание, всегда можно избавиться от ИЛИ через тождества де Моргана в логике:
https://ru.m.wikipedia.org/wiki/Законы_де_Моргана#/media/Файл%3ADemorganlaws.svg

НЕ(спр.Статус ЕСТЬ NULL) ИЛИ НЕ(спр1.Статус ЕСТЬ NULL)
тождественно
НЕ (Спр.Статус ЕСТЬ NULL И Спр1.Статус ЕСТЬ NULL)
14 Garykom
 
31.08.23
18:40
(12)
И заставляет вычислить оба
ИЛИ иногда достаточно первой
15 Гена
 
31.08.23
18:56
(14) дык... в том-то и красота исходного кода, что он тоже срабатывает на первой проверке как ИЛИ
Если первый элемент непустой, то код сразу  шуршит дальше вниз.
А значит он хайли лайкли шустрее обоих предложенных взамен )
16 Garykom
 
31.08.23
18:58
(15) Он всегда дважды делает сначала аналог ИЛИ ЕСТЬNULL и затем еще раз ЕСТЬ NULL, а уже затем НЕ
Так что херня относительно
НЕ(спр.Статус ЕСТЬ NULL) ИЛИ НЕ(спр1.Статус ЕСТЬ NULL)
17 Гена
 
31.08.23
19:01
(16) Практика - критерий истины. Нужен опытный замерщик для разрешения спора.
18 PR
 
31.08.23
19:02
(0) НЕ (спр.Статус ЕСТЬ NULL И спр1.Статус ЕСТЬ NULL)
или
НЕ спр.Статус ЕСТЬ NULL ИЛИ НЕ спр1.Статус ЕСТЬ NULL
19 Garykom
 
31.08.23
19:03
(18) Родственников из Эстонии нет?
20 Garykom
 
31.08.23
19:04
(17) сложные функции всегда хуже простых
21 Donkey_hot
 
31.08.23
19:05
(14) Разве И в запросах не "ленивое"?
22 Garykom
 
31.08.23
19:07
(21) точно, ленивое не Ложь
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn