![]() |
![]() |
![]() |
|
еще раз про NULL в полях примитивных типов | ☑ | ||
---|---|---|---|---|
0
Ненавижу 1С
гуру
25.08.10
✎
17:02
|
почему 1С не дало простым смертным в элементарные (строки, числа, булево, даты) типы заносить значение NULL?
приходится вводить дополнительные флажки, как сами же сделали в договорах: КонтролироватьСуммуЗадолженности и ДопустимаяСуммаЗадолженности, КонтролироватьЧислоДнейЗадолженности и ДопустимоеЧислоДнейЗадолженности вместо того, чтобы внести спокойно NULL |
|||
1
mikecool
25.08.10
✎
17:04
|
ниче не понял
|
|||
2
mikecool
25.08.10
✎
17:04
|
типа не указано значение для тебя не нулл?
|
|||
3
mikecool
25.08.10
✎
17:05
|
и самый главный вопрос - нафига?
|
|||
4
Ненавижу 1С
гуру
25.08.10
✎
17:07
|
(2) не NULL ибо нужно знать отличие, что 0 и NULL это разные вещи
ибо 0 дней тоже можно контролировать, а NULL как раз тот самый флажок |
|||
5
Ненавижу 1С
гуру
25.08.10
✎
17:07
|
к тому же теоретически тут может быть с флажком понос: флажок не стоит, а значение есть
|
|||
6
Жан Пердежон
25.08.10
✎
17:10
|
(0) еще в прошлых версиях 0 часто отображался как пустое значение...
|
|||
7
rs_trade
25.08.10
✎
17:10
|
составной тип, и инициализация начальная реквизита
|
|||
8
H A D G E H O G s
25.08.10
✎
17:12
|
Автор, я тебя узнал, даже не заходя в ветку!
|
|||
9
Ненавижу 1С
гуру
25.08.10
✎
17:12
|
(6) то есть гнилое наследие 7.7 и более ранних версий?
|
|||
10
Ненавижу 1С
гуру
25.08.10
✎
17:12
|
(8) я тебя поджидал здесь
|
|||
11
Ненавижу 1С
гуру
25.08.10
✎
17:13
|
(7) прелестно, нет лучше уж флажок
|
|||
12
H A D G E H O G s
25.08.10
✎
17:14
|
Засадный хищник, блин.
|
|||
13
luns
25.08.10
✎
17:14
|
(4) В типовых отдельно флаг: контролировать и отдельно поле: сколько
и думается что это верно. иначе юзер фиг поймет глядя в пустое полу, что это? 0 или не заданное значение. или надо в цифровое поле на форме Null писать? |
|||
14
Kreont
25.08.10
✎
17:16
|
(0) Ага, и расширить для логических, что б было:
Ложь Истина Незнаю Сомневаюсь Вроде Пофик и т.д.) |
|||
15
NewNick
25.08.10
✎
17:16
|
(13) надуманно.
(0) наверно потому что в простых типах нет места значению NULL - вишь как все просто |
|||
16
Megas
25.08.10
✎
17:16
|
Предположим ты в число дней поставил null и что ты получил?
Делай тогда тип = Число/Строка и Пиши свой "NULL" если так желается! |
|||
17
Gisborn
25.08.10
✎
17:18
|
(13) формат представления примитивных типов никто не отменял. Для чисел есть формат представления 0, можно было бы еще и NULL тоже самое сделать.
(16) получил что настройки контроля не заданы, следовательно, контролировать не надо. |
|||
18
Megas
25.08.10
✎
17:18
|
Используй заместо null -666.66 (думаю мало у кого встречается такая цифра)
|
|||
19
luns
25.08.10
✎
17:18
|
(15) Да? Т.е. на форме в поле ввода должно быть или число или Null, как ты это представляешь?
|
|||
20
rs_trade
25.08.10
✎
17:19
|
как подумаешь что еще в операторах сравнения надо учитывать что null. на фиг все это надо
|
|||
21
Megas
25.08.10
✎
17:19
|
(17) Да я понял конечно ...
Ещё 1 реквизит "КонтрольНеЗадан" - булево |
|||
22
NewNick
25.08.10
✎
17:20
|
(19) канеш. нафига плодить сущности. от того что в одну мудреную переменную запихнуть сразу и флажок и цифирку не прибудет ни экономии памяти ни ясности при работе с оной.
|
|||
23
Megas
25.08.10
✎
17:21
|
А вообще правильно говорят что в "поле ввода" хрен поймёшь 0 или null иные Дятлопрограммеры то null от 0 не отличают , а ты пользователей хошь заставить!
|
|||
24
NewNick
25.08.10
✎
17:22
|
(23) ушел от темы - пользователей это ваще никак касаться не должно(если ты канеш не дятлопрограммер)
|
|||
25
Ненавижу 1С
гуру
25.08.10
✎
17:23
|
(18) "волшебные" константы? фигня
|
|||
26
Ненавижу 1С
гуру
25.08.10
✎
17:24
|
(13) не надо проблемы архитектуры оправдывать интерфейсом, интерфейс разберется сам - оставляй там запросто флажок
|
|||
27
H A D G E H O G s
25.08.10
✎
17:24
|
(25) По старой памяти - dBase поддерживает null ?
|
|||
28
Ненавижу 1С
гуру
25.08.10
✎
17:24
|
(14) не прикрытый слив
|
|||
29
Ненавижу 1С
гуру
25.08.10
✎
17:24
|
(27) каким он боком в 8?
|
|||
30
H A D G E H O G s
25.08.10
✎
17:25
|
(29) Как наследие от 7.7
|
|||
31
Ненавижу 1С
гуру
25.08.10
✎
17:25
|
(20) ну а так надо учитывать флажок, никак не лучше
|
|||
32
Ненавижу 1С
гуру
25.08.10
✎
17:26
|
(30) я уже писал, что такое хреновое наследие надо смело выкидывать напрочь
|
|||
33
Жан Пердежон
25.08.10
✎
17:28
|
(32) напиши в блог Нуралиеву
|
|||
34
H A D G E H O G s
25.08.10
✎
17:28
|
(32) Как бы это бы могло объяснять отсутствие поддержки null в полях.
Так поддерживается null в dBase? |
|||
35
Megas
25.08.10
✎
17:28
|
Короче null было бы хорошо.
Не сделали наверное чтоб не заморачиваться. Запретили во всех полях всех таблиц значение null наверное, может даёт прирост какой ? |
|||
36
Ненавижу 1С
гуру
25.08.10
✎
17:30
|
никак не могу понять щенячьей радости и столь громких попыток оправдать этот продукт
нужно смело и критически признать, что в нем много недостатков, но приходится в этом ... ковыряться |
|||
37
Жан Пердежон
25.08.10
✎
17:31
|
(36) а кто оправдывает? всё так...
|
|||
38
Megas
25.08.10
✎
17:31
|
(36) Даёт хлеб наш насущный!
А так да, есть куча мелких неудобств! |
|||
39
H A D G E H O G s
25.08.10
✎
17:32
|
(36) Ты в 1С с Дельфи пришел?
|
|||
40
Ненавижу 1С
гуру
25.08.10
✎
17:32
|
(39) да, отчасти, хотя ничего коммерческого на нем не продал и толком не заработал
|
|||
41
H A D G E H O G s
25.08.10
✎
17:42
|
(40) А в 1С - значит заработал.
Почти уверен, что в Дельфи ты сможешь реализовать учетную систему с поддержкой NULL, многопроцессорностью, и прочими вкусностями. Но вот 1С - таки юзаем. Так какого хрена? |
|||
42
rs_trade
25.08.10
✎
17:44
|
(41) дай человеку высказаться ))) может это у него больная тема с галочками, накипело....
|
|||
43
H A D G E H O G s
25.08.10
✎
17:46
|
(42) Которая длиться уже года два.
|
|||
44
supremum
25.08.10
✎
17:47
|
(42) NULL и прочее
|
|||
45
awa15
25.08.10
✎
17:49
|
(0) Значения NULL в базе данных 1C использует в своих целях.
Например, реквизиты иерархических справочников при хранении в таблице БД допускают значение NULL. При этом значение NULL принимают только реквизиты, не имеющие смысла в текущей записи (например, запись является группой, а использование реквизита "для элемента"). |
|||
46
supremum
25.08.10
✎
17:50
|
(45) в (0) есть своя логика. Но ИМХО пофигу.
|
|||
47
awa15
25.08.10
✎
17:55
|
(46) Конечно, пофиг. 1С, имхо, сделала так, а не по другому, только чтобы удобнее было ей, а не Ненавижу 1С. Ненавижу 1С хочет, чтобы было удобней ему, а не 1С. Каждый остается при своем.
|
|||
48
rs_trade
25.08.10
✎
17:59
|
(47) и правильно сделала. в общем такие ситуации встречаются не так часто, поэтому разработчик может реализовать подобную логику сам. а вот постоянно гемороиться с null как то не охота
|
|||
49
supremum
25.08.10
✎
18:04
|
+(46)
Переменная есть ссылка на некоторую область памяти. Работа с ней состоит из следующих этапов: 1) Выделение памяти 2) Инициализация 3) Работа с ней 4) Освобождение памяти. и вот какое значение в переменной должно быть после п. 1? Никакого. И в (0), по сути, это и говорится. В 1С этого не будет из-за отсутствия строгой типизации переменных, как в VB. Но есть в 1С так же "мягкая типизация". Вроде это должно упростить жизнь разработчикам. Вот цитата Радченко: " Типизация переменных в языке не жесткая, т. е. тип переменной определяется ее значением. Переменные не обязательно объявлять в явном виде. Неявным определением переменной является ее первое упоминание в левой части оператора присваивания. Возможно также явное объявление переменных при помощи соответствующего оператора. Еще по этому поводу написно здесь: v8.1c.ru/overview/Common... »» По поводу документированности/недокументированности неявного преобразования типов это скорее вопрос здравого смысла, а не вопрос использования тех или иных возможностей. Пишите код в соответствии с синтакс-помощником и тогда этот вопрос отпадет сам собой. " |
|||
50
Расколбас
25.08.10
✎
18:16
|
А NULL из базы кроме как запросом можно вытащить? В таблицах отсутствующее значение и так всегда NULL, несмотря на то какой тип реквизита у таблицы. Может быть и число и строка, а значение будет NULL.
З.Ы. Нифига не понял. |
|||
51
Расколбас
25.08.10
✎
18:19
|
Блин, помню первую тему про NULL и Неопределено, вот народ зажигал. Не хуже чем в ветках про Луну.
|
|||
52
Новенький_2009
25.08.10
✎
18:27
|
просто задумайтесь: в каком пространстве находится автор, вопрошая (0) =)
Надо голосовалку прикрутить было: вы хоть раз над этим задумывались. |
|||
53
supremum
25.08.10
✎
18:32
|
(52) Зачем? Думаю это пространство достаточно объективное.
|
|||
54
sapphire
25.08.10
✎
18:37
|
(49)
Переменная есть ссылка на некоторую область памяти только не внутри 1С. Изначально, память выделяется при инициализации переменной. |
|||
55
supremum
25.08.10
✎
18:54
|
+(49) Нужно добавить еще пункт 0
0) Объявление переменной. После объявления переменная не ссылается на область памяти. Ссылку она получает после пункта 1) Ссылка, в общем случае есть просто адресс памяти - тип pointer в паскале. И вот после объявления переменной ссылка ее будет равна nil, аналог в 1С Неопределено (ИМХО). После п. 2) переменная есть и есть структура и есть под эту струтктуру память. Аналог в 1С ПустаяСсылка(). п. 4) реализуется сборщиком мусора. |
|||
56
supremum
25.08.10
✎
18:58
|
+(55) При этом использование типизированных указателей в паскале весьма просто и красиво решает вопросы в (0).
|
|||
57
Ненавижу 1С
гуру
26.08.10
✎
08:51
|
вы пожалуйста NULL с nil не путайте уважаемые
и вообще не надо объекты путать с stored-данными |
|||
58
patapum
26.08.10
✎
09:01
|
(0) в другой ветке цитировали анекдот:
меня моя жена всем вроде устраивает, но одна поза из камасутры у нее никак не получается... Ненавижу, тебе не кажется, что это и про тебя? А если тебе так не нравится 1с, напиши свою платформу, великую и прекрасную, и, главное, поддерживающую значение NULL!!! |
|||
59
DmitrO
26.08.10
✎
09:10
|
согласен с (0)
|
|||
60
Sammo
26.08.10
✎
09:12
|
Сразу проблемы с операциями сравнения, сумиирования (сколько будет 1 + NULL) и т.д.
Стоит ли овчинка выделки? |
|||
61
Sammo
26.08.10
✎
09:19
|
Хотя есть забавность - в базе числовые (например) numeric, allow nuls = true
В общем, имхо, не сильно востребованная вещь, реализуемая другими методами. |
|||
62
Ненавижу 1С
гуру
26.08.10
✎
09:40
|
(60) проблемы надуманные, 1+NULL даёт NULL, и это каждый страус знает, и нечего тут морочиться
|
|||
63
supremum
26.08.10
✎
09:50
|
(57) Никто и не путает. Просто нужно все разложить по полочкам, тогда станет всем ясно что вы имели ввиду в (0).
|
|||
64
supremum
26.08.10
✎
09:52
|
+(56) Далее, в 1С мы оперируем не таблицами базы данных, а прикладными объектами, которые отображаются в базу.
Логика работы с ними укладывается в (49) и (55). |
|||
65
Ненавижу 1С
гуру
26.08.10
✎
11:19
|
(64) в 1С мы оперируем как записями таблиц (которые названы ссылками) так и прикладными объектами (через ссылки на них как в делфи/шарпе)
|
|||
66
Speshuric
26.08.10
✎
11:26
|
(62) Проблемы-то надуманные, но 1+NULL не всегда NULL:
ВЫБРАТЬ СУММА(Запросик.Значение) КАК Значение, 1 + NULL КАК Значение2 ИЗ (ВЫБРАТЬ 1 КАК Значение ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ NULL) КАК Запросик |
|||
67
Ненавижу 1С
гуру
26.08.10
✎
11:28
|
(66) 1+NULL всегда NULL, а агрегатные функции это совсем про другое
я тоже знаю разницу между СУММА(А+Б) и СУММА(А)+СУММА(Б) |
|||
68
supremum
26.08.10
✎
12:00
|
(65)
1) Пояните мысль, что означит "оперировать записями таблиц, которые названы ссылками". 2) Думаю в (0) справедливее было бы тогда использовать Неопределено. |
|||
69
Ненавижу 1С
гуру
26.08.10
✎
12:02
|
(68) всю жизнь знал про запись таблицы, нов 1С это ссылка на элемент справочника, подмена понятия
неудобно в плане того, что Ссылка в программировании закрепилось за другим понятием |
|||
70
Ненавижу 1С
гуру
26.08.10
✎
12:03
|
(68) вот мы и подошли к главной теме, что нет никакой разницы между НЕОПРЕДЕЛЕНО и NULL, но 1С решило по другому
|
|||
71
supremum
26.08.10
✎
12:36
|
(69) Наверное, все-таки получаем ссылку не на строку БД, а на экземпляр класса элемента справочника, но заполнение его происходит на основании данных таблиц.
(70) Если NULL в смысле третьего правила Кодда, а НЕОПРЕДЕЛЕНО в смысле неинициализированного типизированного указателя, то да, разницы нет ) |
|||
72
Ненавижу 1С
гуру
26.08.10
✎
12:42
|
(71) Ссылка как не крути это ближе к записи, а вот объект это да
про NULL хоть сошлись )) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |