Имя: Пароль:
1C
1С v8
Тип. Какой тип у этого значения?
0 mirina313
 
21.08.19
19:09
1. Нет 80% (4)
2. Свой вариант 20% (1)
3. Да 0% (0)
Всего мнений: 5

Тип значения НЕОПРЕДЕЛЕНО равен NULL?
1 ДенисЧ
 
21.08.19
19:13

Свой вариант
2 palsergeich
 
21.08.19
19:14
(0) нет. Это разные литералы.

Нет
3 mirina313
 
21.08.19
19:17
(1) Раньше был NULL в старых версиях?
4 RomanYS
 
21.08.19
19:18
(3) откуда такое предположение?
5 mirina313
 
21.08.19
19:19
(4) В литературе у человека, который писал материал (Версия 8.3.3) и тип у значения в запросе NULL.
Делаю такой же запрос, у меня тип = Не определено.
6 RomanYS
 
21.08.19
19:20
(5) Запрос покажите
7 Лефмихалыч
 
21.08.19
19:23
(0) нет

(5) ты делаешь что-то не так

Нет
8 mirina313
 
21.08.19
19:23
(6)
Если интересно, то вот:
https://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-funkcii-i-operatory-dlya-raboty-s-tipami-tipznacheniya-tip-ssylka-estnull-vyrazit

Раздел "Функция ТИП". Отступление.
9 Лефмихалыч
 
21.08.19
19:25
(8) свой запрос покажи
10 mirina313
 
21.08.19
19:26
11 mirina313
 
21.08.19
19:27
Текст
А дело вот в чём. Если вы зайдёте в элемент справочника Города с наименованием Сан-
Паулу, то увидите, что поле ОтличительныйПризнаксовершенно никак не заполнено. Оно
пустое. А все незаполненные поля составного типа имеют специальное
значение НЕОПРЕДЕЛЕНО.
С НЕОПРЕДЕЛЕНО мы также сталкиваемся впервые.
Значение НЕОПРЕДЕЛЕНО применяется, когда необходимо использовать пустое значение,
не принадлежащее ни к одному другому типу. Это как раз наша ситуация. А тип
значения НЕОПРЕДЕЛЕНО, как вы уже наверное догадались равен NULL.
12 Лефмихалыч
 
21.08.19
19:27
(10) и вопрос у тебя в чем?
13 mirina313
 
21.08.19
19:28
(12) В том что тип у него в запросе Null для Сан-Паулу
14 Лефмихалыч
 
21.08.19
19:28
(11) учись по официальным учебникам от 1С. Автор текста сам ни хрена не знает толком
15 mirina313
 
21.08.19
19:28
А Значение неопределено
16 Лефмихалыч
 
21.08.19
19:31
(13) это не в запросе у него Null, а в представлении, которое стряпает для него консоль запросов, которую он использует. Что это за консоль и откуда она взялась - яхз. Значение NULL не из запроса в табличный документ выводится, а получается при выводе результата запроса в табличный документ. Зачем и почему - вопрос к автору консоли запросов.
17 Лефмихалыч
 
21.08.19
19:32
NULL не равен Неопределено
никогда не был равен
и не будет равен ни когда
18 mirina313
 
21.08.19
19:33
(16) То есть дело в версии консоли?
19 Лефмихалыч
 
21.08.19
19:35
(18) дело в том коде, который из результата запроса делает тебе (или автору этого недоучебника - я не вполне понял, который из вас не прав) табличный документ
20 RomanYS
 
21.08.19
19:38
(18) у него ошибка, у тебя правильно.
Где у него ошибка хз, может данные забил неправильно, может картинки руками рисовал, может что-то типа (16) (очень маловероятно имхо)
21 mirina313
 
21.08.19
19:40
(20) Так он и в теории написал:
Значение НЕОПРЕДЕЛЕНО применяется, когда необходимо использовать пустое значение,
не принадлежащее ни к одному другому типу. Это как раз наша ситуация. А тип
значения НЕОПРЕДЕЛЕНО, как вы уже наверное догадались равен NULL.
Вот и интересно стало...
22 Лефмихалыч
 
21.08.19
19:43
(21) врёт. Точнее, он в плену собственных дремучих заблуждений. Ищи другой мануал, этот не годный.
23 RomanYS
 
21.08.19
19:43
(21) А вот это точно бред. Это два разных значения, у каждого свой специальный тип.
24 RomanYS
 
21.08.19
19:47
(21) Кстати можешь до автора "докопаться" в его рекламной ветке
Обновлятор-1С: теперь с поддержкой облаков для защиты от шифровальщиков

(22) интересно он теорию под практику подгонял или наоборот?
25 mirina313
 
21.08.19
19:49
Главное для себя разобраться, спасибо ребята что пояснили
26 dmpl
 
21.08.19
20:33
(0) NULL, кстати, даже самому себе не равен. Не то что Неопределено.
27 RomanYS
 
21.08.19
20:38
(26) спорное утверждение. Его нельзя сравнивать в запросе. А в коде вполне (NULL = NULL) = Истина
28 Лефмихалыч
 
21.08.19
20:43
(27) можно сравнивать. Везде можно. Соединения работают ровно потому, что сравнивать его можно.
29 RomanYS
 
21.08.19
21:02
(28) в запросе (NULL = NULL) вернёт NULL. А в коде получим Истина
30 Лефмихалыч
 
21.08.19
21:06
(29) нет, в запросе любое сравнение с null возвращает ложь. В запросе получить NULL при сравнении не возможно конструктивно
31 RomanYS
 
21.08.19
21:12
(30) проверь
выбрать (null = null) есть NULL
32 Лефмихалыч
 
21.08.19
21:23
(31) хмм... какая загогулина.
Не знал.
Глупость какая.

но сравнивать, тем не менее, можно и неопределено не равен null
33 Йохохо
 
21.08.19
21:26
(31) а так set ansi_nulls on ?
34 RetardedToBoot
 
21.08.19
21:36
В табло:
ТипЗнч(Неопределено)    Не определено
ТипЗнч(Неопределено) = Неопределено    Нет
Неопределено = Неопределено    Да
35 RetardedToBoot
 
21.08.19
21:37
ТипЗнч(Неопределено) = NULL    Нет
36 palsergeich
 
21.08.19
21:37
Неопределенно - признак поля составного типа. Неинициированный составной тип = Неопределенно.
Null - признак соединения.(ещё в РБ встречается, но это за рамками)
37 RetardedToBoot
 
21.08.19
21:37
Но самое интересное:
ТипЗнч(Неопределено) = ТипЗнч(Неопределено)    Да
38 RetardedToBoot
 
21.08.19
21:38
Хотя вот это все объясняет:
ТипЗнч(Неопределено) = Тип("Неопределено")    Да
39 RomanYS
 
21.08.19
21:39
(37) и что тут интересного?
40 RetardedToBoot
 
21.08.19
21:40
(39) уже не интересно, ты опоздал.
41 RomanYS
 
21.08.19
21:42
(32) Почему глупость? Как раз всё логично и вроде по документации: любое выражение с null возвращает null. При неявных преобразованиях в булевых выражения получаем Ложь. Отсюда твой (ошибочный) вывод в (30)
42 RomanYS
 
21.08.19
22:01
Нашел кстати пункт в справке. Прикольная формулировка:
"Важно! Любая операция сравнения двух значений, в которой участвует хотя бы одно значение NULL, дает результат, аналогичный(!!!) значению ЛОЖЬ."
43 Йохохо
 
21.08.19
22:49
(41) Истина Или нулл должно дать истина
44 Сияющий в темноте
 
21.08.19
22:54
Неопределено - это признак,когда у поля нет значения.
Null - это признак,когда нет поля или записи вообще.
45 RomanYS
 
21.08.19
23:23
(43) Да, забавно. Значит я тоже переврал.
ВЫБРАТЬ
    0 + NULL ЕСТЬ NULL КАК Поле1,//Да
    "" + NULL ЕСТЬ NULL КАК Поле2,//Да
    (ИСТИНА
        ИЛИ NULL) ЕСТЬ NULL КАК Поле3,//Нет
    (NULL
        ИЛИ ИСТИНА) ЕСТЬ NULL КАК Поле4,//Нет
    0 * NULL ЕСТЬ NULL КАК Поле5,//Да
    0 = NULL ЕСТЬ NULL КАК Поле6//Да

Интересно какие ещё выражения с NULL не возвращают NULL, не производные от (43)
46 RetardedToBoot
 
22.08.19
00:24
ТипЗнч(ТипЗнч("Неопределено")) = Тип("Тип")    Да
47 Йохохо
 
22.08.19
07:02
(45) ложь и нулл = ложь
48 DrZombi
 
гуру
22.08.19
08:19
(45) (ИСТИНА
        ИЛИ NULL) ЕСТЬ NULL КАК Поле3

Тут так то условие "ИЛИ"
49 DrZombi
 
гуру
22.08.19
08:31
(0) Используй  "ЕстьNull(Значение, Неопределено) <> Неопределено"  :)

Нет
50 Cyberhawk
 
22.08.19
08:37
В коде типзнч(неопределено) = тип("неопределено"), но не неопределено. Так что

Нет
51 Cyberhawk
 
22.08.19
08:38
Собственно тип значения в коде никогда не равен ни нуллу, ни неопределено, а всегда равен какому-то типу
52 Cyberhawk
 
22.08.19
08:39
С нуллом надо проверить только
53 Cyberhawk
 
22.08.19
08:40
+(52) Ну собственно да, всегда тип: https://www.dropbox.com/s/xnk5tv03vprltbw/Screenshot%202019-08-22%2008.40.04.png?dl=0
54 hhhh
 
22.08.19
08:43
(51) с нуллом точно есть. Для групп иерархического справочника. Если задано у реквизита использование "для элементов"