Имя: Пароль:
1C
1С v8
v8: Отличие "null", "неопределено" и "пустое значение"
, ,
0 Oksana_74
 
26.01.12
08:09
Подскажите, пожалуйста в чем различие и что общего.. А то я уже окончательно запуталась...
72 Песец
 
26.01.12
11:19
(47) Можно и шарик. Переоборудовав горшок в горшок для хранения шариков. Можно и сразу в горшок для меда запихать шарик, горшок сам переоборудуется для хранения шариков, если это предусмотрено конструкцией горшка. Или запихивалка конвертирует шарик в тряпочку, если горшок недостаточно универсален и может хранить либо мед, либо тряпочки.
73 Ненавижу 1С
 
гуру
26.01.12
11:19
(72) демагогия
74 Гот
 
26.01.12
11:20
(71) Так какое? :)
75 Ненавижу 1С
 
гуру
26.01.12
11:21
(74) вот и подумай, заодно тип этого значения ( не тип поля - он составной), а тип значения по умолчанию скажешь
76 Гот
 
26.01.12
11:25
(75) Тут не надо думать, тут надо знать.
А вот ты, судя по всему, не понимаешь, что "тип значения в терминах" 1С к СУБД вообще никакого отношения не имеет. Апофеоз быдлокодера.

Ты вообще, очередной знаток всего, можешь перечислить все типы данных, которые хранят реляционные СУБД?
77 Ненавижу 1С
 
гуру
26.01.12
11:27
(76) так, скатились опять
не надо путать уровни абстракции, если мы говорим в терминах слоя абстракции 1С, то там есть Неопределено, если в терминах слоя абстракции СУБД, то там его нет (это более низкий уровень), если в терминах файловой системы, то там и никаких DATETIME к примеру нет
78 Mort
 
26.01.12
11:44
(76) Ну вообще вопрос "можешь перечислить все типы данных, которые хранят реляционные СУБД" как бы сам по себе намекает на квалификацию задающего.
79 Гот
 
26.01.12
11:44
(77) Так и в чем противоречие? NULL, в твоих терминах - на уровне "абстракции" SQL, как реализация левых соединений, Неопределено - функция 1С, аналогичная undefined в некоторых языках, позволяющих работать с СУБД, ПустоеЗначение - вообще частное решение 1С.
80 Гот
 
26.01.12
11:44
(78) Да? И что, по-твоему постановка вопроса некорректна?
81 Mort
 
26.01.12
11:46
(80) Никто не запрещает написать РБД использующую исключительно числовые поля.
82 Гот
 
26.01.12
11:47
(81) И?
83 Гот
 
26.01.12
11:47
Какие еще "поля" (поля, ппц...) можно использовать?
84 Mort
 
26.01.12
11:47
(82) Картинку нарисовать?
85 Гот
 
26.01.12
11:48
(84) Нарисуй, ага.
86 Ненавижу 1С
 
гуру
26.01.12
11:49
(79) неопределено не функция
87 Mort
 
26.01.12
11:50
(83) Блин, да хоть для хранения комплексных чисел. Или ты выучил одну конкретную РБД и решил что это панацея?
88 Sammo
 
26.01.12
11:50
(77) Емнип, в терминах СУБД неопределено - это значит не заполнена колонка, где хранится тип ссылочного реквизита составного поля. С точки зрения SQL - согласен.
89 Mort
 
26.01.12
11:50
+(87) Им ввиду СУБД а не само понятие РБД
90 ПиН
 
26.01.12
11:51
давайте уже составим коллективное письмо в 1с чтобы отменили все эти неопределено и пустоезначение, а то скоро одинэсники все передерутся...
91 Ненавижу 1С
 
гуру
26.01.12
11:51
(90) не.. не.. не.. ))
92 Гот
 
26.01.12
11:52
(87) Так рисуй уже.
93 Гот
 
26.01.12
11:52
Только сначала объясни, что ты хочешь доказать?
94 Mort
 
26.01.12
11:57
(92) Ага. Щас.
На пальцах.
Список типов которые будет использовать СУБД зависит только от желания разработчиков конкретной СУБД. Нельзя сказать набор используемых типов для всех СУБД вообще. Поэтому вопрос в (76) ламерский.
95 Ненавижу 1С
 
гуру
26.01.12
11:57
Гот ты отвечаешь только на удобные для тебя вопросы?

В рамках абстракции модели 1С записи могут хранить значения Неопределено и пустые ссылки, ты согласен?
NULL понятие как на уровне абстракции СУБД, так и 1С, но они несколько различаются, согласен?
Неопределено это не функция, согласен?
96 cobRA
 
26.01.12
11:57
(76) Скажи, добрый молодец, что тогда означают 0x00000000 и 0x00000000000000000000000000000000 в 1С-ких таблицах. Подсказка - это не NULL
97 rs_trade
 
26.01.12
11:57
(86) почему нет? в зависимости от значения двух полей, возвращается тот или иной результат.
98 Ненавижу 1С
 
гуру
26.01.12
11:59
(97) э... ребята, я так могу и весь компьютер функцией назвать, почему нет?
99 Sammo
 
26.01.12
12:01
(95) Что-то мне кажется - ты теряешь еще 1 уровень абстракции. Ты говоришь про уровень 1с (где есть Неопределено) и SQL (где нет Неопределено)
Но между ними есть еще уровень, как платформа преобразует свои данные в данные СУБД. И вот здесь и возникает - что-то преобразуется к типам СУБД, что-то делается алгоритмически.
100 Гот
 
26.01.12
12:02
(94) Какие вообще бывают типы?
(95) Согласен, Согласен, Не_согласен.
101 Ненавижу 1С
 
гуру
26.01.12
12:04
(99) понятно, что оно преобразует, всякий перезод от одного уровня к другому есть преобразование-интерпретация
(100) тогда поясни
102 Mort
 
26.01.12
12:06
(100)
"Какие вообще бывают типы?" - Нову тему заведи с этим вопросом. Только завтра, ибо пятнично.
103 Гот
 
26.01.12
12:09
(102) Ты не ответил ни на один вопрос, тролль. Поэтому пшел на_ер.
(101) Хорошо, неопределено - это глобальная переменная, в которой содержится элементарное "на уровне абстракции 1С" неопределенное значение, смысл которо
104 Гот
 
26.01.12
12:10
й - любая переменная, значение которой не указано.
105 Ненавижу 1С
 
гуру
26.01.12
12:12
(13) нет, Неопределено это:
1. Тип данных
2. Значение (единственное) этого типа данных
3. В тексте кода или запроса - константа, соответствующая значению из пункта 2
106 Mort
 
26.01.12
12:14
(103) Просто ты задаешь вопросы уровня школьника начинающего изучать Basic.
107 Начинающий Программер
 
26.01.12
12:30
Ещё есть ПустаяСтрока() и ПустаяСсылка().
108 Jaffar
 
26.01.12
13:14
(10) "Оксана_74" - пол мужской? :-)
109 Ненавижу 1С
 
гуру
26.01.12
13:30
110 Shurjk
 
26.01.12
13:35
Какого эту ветку не закрыли  - ведь откровенная провокация.
111 Vladal
 
26.01.12
13:38
(52) А шо в нём есть?
112 Jaffar
 
26.01.12
13:53
(110) почему? в этой ветке тоже не все завсегдатаи проявили 100% точные знания, а в той ветке она просто не сказала, что это тестовая задача, и не имеет с реальностью ничего общего.
113 Shurjk
 
26.01.12
13:54
(112) Да уже третья ветка за неделю, а теv завсегдатаям которые так и не смогли разобраться с тем что такое NULL уже ничего не поможет.
114 Mort
 
26.01.12
14:04
(113) Для завсегдатаев таких веток вопрос "что и как есть" уже давно решен. Тут вопрос (философский) стоит в преимуществе различных абстрактных моделей над другими. Короче, если не в теме, не мешайте развлекаться.
115 Shurjk
 
26.01.12
14:06
(114) Какие нафиг философские вопросы, абстракции какие то приплели, вопрос то простейший.
116 Mort
 
26.01.12
14:12
(115) Ты про вопрос в (0)? Да на него давно ответили и забыли.
117 Shurjk
 
26.01.12
14:13
(166) Ну а все остальное тогда к чему?
118 Mort
 
26.01.12
14:16
(117) Это локальный мем на мисте. Началось где-то тут Неопределено и пустая ссылка это зло 1С 8
119 Shurjk
 
26.01.12
14:18
(118) От большого ума что ли такие измышления.
120 Ненавижу 1С
 
гуру
26.01.12
14:18
(118) да народ просто хочет жить с закрытыми глазами, им так удобнее
121 Shurjk
 
26.01.12
14:21
(120) А вот скажи мне к примеру не в 1с а просто в СУБД что пишеться в поле числового типа если оно не задано?
122 Mort
 
26.01.12
14:28
(121) "Просто в СУБД" это от какого производителя? От Васи Пупкина? Что угодно. И что значит не задано? Где не задано?
123 Ненавижу 1С
 
гуру
26.01.12
14:28
(121) NULL например
124 Shurjk
 
26.01.12
14:30
(122) (123) Ндаа, тут похоже тупизм достиг совего апогея
- бросали бы вы господа программирование - не ваше это, а шли бы там в филосы какие нибудь там есть о чем порассуждать.
125 Ненавижу 1С
 
гуру
26.01.12
14:31
(124) ну-ну, спасибо так сказать за содержательную дискуссию
126 Shurjk
 
26.01.12
14:32
(125) А о чем дискутировать с человеком для которого ноль и NULL это одно и то же.
127 Ненавижу 1С
 
гуру
26.01.12
14:33
(126) а кто это сказал? откуда такие выводы?
128 Shurjk
 
26.01.12
14:34
(127) см (123) + (121)
129 Mort
 
26.01.12
14:34
Второй Гот пошел...
130 Ненавижу 1С
 
гуру
26.01.12
14:36
(128) так ты же сам сказал "не в 1с а просто в СУБД"
так вот если напишу в "просто СУБД"
INSERT INTO ... и пропущу там это поле и вполне может туда записаться NULL (нет DEFAULT значения и триггеры его не меняют)
131 wertyu
 
26.01.12
14:37
Поступившие в продажу пиписькометры подлежат отзыву, - как рассказал нашему спецкорру главный конструктор предприятия Иванов А.И., - там досадная ошибочка, в результате вместо конкретного значения приборы выдают: null, неопределено, пустое значение. Приносим свои извинения покупателям.
132 Shurjk
 
26.01.12
14:41
(130) Ндаа... не второй такой дискуссии мои нервы не выдержат.
Читайте определение NULL до полного просветления - кстати для всех субд оно одинаковое.
133 Jaffar
 
26.01.12
14:42
(131) а они на какой СУБД реализованы? :-)
134 Ненавижу 1С
 
гуру
26.01.12
14:43
(132) посылать я и сам умею, а то что нервы не в порядке - так и не лезь тогда
так в чем я не прав в (130)?
135 Shurjk
 
26.01.12
14:43
(134) В том что ты пишешь непонятно что в типизированное поле, и уж NULL там точно храниться не будет.
136 Ненавижу 1С
 
гуру
26.01.12
14:45
(135) интересно, а как же все таки в типизированных полях СУБД (а есть нетипизированные?) попадают значения NULL?
137 Mort
 
26.01.12
14:49
Что, интересно, щас придумает.
138 Shurjk
 
26.01.12
14:52
(136) Хочешь сказать что если ты напишешь Where Field = NULL то запрос тебе вернет эту строку, а если напишешь Where Field  = 0 то не вернет.
139 Shurjk
 
26.01.12
14:53
(137) Я смотрю у местного шута уже и поклонники появились.
140 Ненавижу 1С
 
гуру
26.01.12
14:54
(138)
Where Field = NULL -- точно ничего не вернет
Where Field = 0 -- если там NULL, тоже не вернет
(139) давай без оскорблений личных?
и ты не ответил таки на (130)+(136)
141 Mort
 
26.01.12
14:56
(139) Оскорбления начались, значит слился.
Слился, сиди там молчи, и читай
http://www.sql.ru/docs/sql/u_sql/ch15.shtml
http://www.flenov.info/books.php?contentid=4
прежде чем позориться.
142 Starhan
 
26.01.12
14:57
(136)емнип в каких то СУБД ставишь, что поле может иметь значение NULL. И оно ставится если добовляешь строку не указывая значение.
143 Sammo
 
26.01.12
15:01
(142) Но поля в таблицах 1с формируются как not null
144 Ненавижу 1С
 
гуру
26.01.12
15:03
(142) я в курсе
(143) 1с тут не причем
145 khimiki
 
26.01.12
15:03
Оксана, на самом деле всё просто про NULL. Понятие NULL значения применяется при работе с реляционными наборами данных. Проблема в том, что при левом или правом соединении довольно часто возникает ситуация, когда строкам из набора данных слева или справа нет соответствия на другой стороне. То есть предикат описан (заголовок таблицы, если по простому), а значений нет. Некоторые разработчики СУРБД так увлекаются NULL значениями, что вообще разрешают из ввод в строки проста так, без всякого соединения. Очень многие учёные в области баз данных считают это крупной ошибкой. Вот, вкратце, вся правда про NULL значения.

Могу рассказать и про НЕОПРЕДЕЛЕНО, но я не уверен, что вы (ты?) всё ещё здесь.
146 Ненавижу 1С
 
гуру
26.01.12
15:04
(145) значение NULL в 1С может возникнуть и в результате запроса безо всяких JOIN
147 khimiki
 
26.01.12
15:06
(146) Я знаю, но здесь я на стороне Дейта и согласен с ним, что это зло.
148 Shurjk
 
26.01.12
15:08
(136) Могут попасть но только в том случае если разрешить им туда попадать - но смысла разрешать это тем более для числового поля точно нет.
(141) Великий теоретик?
149 Ненавижу 1С
 
гуру
26.01.12
15:08
(147) ну про Дейта мы в отдельной ветки (если хочешь заведи) поговорим
150 Ненавижу 1С
 
гуру
26.01.12
15:08
(148) ну вот это уже отмазки пошли, откуда ты знаешь постановку задачи?
151 Shurjk
 
26.01.12
15:09
(150) Приведи пример задачи в которой это целесообразно?
152 wertyu
 
26.01.12
15:10
(133) главный конструктор отказался отвечать на этот вопрос, ссылаясь на коммерческую тайну
153 Mort
 
26.01.12
15:13
(151) По второй ссылке пример такой задачи описан, где не стоит ставить Default. Ну не хош читать - умничай дальше, на потеху окружающим.
154 Ненавижу 1С
 
гуру
26.01.12
15:13
(151) во-первых, я отвечал на вопрос (121) про возможность - возможность такая есть
во-вторых, числовым полем может быть внешний ключ к другой таблице и если нет соответствия, то туда разумно писать NULL
155 Shurjk
 
26.01.12
15:16
(153) Про пол что ли? Дебильныый пример, пустую строку еще легче будет чем NULL найти.
156 Mort
 
26.01.12
15:22
Медицина тут бессильна.
*Ушел
157 Starhan
 
26.01.12
15:23
(0)
NULL - отсутствующее значение
НЕОПРЕДЕЛЕНО - Это пустое значение неопредленного типа
ПустаяСсылка - Это пустое значение определеного ссылочного типа

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

Так как есть разница. Вообще не сопоставилось значение при соединении таблиц. Или Значение есть, но пока не определились, что там хранить :)
158 Ненавижу 1С
 
гуру
26.01.12
15:31
(157) не только для этого NULL в 1С, еще раз классический вариант:

ВЫБРАТЬ
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Артикул),
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка)
ИЗ
   Справочник.Номенклатура КАК Номенклатура

результаты полей скорее всего будут различные
159 Ненавижу 1С
 
гуру
26.01.12
15:32
+(158) слово РАЗЛИЧНЫЕ убрать
160 Starhan
 
26.01.12
15:34
(159) да различные. Скорей всего артикула нет у групп.
161 Serginio1
 
26.01.12
15:35
(24) Нет это не только 1С придумала. В Net есть такое понятие как Nullable типы http://simple-cs.ru/store/csharp/29/

Так число не может быть Null а вот int? может.
162 Fish
 
26.01.12
15:35
Вечерело, а бабушки всё падали и падали. :))) Не надоело еще?
163 Starhan
 
26.01.12
15:36
(159) но смысл то тот же результат запроса.
164 Jaffar
 
26.01.12
15:36
(145) "разрешают из ввод в строки проста так, без всякого соединения"
пиривиди...
165 Ненавижу 1С
 
гуру
26.01.12
15:37
(161) ну да, они "сблизились" с SQL просто, ведь там тоже в ХП и триггерах переменные INT могут иметь значения NULL
но это вообще не то
166 Ненавижу 1С
 
гуру
26.01.12
15:37
(163) ну если артикул неуникальный, то могут сомневаться некоторые
167 Serginio1
 
26.01.12
15:41
(161) Почему не то? Запрос возвращает NULL. Это поле нужно обрабатывать. Смысл тот же, что и в 1С. Вернее как в SQL.
168 Ненавижу 1С
 
гуру
26.01.12
15:43
(167) ну я имею ввиду что да, так, как в SQL
но не как в 1С ))
пример не в тему я считаю, он подтверждает истинность пути SQL и ложность 1С ))
169 khimiki
 
26.01.12
15:46
(164) так понятнее? :)
CREATE TABLE EX_USER (
 ID INT not null,
 NAME VARCHAR(255) not null,
 ACTIVE TINYINT(1) not null,
 ROLE_ID INT not null,
 USER_NAME VARCHAR(25) not null,
 PASSWORD VARCHAR(25) not null
)
170 Serginio1
 
26.01.12
15:56
(168) Согласен. По уму его нужно обрабатывать как неопределено. И не марать мозги.
Запрос запросом, а данные данными. При этом значениеЗаполнено() для 0 и Null вернет ложь.
171 Ненавижу 1С
 
гуру
27.01.12
15:27
(147) как разрулить ситуацию со ссылочным внешним ключом незаполненным?