Имя: Пароль:
1C
1С v8
Условие в СКД
0 seraf
 
13.12.19
13:42
Подскажите, не соображу. Есть отчет, в нем два поля одинакового типа (перечисления), одно из РС, второе из РН.
При сравнении Поле1 = Поле2 данные верно фильтруются, если установить в СКД Поле1 <> Поле2, пусто. При этом Поле2 пустое кажется (но NULL там или пустая ссылка какая разница, не равно ведь).
Я что-то упускаю при сравнении двух значений?
1 ДенисЧ
 
13.12.19
13:44
"но NULL там или пустая ссылка какая разница"

Разница большая. Любое сравнение с NULL даёт ложь. Так что разберись с этим.
2 SergTheGreat
 
13.12.19
13:50
(0) Измени описание поля на
ЕСТЬNULL(Поле1, ЗНАЧЕНИЕ(Перечисление.ТипПеречисления.ПустаяСсылка) КАК Поле1
и тогда сравнивай их как хочешь.
3 SergTheGreat
 
13.12.19
13:51
(2) упс... скобочку одну забыл
4 seraf
 
13.12.19
14:05
Понял что там NULL
А в каких случая 1С в реквизиты пишет пустую ссылку, в каких NULL?
Или если была прямая инициализация например Поле1 = 0 (ПустаяСсылка) только тогда оно становится не NULL
5 seraf
 
13.12.19
14:06
Описание изменить где лучше, в запросе или где-то в представлениях СДКшного конструктора
6 seraf
 
13.12.19
14:08
если у меня таких пар полей по которым возможно сравнение полдюжины, что всё в запросе описывать
7 seraf
 
13.12.19
14:16
+а если поле составное, то что, как его выражать через ЕСТЬNULL
8 seraf
 
13.12.19
14:17
ну хотя в таком случае не так важно для сравнение какую пустую ссылку оно приймет..
9 hhhh
 
13.12.19
17:01
(7) если составное, тогда НЕОПРЕДЕЛЕНО
10 DrWatson
 
13.12.19
17:11
(4) >А в каких случая 1С в реквизиты пишет пустую ссылку, в каких NULL?
Неопределено и пустая ссылка - это вполне себе определенные значения данных. И, да, это тоже разные значения.
NULL ставится когда данных не существует. Это может быть если ты делаешь левое соединение и берешь поле второй таблицы. Так вот, если по условию не нашлась строка второй таблицы, то в этом поле будет null.
11 seraf
 
13.12.19
17:52
(10) да, если строки не найдено будет NULL
а если в регистре присоединяемом часть данных не заполнено, это что, Неопределено или пустаяссылка/0
12 SergTheGreat
 
16.12.19
10:23
(11) Тут поведение запроса ничем не отличается от получения свойства "через точку":
если тип данных единичный - пустая ссылка;
если составной - Неопределено.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший