Имя: Пароль:
1C
 
NULL<>Неопределено
0 Ненавижу 1С
 
гуру
22.04.11
16:28
1. так написано в священной книге 0% (0)
2. так удобнее себя чувствовать леммингом 0% (0)
3. нам завещал это Нуралиев 0% (0)
4. зловещее предсказание 0% (0)
5. отстаньте, не рушьте мой мозг 0% (0)
Всего мнений: 0

почему NULL<>Неопределено ?
1 Дикообразко
 
22.04.11
16:29
ты опять?
2 Ненавижу 1С
 
гуру
22.04.11
16:29
(1) ну пятница жеж
3 shuhard
 
22.04.11
16:29
(2) ну не до такой же степени тяпница

зловещее предсказание
4 Дикообразко
 
22.04.11
16:30
(2) ЗначениеЗаполнено(NULL) = ЗначениеЗаполнено(Неопределено)
5 Snorkler
 
22.04.11
16:34
(0) Потому что наше Неопределено гораздо круче ихнего NULL…
http://www.rbcdaily.ru/2011/04/2
6 hhhh
 
22.04.11
16:35
(3) всё-таки, наверно, это послание потомкам

нам завещал это Нуралиев
7 AlexNew
 
22.04.11
16:37
Шо опять? (c)
8 Lys
 
22.04.11
16:38
Да не усомнится никакой неверный в гении отца нашего основателя...

нам завещал это Нуралиев
9 proger2011
 
22.04.11
16:39
(0) А у кого и когда с этим возникают проблемы? Пля скоко кодирую ни разу задумывался над этой проблемой.

отстаньте, не рушьте мой мозг
10 Ненавижу 1С
 
гуру
22.04.11
16:41
(8) про гения тут не надо
11 Ненавижу 1С
 
гуру
22.04.11
16:41
(9) на самом деле проблема с неопределено и пустой ссылкой в составном типе есть
12 poligraf
 
22.04.11
16:42
Это хорошо, что голосовалку прикрепил...
Был бы вопрос от того, у кого под ником полоска совсем коротенькая - послали бы по всем вариантам...

так удобнее себя чувствовать леммингом
13 Ненавижу 1С
 
гуру
22.04.11
16:43
(12) как полоска с голосовалка коррелирует?
14 Lys
 
22.04.11
16:46
(10) Так ты, ничтожный, позволил усомниться в величии триединого, отца Бориса, святого духа Сергия и сына их, пророка Фиксина?
Да будешь сожжен на костре из ЖКК по клюшкам!
15 poligraf
 
22.04.11
16:48
(13) хотя да, если бы полоска была большая, то еще и спросили "ты чего кучу лет на форуме делал?!"
16 apokrit
 
22.04.11
16:48
null value (null): A special value, or mark, that is used to indicate the absence of any data value.
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

так написано в священной книге
17 Megas
 
22.04.11
16:49
Ты не поверишь но в запросе Null<>Null

так написано в священной книге
18 Ненавижу 1С
 
гуру
22.04.11
16:50
(16) вот именно!
почему NULL в 1С не сохраняемый (stored) тип данных
19 Ненавижу 1С
 
гуру
22.04.11
16:50
(17) это да, это я верю
20 Megas
 
22.04.11
16:50
(17) Даже круче если не ошибаюсь, любое сравнение с NULL даст ложь... кроме "Есть Null" "Есть не NULL"
21 Ненавижу 1С
 
гуру
22.04.11
16:50
(17) в это только и верую
22 Ненавижу 1С
 
гуру
22.04.11
16:51
(20) на самом деле дает не false, а NULL
23 Megas
 
22.04.11
16:51
(22) О блин... я и не знал =)
24 Ненавижу 1С
 
гуру
22.04.11
16:52
(23) не, ну в 1С (которую я очень люблю) дает ложь
25 Fragster
 
гуру
22.04.11
16:53
неопределено - нулевое значение составного типа,
NULL - результат того, что что-то не соединилось с чем-то. иначе как отличить их?

отстаньте, не рушьте мой мозг
26 Сергей Д
 
22.04.11
16:55
(17) Ну точно так же, как бесконечность <> бесконечность в математике.
27 Ненавижу 1С
 
гуру
22.04.11
16:55
(25) ты щас написал че то неправильное про неопределено, исправься
легко различить по первичному ключу, которое NULL просто не может быть
28 igork1966
 
22.04.11
16:55
(0) потому что по-идее NULL <> NULL  в стандарте SQL
29 Ненавижу 1С
 
гуру
22.04.11
16:56
а еще пустые ссылки туда же запишите
30 Ненавижу 1С
 
гуру
22.04.11
16:56
+(29) я их всех ненавижу, кроме NULL
31 igork1966
 
22.04.11
16:57
(28) + и в этом есть глубокий смысл
32 Ненавижу 1С
 
гуру
22.04.11
16:57
(31) ты не в теме
33 igork1966
 
22.04.11
16:58
(32) в смысле?
34 Ненавижу 1С
 
гуру
22.04.11
16:59
(33) в прямом
я в курсе что условие NULL=NULL не истинно и согласен с ним всей душой и мозгом
35 igork1966
 
22.04.11
17:01
(34) ааа... ты про (18)
36 Ненавижу 1С
 
гуру
22.04.11
17:01
(35) я про типы скорее чем про значения
37 Lys
 
22.04.11
17:03
Ндаа, развели.
Вот лично мне - по#уй. Интересно, почему...
38 Sserj
 
22.04.11
17:05
(25) Что-то ерунду загнули батенька :)
39 dimoff
 
22.04.11
17:07
Потому что это разные вещи. Неопределено это когда ты есть, но тебе ещё не придали форму и не дали имени, а NULL когда тебя нет, совсем нет
40 dimoff
 
22.04.11
17:07
(38) Все верно в 25 написано
41 Ненавижу 1С
 
гуру
22.04.11
17:08
(39) метафизикой страдай где-нибудь в другом месте
тут надо придерживаться диалектики ))
42 dimoff
 
22.04.11
17:11
это не метафизика это экзистенция
43 Ненавижу 1С
 
гуру
22.04.11
17:12
(42) это голый пиз_деж на пустом месте, вот с этим согласен
44 Рыжий Лис
 
22.04.11
17:14
(43) Есть две таблицы
первая
А В

вторая
А неопределено

SELECT Первая.[1], Вторая.[2] FROM Первая LEFT JOIN Вторая ON [1]=[1]

Вернет
А неопределено

SELECT Первая.[1], Вторая.[2] FROM Первая LEFT JOIN Вторая ON [2]=[1]

Вернет
А NULL
45 Necessitudo
 
22.04.11
17:14
А всё-таки чем NULL отличается от Неопределено?

так написано в священной книге
46 Ненавижу 1С
 
гуру
22.04.11
17:15
(44) и чего?
47 fisher
 
22.04.11
17:16
(0) С NULL в запросе всё понятно.
А NULL в языке ведет себя немного по-другому. И если немного подумать - то вполне объяснимо почему. В языке уже нет необходимости такого же поведения как в запросе и проще подчинить его общим правилам, чем придумывать дополнительные операторы.
48 Ненавижу 1С
 
гуру
22.04.11
17:17
(47) кстати не нужно
ибо в процедурных расширениях СУБД NULL ведет себя все также как и в запросах
так что мимо кассы
49 Ненавижу 1С
 
гуру
22.04.11
17:20
зато:

был реквизит простого типа, под него написали кучу отчетов, а теперь делаем его составным
все отчеты правим

красота!
50 Vladal
 
22.04.11
17:20
(45)
Нулл - несуществующий объект.
Неопределено - переменная (реквизит), но тип неопределен.
ПустоеЗначение - уже типизированное значение, но пустое.
51 Ненавижу 1С
 
гуру
22.04.11
17:21
(50) Неопределено и NULL это типизированные значения, не ври, читай ЖКК
там написано что их типы Неопределено и NULL

маразм короче
52 Ахиллес
 
22.04.11
17:22
(48) то есть все пустые ссылки передавать без типа?
Незаполненное поле выбора типа справочник на форме будет NULL?

зловещее предсказание
53 fisher
 
22.04.11
17:22
(48) Не мимо. В процедурных расширениях для работы с NULL используются те же специальные операторы, что и в запросе. Соответственно, выбор был или добавлять аналоги в язык 1С, или подчинить общим правилам. НЕОПРЕДЕЛЕНО не может заменить NULL при анализе выборки.
54 qeos
 
22.04.11
17:22
"Неопределено" - это залог на будущее.. Для квантовых компьютеров.
55 Ненавижу 1С
 
гуру
22.04.11
17:24
(52) именно
(53) это ты про IF THEN что ли?
(54) не удивлюсь, что в 1С 9.х его не будет
56 Vladal
 
22.04.11
17:25
(51) Что есть нетипизированный объект?
Если он - объект, то он уже того типа, которым его собздали как объект.
57 Ненавижу 1С
 
гуру
22.04.11
17:25
(56) я как бы в ваших терминах, вы ж сказали, только пустая ссылка типизированный
58 fisher
 
22.04.11
17:29
(55) Ну да. О правилах использования NULL в логических выражениях в процедурных расширениях и самих запросах (соответственно - в языке 1С и языке запросов 1С).
59 Fragster
 
гуру
22.04.11
17:32
еще раз - неопределено - это то, что записано в таблицах БД в поля составного типа, если туда ничего руками не писать (чтобы отличить от пустой ссылки определенного типа объектов)
NULL ни в одном поле в БД не записано, оно может получится только в результате левого/полного соединения
60 fisher
 
22.04.11
17:33
(59) Да в курсе он. Он об что-то другое мозг ломает. Не пойму только до конца обо что. Предполагаю, что о разницу поведений NULL в запросе и языке 1С. Причем тут НЕОПРЕДЕЛЕНО - я не догоняю. Оно как бы само по себе.
61 Vladal
 
22.04.11
17:38
(587) пойду, почитаю про NULL
62 Wobland
 
22.04.11
17:42
эта тема мне интересна. закладу
63 luckyluke
 
22.04.11
17:43
(0) так ты предлагаешь объявить анафему для НЕОПРЕДЕЛЕНО?
64 Ахиллес
 
22.04.11
17:43
(59) А нафига их различать? Ты крепче спать будешь ели узнаешь что у тебя нифига нету никаких значений из списка в 500 видов документов (например галочка на "Документы" в составном типе) И чем хуже если тебе скажут что у тебя NULL в поле ввода.
65 supremum
 
22.04.11
17:46
(64) Еретик! :)

так написано в священной книге
66 supremum
 
22.04.11
17:47
(0) Ересиарх! )

нам завещал это Нуралиев
67 luckyluke
 
22.04.11
17:49
Ненавижу 1С и NULL
vs
НЕОПРЕДЕЛЕНО и ПустаяСсылка()
68 Jolly Roger
 
22.04.11
17:51
(49) прямо все каждый день меняют простой тип реквизита на составной и правят кучу отчетов...

отстаньте, не рушьте мой мозг
69 Speshuric
 
22.04.11
19:12
1. С одной стороны, действительно, в 1С "многовато" специальных и пустых значений.
2. С другой - я вообще сторонник Дейта и Давена и считаю, что в теории РБД Null - лишнее искуственное понятие.
3. В VB/VBA сосуществуют Null и Nothing - ничо, все живы.
4. И мне очень нравится, что в запросе без особого геморроя можно различать "пустоты", появившиеся от соединений и "пустоты", хранившиеся в базе данных.
5. Ну и наличие этого многообразия "пустых значений" - leaky abstraction данной конкретной реализации системы.
70 Fragster
 
гуру
22.04.11
19:15
вообще если бы в языке запросов было бы ПустоеЗначениеТипа(Поле) было бы круто
71 milan
 
22.04.11
19:20
(70) Переходи на 8.2 там это реализовано
72 cathode
 
22.04.11
20:38
(59) Если в базе есть планы обмена, то в таблицах регистрации изменений NULL пишется в поле номера сообщения, если изменения не отправлялись, так что в базе 1C значения NULL присутствуют.
73 GROOVY
 
22.04.11
20:51
Неопределено - неинициализированное значение
NULL - значение отсутствует
74 nbIx
 
22.04.11
21:09
в java script тоже есть NULL и undefined и PHP тоже вроде бы.
И что с того?

отстаньте, не рушьте мой мозг
75 Sergey_KR
 
22.04.11
21:10
(73) +1

отстаньте, не рушьте мой мозг
76 anddro
 
22.04.11
22:03
C#: null, DBNull

отстаньте, не рушьте мой мозг
77 Immortal
 
22.04.11
22:18
ааааааааааааааа
(0) =)

так написано в священной книге
78 Immortal
 
22.04.11
22:19
(72)куда что пишется?
79 Grusswelle
 
22.04.11
22:19
(0) Бог есть! И точка! (с) Воланд.
80 Immortal
 
22.04.11
22:24
а..вспомнил,да, есть такое
81 EvgeniuXP
 
22.04.11
22:25
в 8.2 NULL можно получить и через Элементы, как не помню, но делал.
82 fisher
 
23.04.11
11:00
(72) Гм... И в СУБД NULL тоже в поля пишется. Обозначает именно неинициализированное значение... Для каждого поля отдельно настраивается - может ли оно хранить NULL или нет. Начинаю понимать ТС :)
Думаю, в 1С в самом деле небольшая чехарда получилась. Начали с двух сторон заходить, породили два типа, хотя по уму можно было одним обойтись. А потом стало уже поздно.
83 Immortal
 
23.04.11
12:37
ничего не поздно - нулл для базы данных, неопределено - для всего остального
84 КонецЕсли
 
23.04.11
12:58
(0)
Неопределено - это когда ты идёшь в магазин, чтобы купить водки или пива, но ты ещё не определился, что из этого ты купишь.

NULL - не видать тебе не водки не пива.

Согласись, состояния души совсем разные!

зловещее предсказание
85 luckyluke
 
23.04.11
13:34
Неопределено - это наше русское пусто, а не какое-то заморское NULL от лукавого!
86 Ненавижу 1С
 
гуру
25.04.11
09:12
продолжаем?
87 Sammo
 
25.04.11
09:27
(49) Если был реквизит простого типа, а стал составным - возможно здесь ошибка проектирования.
88 Ненавижу 1С
 
гуру
25.04.11
09:31
(87) возможно система просто развивается
89 Speshuric
 
25.04.11
09:32
(86) А смысл? 1С даже если захотят не смогут избавиться от "Неопределено". В многих других системах "хранимый в БД null" отличается от "null, как никуда не указывающая ссылка". Ты лучше скажи что конкретно тебя не устраивает в совместном существовании этих значений.

ЗЫ: Повторюсь, я вообще ортодокс и присоединяюсь к Дейту и Дарвену в том, что они счиатют NULL излишним на уровне СУБД.
90 dmpl
 
25.04.11
09:45
(0) Забей.
91 Sammo
 
25.04.11
09:45
(88) Имхо, если реквизит становится составным, то это вполне возможна ошибка проектирования на этапе создания системы или на этапе доработки системы. Особенно, когда данный реквизит используется в отчете. Особенно когда в отчете используется реквизит через точку.
92 Ненавижу 1С
 
гуру
29.04.11
12:38
кстати, чему равен Флаг для групп верхнего уровня?


ВЫБРАТЬ
   Номенклатура.Ссылка,
   Номенклатура.Родитель,
   (Номенклатура.ЭтоГруппа И Номенклатура.Родитель.ЭтоГруппа) КАК Флаг
ИЗ
   Справочник.Номенклатура КАК Номенклатура
93 Maxus43
 
29.04.11
12:40
(92) неужто NULL?)
94 Ненавижу 1С
 
гуру
29.04.11
12:41
(93) именно, так что не ЛОЖЬ в логических выражениях, а NULL!
95 Maxus43
 
29.04.11
12:43
(94) ошибке он равен кстати)
96 MatrosoV AleXXXand_R
 
29.04.11
12:44
вот так

нам завещал это Нуралиев
97 kirillsas
 
29.04.11
12:46
(95)Какой?
98 MatrosoV AleXXXand_R
 
29.04.11
12:46
(96) + чем больше сложностей в разработке программы, тем гуще и слаще обед у программиста :))
И может даже не только на тарелку горохового супа хватать будет :))
99 Axel2009
 
29.04.11
12:47
(0) а ты в курсе как НЕОПРЕДЕЛЕНО хранится в системе то?
100 Ненавижу 1С
 
гуру
29.04.11
12:48
100!
101 Axel2009
 
29.04.11
12:48
(100) долго ждал?
102 Ненавижу 1С
 
гуру
29.04.11
12:48
(95) не гони волну
(99) в курсе, в курсе, а чего?
103 Maxus43
 
29.04.11
12:49
(97) Синтаксической. Не проглатывает запрос такой
104 Fragster
 
гуру
29.04.11
12:49
а чему равно (Истина И NULL)?
105 Ненавижу 1С
 
гуру
29.04.11
12:49
(103) это потому что ты пользуешься мерзким конструктором!
106 Maxus43
 
29.04.11
12:50
(105) Это потому что мне в голову не придёт такое писАть)
107 Axel2009
 
29.04.11
12:50
(102) и как же хранится НЕОПРЕДЕЛЕНО?
108 Maxus43
 
29.04.11
12:50
(104) Ложь даёт конструктор
109 ado
 
29.04.11
12:50
Что, ОПЯЯЯТЬ?
110 Ненавижу 1С
 
гуру
29.04.11
12:51
(104) NULL

гораздо интереснее почему

ВЫБРАТЬ
   (Ложь И NULL)

дает NULL, хотя должна быть Ложь по правилам - это ляп
а этот вообще ругается на синтаксис:

ВЫБРАТЬ
   (Истина ИЛИ NULL)
111 Mort
 
29.04.11
12:52
Ну отменили неопределено и пустые ссылки. И что это даст? В практическом плане?
112 Maxus43
 
29.04.11
12:53
Выбор Когда Истина И NULL Тогда "Да" Иначе "Нет" Конец

вернёт Нет запрос
113 Ненавижу 1С
 
гуру
29.04.11
12:53
(107) в поле отвечающем за тип сооветствующая константа
114 Axel2009
 
29.04.11
12:54
(113) значит поле то заполнено?
115 Ненавижу 1С
 
гуру
29.04.11
12:55
(112) просто это неверная альтернатива
1с выносит мозги людям своими нелепыми стандартами:

ВЫБРАТЬ
Выбор
Когда Истина И NULL Тогда "Да"
Когда НЕ(Истина И NULL) Тогда "Нет"
Иначе NULL
Конец
116 Ненавижу 1С
 
гуру
29.04.11
12:55
(114) конечно
117 Песец
 
29.04.11
12:56
(0)
Null
Описание:
Значения данного типа используются исключительно для определения отсутствующего значения при работе с базой данных, например, при соединении таблиц.
...
Неопределено (Undefined)
Описание:
Значение данного типа применяются, когда необходимо использовать пустое значение, не принадлежащее ни к одному другому типу. Например, такое значение изначально имеют реквизиты с составным типом значения. Существует одно единственное значение данного типа, задаваемое литералом.
...

(с) Желто-желтые книжки.

"почему NULL<>Неопределено ?"

Важно! Любая операция сравнения двух значений, в которой участвует хотя бы одно значение NULL, дает результат, аналогичный значению ЛОЖЬ.

(с) Там же.
118 Mort
 
29.04.11
12:56
Кстати да. Если производить слияние Неопределено и NULL, что оставлять в плане (X=X)=?. А то как-бы критика есть, а реального предложения по архитектуре так и нет.
119 Axel2009
 
29.04.11
12:57
(116) ну так почему должно быть NULL = заполненное значение?
120 Maxus43
 
29.04.11
12:59
(119) Дак и неопределено не заполнено по мнению 1с
121 Ненавижу 1С
 
гуру
29.04.11
12:59
(119) не о том речь, зачем вводить понятие НЕОПРЕДЕЛЕНО вообще было?
122 Ненавижу 1С
 
гуру
29.04.11
12:59
(117) кого ты учишь?
123 Ненавижу 1С
 
гуру
29.04.11
13:00
(118) уже интересней, только разверни вопрос, а то я не понял
124 Axel2009
 
29.04.11
13:00
(121) чтобы можно было сравнивать?
125 Ненавижу 1С
 
гуру
29.04.11
13:00
(124) думай еще
126 Maxus43
 
29.04.11
13:00
(122) Неопределено = пустое значение, не принадлежащее ни к одному другому типу
NuLL = для определения отсутствующего значения.
По логике ЖЖК норм
127 Песец
 
29.04.11
13:00
(121) По-твоему, утверждение "у меня есть пустая банка" равносильно "у меня нет пива" ?
128 Ненавижу 1С
 
гуру
29.04.11
13:02
(126)(127) хватит уже из пустого в порожнее переливать
из вас философы никудышные
вот в MS SQL нет же Неопределено типа и ничего, нет в IB/Firebird его
и ничего живут жеж
129 Sammo
 
29.04.11
13:03
(121) Например, для того чтобы отличать Null от Неопределено и пустой ссылки
130 Ненавижу 1С
 
гуру
29.04.11
13:03
(127) конечно нет, ведь она пустая
но на вопрос у меня есть банка? ответ да

ловишь суть?
131 Maxus43
 
29.04.11
13:03
(128) А в 1с это есть, живём же
132 Ненавижу 1С
 
гуру
29.04.11
13:04
(129) ввести чтоб потом использовать ради себя самой?
(131) живем, но херня нагорожена
133 Axel2009
 
29.04.11
13:04
(128) если бы 1совцы не переписывали свои запросы для СУБД, тогда можно было и NULL обойтись. а так придумай как бы ты написал условие на поле составного типа В(&СписокЗначений) и туда надо вставить 1 док и неопределено? если тупо менять неопределено на NULL, тогда запрос ниче не вернет
134 Песец
 
29.04.11
13:04
(128) Появятся типы данных, аналогичные составным типам 1С - появится и аналог "неопределено".
135 ado
 
29.04.11
13:05
(128) Ты так ничего и не понял, Нео. "Неопределено" есть, это тебя нет.
136 Sammo
 
29.04.11
13:05
тебя 69 не устроило?
137 Mort
 
29.04.11
13:06
(123) Я о том, что если начинать проектировать такую архитектуру, сразу начнёшь натыкаться на неприятные геморрои от лишних телодвижений в запросах до полей форм.

Если помечтать:

Начать нужно с того что определится, допутим оставляем "NULL", а "неопределено" удаляем. Чему будет равно NULL = NULL ?
138 Ненавижу 1С
 
гуру
29.04.11
13:06
(134) да фих
(133) для чего такое?
ну используй
Ссылка В (список) ИЛИ Ссылка есть NULL
139 Ненавижу 1С
 
гуру
29.04.11
13:07
(137) NULL = NULL  вернет NULL разумеется
140 Axel2009
 
29.04.11
13:08
(138) ага, и помахали оптимизатору ручкой
141 Ненавижу 1С
 
гуру
29.04.11
13:08
(136) "пустота", "что-то", "неопределено"
чушь это все философская!
142 Axel2009
 
29.04.11
13:10
(120) пустая ссылка конкретного типа тоже по мнению 1с незаполнена. значит тоже в NULL преобразовываем?
143 Mort
 
29.04.11
13:10
(139) Т.е. два абсолютно новых документа будут различаться составными реквизитами - отсюда геморы: в версионировании, в сравнении в запросах (т.е. такие реквизиты нужно будет сравнивать отдельно, например в связях запроса) и т.д. Или составной тип упразднить :) ?  

Это только верхушка айсберга.
144 Песец
 
29.04.11
13:10
(139) (NULL = NULL) вернет ЛОЖЬ
145 Mort
 
29.04.11
13:11
(144) Мы о не о том как есть, а как предполгается ТС.
146 Axel2009
 
29.04.11
13:11
(145) а так он свою СУБД собрался писАть?
147 Mort
 
29.04.11
13:12
(146) Читайте внимательно  (137)(123)(118)
148 Песец
 
29.04.11
13:13
(145) Нуваснах тогда с вашей травой, я по-старинке праздники водкой встречаю.
149 Maxus43
 
29.04.11
13:13
давайте оставим в 1с только примитивные типы. Чтоб баланс собрать достаточно Чисел. вот
150 Axel2009
 
29.04.11
13:15
(147) в какую сторону слияние? в сторону NULL? тогда 1с несколько ограничена. потому как NULL=NULL = ЛОЖЬ
151 Ненавижу 1С
 
гуру
29.04.11
13:17
(144) какая то странная логика:
NULL=NULL - ложь
НЕ(NULL=NULL) - ложь
лучше уж NULL
152 Fragster
 
гуру
29.04.11
13:18
(150) я когда unique index с полем, в которое можно NULL запихать сделал, а потом делал insert ... on duplicate key update в первый раз очень удивился...
153 Песец
 
29.04.11
13:20
(151) НЕ(NULL=NULL) - истина
154 Axel2009
 
29.04.11
13:23
(151) кстате да, ты прав NULL = NULL - NULL. и любое сравнивание дальнейшее с NULL - есть NULL
155 tuxik07
 
29.04.11
13:24
Выбрать Максимум(1) где ложь
156 Ненавижу 1С
 
гуру
29.04.11
13:25
(152) от субд зависит
157 Ненавижу 1С
 
гуру
29.04.11
13:25
(153) сам придумал?
158 Axel2009
 
29.04.11
13:25
(154)+ только вывод неправильный
NULL=NULL - NULL
НЕ(NULL=NULL) - NULL
если же ты проверял ВЫБОР КОГДА NULL=NULL ТОГДА Истина ИНАЧЕ Ложь КОНЕЦ, тогда эт неправильно =) потому как в иначе NULL попадает. а ты искуственно к Ложь приравниваешь
159 Песец
 
29.04.11
13:27
(143) "в версионировании" - не понял в чем проблема
"в сравнении в запросах (т.е. такие реквизиты нужно будет сравнивать отдельно" - почему отдельно?
160 Ненавижу 1С
 
гуру
29.04.11
13:27
(158) надо так:
ВЫБОР
КОГДА NULL=NULL ТОГДА Истина
КОГДА НЕ(NULL=NULL) ТОГДА Ложь
ИНАЧЕ NULL КОНЕЦ

см (115)
161 Axel2009
 
29.04.11
13:28
ну NULL и получается
162 vs84
 
29.04.11
13:30
Пох

отстаньте, не рушьте мой мозг
163 Anatolik
 
29.04.11
13:31
тему нужно отправить в NULL

так написано в священной книге
164 Ненавижу 1С
 
гуру
29.04.11
13:33
ПЯТНИЦО!
165 Anatolik
 
29.04.11
13:34
(164) вот поэтому и (163)
166 Mort
 
29.04.11
14:07
(159) Отдельно, значит в связи одним А.Реквизит = Б.Реквизит не отделаешься, если поле может быть пустым.
167 ice777
 
29.04.11
14:15
"неопределено" написала програмиска .

отстаньте, не рушьте мой мозг
168 Shurjk
 
29.04.11
14:16
Вот что значит - "Смотрит в кингу и видит фигу"...
169 Песец
 
29.04.11
14:27
(166) Что значит "пустым"?
Например, есть документ "а" и документ "б", в них реквизит "поле".
если а.поле имеет составной тип справочник1, справочник2,
б.поле имеет составной тип справочник1, сравочник2, справочник3,
то связь работает нормально, если а.поле=неопределено и б.поле=неопределено, то (а.поле=б.поле) возвращает истина.
Если же а.поле = Неопределено, а б.поле = справноник1.ПустаяСсылка, то таки-да, (а.поле=б.поле) вернет ложь.
170 Axel2009
 
29.04.11
14:31
(169) это после упразднения Неопределено или до?
171 Песец
 
29.04.11
14:59
(170) Вводим один документ а и два документ б, реквизиты оставляем неопределено.

Вот такой запрос


ВЫБРАТЬ
   Документ1.Ссылка Как Ссылка1,
   Документ1.Реквизит1 Как Док1Реквизит,
   Документ2.Ссылка КАК Ссылка2,
   Документ2.Реквизит1 как Док2Реквизит
ИЗ
   Документ.Документ1 КАК Документ1
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Документ2 КАК Документ2
       ПО Документ1.Реквизит1 = Документ2.Реквизит1


вернет 2 строки.

Если в обоих документах б указать тип справочник1 (не заполняя его), то этот же запрос  ничего не вернет, ибо (неопределено=КакойТоСправочник.пустаяСсылка) вернет ложь.
Если в документе а у реквизита указать тот же тип Справочник1 и тоже его не заполнить, получим две строки.

Таким образом, нужно различать "null", "неопределено" и "ПустаяСсылка".
172 Axel2009
 
29.04.11
15:10
(171) это втолковать надо которому ненавидит.. а то он каждую тяпницу штампует новую тему =)
173 Shurjk
 
29.04.11
15:12
(172) Бесполезно это уже не просто неосведомленность, а уже диагноз.
174 5 Элемент
 
29.04.11
15:40
175 Ахиллес
 
29.04.11
16:37
(171) В любом случае не должно ничего выводится. То, что сейчас выведется две строки это НЕЛОГИЧНО, следовательно неверно. Ты делаешь соединение по отсутствующей ссылке и получаешь какой то результат. Если сравнить двух не заполненых контрагентов  в приходной и расходной, что получим? У тебя получим ссылки на эти документы, а по уму БД должна послать тебя в сад, что бы ты ей голову не морочил.
176 Ненавижу 1С
 
гуру
29.04.11
16:40
всем спасибо, вы как всегда позитивны, закрывайте тему!
177 rutony
 
29.04.11
16:52
Я уверен в 8.3 добавят еще "НеУверен" или "Возможно"

отстаньте, не рушьте мой мозг
178 rs_trade
 
29.04.11
17:19
(94) Че за бред. С чего ты взял что в логических выражениях результат может быть NULL???
179 rs_trade
 
29.04.11
17:22
в (92) дает NULL потому что ни в одно описанное условие не попадает. Добавь else и будет тебе счастье
180 StanleyMarsh
 
29.04.11
17:41
почему NULL<>Неопределено?

почему 1>0?, поэтому Неопределено> NULL, а следовательно NULL<>Неопределено

отстаньте, не рушьте мой мозг
181 Шурик71
 
29.04.11
20:58
(0)
Все не читал.

Представь, у тебя есть склад с ячейками.
Ячейки именованы: "А1", "А2" и т.п.
В каждой ячейке может храниться:
груз в квадратной таре; груз в круглой таре; круглая или квадратная тара для груза.

Соответственно, ячейка без груза может быть пустая, с круглой или квадратной тарой.

Если в ней тара - то все понятно (также как в случае, когда есть груз -  значение заполнено). Это пустая ссылка определенного типа.

А вот теперь вопрос. Как ты думаешь, есть ли разница :
"ячейка А12 пуста и без тары (неопределено)"  или "ячейки А12 нет в принципе, их только 11 (null)" ?
182 Ненавижу 1С
 
гуру
30.04.11
06:07
ты (179) под (178) долго подгонял?
183 Ненавижу 1С
 
гуру
30.04.11
06:09
(181) зачем вы тару с грузом сравниваете?
184 Шурик71
 
30.04.11
11:35
(183)

Где тут сравнение тары с грузом?
Тут просто ответ на вопрос "что в ячейке А12".

выбрать Хранение.Содержимое
Из СписокЯчеек
Левое соединение Хранение
По СписокЯчеек.ячейка = хранение.ячейка
где списокячеек.код="А12"


и возможные ответы:
"мяч в подставке" - какое-то значение типа "круглое"
"брусок в подставке" - какое-то значение типа "квадратное"
"подставка под мяч" - пустое круглое
"подставка под брусок" - пустое квадратное
"пустая ячейка" - нет ничего (неопределено)
и !!! нет такой ячейки !!! -> NULL
185 skunk
 
30.04.11
12:19
потомучто нул - это пусто ... а неопределено это что-то что определить не представилось возможным
186 Ахиллес
 
03.05.11
11:39
(184) Ну и что изменится если будет:
"пустая ячейка" - нет ничего (NULL)
и !!! нет такой ячейки !!! -> NULL

Только башку себе ломать при обработке результатов запроса. А в отчете по результатам это вообще неотличимо.
187 Axel2009
 
03.05.11
11:42
(186) потому что NULL <> NULL
188 Ахиллес
 
03.05.11
11:45
(187) Это вообще не в тему. То, что NULL <> NULL не оправдывает существования "Неопределено"
189 Axel2009
 
03.05.11
11:47
(188) теперь тебе объяснять как 1совцам сравнивать NULL в тех местах где надо сравнить НЕОПРЕДЕЛЕНО = НЕОПРЕДЕЛЕНО?
190 Ахиллес
 
03.05.11
11:56
(189) Ты (175) читал? Если значения нет, то дальше всякие действия теряют смысл. И только шибко умные одинэсники сравнивая отсутствующие значения умудряются получить положительный результат, вместо того, что бы получить по морде лопатой от БД, сесть и задуматься, что же они делают.
191 Axel2009
 
03.05.11
11:58
(190) для тех кто в танке. в скуле ты бы сравнивал напрямую с IS NULL, если надо. а вот в 1с видимо не всегда удается корректно переформировать запрос, чтобы всякие NULL между собой давали нужный результат.
192 Ахиллес
 
03.05.11
12:02
О том и речь, что это костыли платформы и никакого глубинного смысла не несут, другими словами одинэсники не придумали, что то новое и нужное, а у них при написании платформы что то не склеилось и они вот такой костыль сваяли на скорую руку.
193 Axel2009
 
03.05.11
12:04
(192) вообще 1ска позиционировалась изначально как нечто такое, где любой бух может разобраться и переделать под себя =) типа им с нуллами ну нафиг не вперлось разбираться, а потом уже вошло в привычку =)
194 ДобрынинПавел
 
03.05.11
12:18
(0) Почему в 1С не сделали значение типа "НеПонятно"? Очень его не хватает...
195 rs_trade
 
03.05.11
15:37
(182)о каком подгоне речь идет? ты лучше свои знания sql подгони повыше. что бы не делать дурацких выводов из за простого непонимания того как работает запрос.
196 Шурик71
 
03.05.11
16:25
(186)

> Ну и что изменится если будет:
> "пустая ячейка" - нет ничего (NULL)
> !!! нет такой ячейки !!! -> NULL

гы :)

Да ну почти совсем ничего не изменится :).
Только вот в дальнейшем получится один из двух сценариев:

а) пустые ячейки совсем перестанут заполняться, т.к. никто не будет размещать груз в "отсутствующей" ячейке "А12"
/это если "неопределено" меняем на NULL и оставляем поведение как в NULL/

б) или грузчик будет метаться по всему складу, думая, как же ему найти пустую ячейку "А12"
/это если "неопределено" меняем на NULL и меняем поведение как в Неопределено /

А нужно (как ни странно -:) ) чтобы:
- в "отсутствующие" ячейки ничего не размещали
- "пустые" загружали (вместе с тарой).

ЗЫ.
"Пустое значение" и "Значение отсутствует" - это ПРИНИПИАЛЬНО разные значения.
197 ДобрынинПавел
 
04.05.11
05:49
(196) Абсолютно так. А кто с этим спорит!?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс