Имя: Пароль:
1C
 
Сегодня придумал, как хранить в одном поле три значения - Да, ложь и неопределено
↓ (Asmody 19.11.2008 17:07)
0 Гений 1С
 
гуру
19.11.08
16:02
Для этого нужно юзать составной тип, в состав которого входит только один тип - булево.
1 Stepa86
 
19.11.08
16:04
Про флажок с тремя состояниями слышал???
2 vde69
 
19.11.08
16:06
я догадался кто автор!!!!

а нафига? ведь составной тип и места жрет и медленее работает, проще число хранить
3 tsr
 
19.11.08
16:06
(1) Тьфу на тебя. Все испортил. Тут уже очередь выстроилась гению аплодировать
4 Живой Ископаемый
 
19.11.08
16:06
больше неопределенностей, хороших и разных... Лапиталя на вас нет, ироды!
5 Defender aka LINN
 
19.11.08
16:07
Да создайте вы уже Гению отдельную секцию...
6 Aprobator
 
19.11.08
16:07
(2) как нафига? На работе заняться нечем, вот и лезет в голову всякая хрень.
7 Aprobator
 
19.11.08
16:08
(5) и забор вокруг этой секции не забыть, чтоб не вылез.
8 Garlic
 
19.11.08
16:08
(5)О!
9 Rebelx
 
19.11.08
16:11
я тоже как-то сразу угадал автора.
однако вопрос к автору: а ты пробовал сделать составной тип с единственным типом?
10 Ленинград
 
19.11.08
16:11
)))жжоте каждый день
птрююю
11 hhhh
 
19.11.08
16:15
(5) Гениев надо беречь
12 Fragster
 
гуру
19.11.08
16:16
судя по набору значений - это перечисление со значениями "Да", "Ложь" и "Неопределено"...
13 Господин ПЖ
 
19.11.08
16:17
(0) ты эту хрень по 50 раз в день на SMS и высылаешь?
14 Hitcher
 
19.11.08
16:20
Тогда я придумал новые значения булево:)

Военное булево "Так точно", "Никак нет".
Женское булево "Ни да, ни нет"
15 Aprobator
 
19.11.08
16:21
(12) Выбор из списка 1 2 3 со своими представлениями. Хотя, может имеется ввиду одновременное хранение :))).
16 ShoGUN
 
19.11.08
16:22
(14) Женское булево - "Может быть"
17 Fragster
 
гуру
19.11.08
16:24
(15) битовая маска? тогда силен ;)
18 LamerSuper
 
19.11.08
16:24
Есть сопособ хранить в одном поле 2 147 484 646 градаций сосотояния да...нет.
19 LamerSuper
 
19.11.08
16:25
Пардон 2 147 483 646
20 zag2art
 
19.11.08
16:25
Топикстартер говорит про "Да, ложь и неопределено" и булевый тип. Интересно где здесь "Истина" затесалась....
21 YauheniL
 
19.11.08
16:26
(0) В С используются константы, определенные define для этих целей (соответсвенно в 1с можно числа приспособить).

А еще можно перечисление создать
22 ShoGUN
 
19.11.08
16:27
(20) "Я в жизни прочитал три книги - букварь, вторую и зеленую"(с)
23 КонецЦикла
 
19.11.08
16:28
Узнал автора как всегда
И как всегда жесть...
24 nop
 
19.11.08
16:29
(0) И как мы без этого писали?
25 Vitello
 
19.11.08
16:32
(24)Так мы ж темнота...
26 globalasax
 
19.11.08
16:32
(0) имеет смысл для хранения числа, т.к. значение 0 не всегда означает, что значение не указано.
27 AlexSSSS
 
19.11.08
16:33
(0) как и все сразу понял кто автор
и как обычно - очередная кучка мозгового дерьмеца
28 nop
 
19.11.08
16:36
(26) 0 -он во всех языках всегда был 0 когда не указанно. А в некоторых "не указано" может быть равно любому числу, - зависит от того была ли очищена память после выделения под переменную
29 Гений 1С
 
гуру
19.11.08
16:36
(0) Сори - лажанулся, действительно составной тип только из булеов не получишь. Идея была в чем - есть реквизит типа булево, уже заполнен, чтобы не менять на числовой в базе и не менять алгоритмы поменять на составной.. ;-)
30 Гений 1С
 
гуру
19.11.08
16:37
(16) Про женскую логику - жесть
31 rs_trade
 
19.11.08
16:38
(26) читай выше - составной тип, в состав которого входит только один тип - булево. нету тут чисел...
32 AlexSSSS
 
19.11.08
16:38
(29) видно осенний спермотосикоз дошел до высшей точки....
33 Живой Ископаемый
 
19.11.08
16:38
28, и в СКЛе тоже?
34 Serg_1960
 
19.11.08
16:44
Автор "гениально" умеет народ заводить с пол-оборота. Один раз вякнул - а эхо до сих пор в ушах звенит...
Общий диагноз: аллергия на гения :)
35 nop
 
19.11.08
16:45
(33) естественно что нет. В SQL - тоже нет "не заполнено", если я не ошибаюсь, всегда 0, если тип поля числовой
36 Fragster
 
гуру
19.11.08
16:45
(35) в скуле есть значение NULL
37 nop
 
19.11.08
16:46
(36) Поле типа Integer может иметь значение NULL ?
38 vde69
 
19.11.08
16:47
(36) это не значение и не тип
39 luns
 
19.11.08
16:47
(34) Да не... он классный, мы всегда с интересом следим за его творчеством.. Вот был бы он политиком был бы... ну вы знаете.
Вон товарищь рядом сидит и ржот... от пятничных веток обычно меньше...
40 ShoGUN
 
19.11.08
16:48
(35) В SQL есть Null, он может быть в полях любого типа. Его можно запретить, но только для конкретных полей.
41 Fragster
 
гуру
19.11.08
16:48
(37) не знаю, как MSSQL, но в MySQL - может
42 vde69
 
19.11.08
16:48
(37)
на мой взгляд самый близкая расшифровка
NULL - отсутствие поля
43 Живой Ископаемый
 
19.11.08
16:49
(37) ну как, почитал ответы?
44 nop
 
19.11.08
16:50
(40) надо бы запретить по умолчанию. Нафига лишний байт для каждого поля каждой записи. Ещё и постоянная проверка поля таблицы на то может ли он содержать НУЛ, и содержит ли его запись.
45 Fragster
 
гуру
19.11.08
16:51
(44) запрещай...
46 ShoGUN
 
19.11.08
16:51
(42) Ну вообще-то NULL - это как раз значение :) Неопределенное значение. Хотя это вопрос терминологии... Общая интерпретация такого значения - отсутствует. Конкретная интерпретация зависит от назначения поля.
47 Живой Ископаемый
 
19.11.08
16:52
(44) Как будто типовых ни разу не видел.. Да, постоянно и проверяют...
48 nop
 
19.11.08
16:53
(47) Для меня 0 и НУЛ - одно и то же значение
49 ShoGUN
 
19.11.08
16:54
(44) В 1с-овских таблицах как раз NULL не используется, поэтому оно и возникает только в случае JOIN-ов в запросах.
50 Живой Ископаемый
 
19.11.08
16:54
(48) ага, и предложению ИТОГ - разные...
51 Fragster
 
гуру
19.11.08
16:55
(48) ну хорошо, вот Найти() нумерует символы с 0... а если не нашло - возвращает аналог NULL - Неопределено...
52 ShoGUN
 
19.11.08
16:55
(48) А если поле - не числовое, а типа DateTime или строка? Или вообще BLOB?
53 nop
 
19.11.08
16:59
(52) Есть диапазон допустимых значений для переменной. Например 0 - недопустимое. DateTime = 0 - не заполнено, строка - байт длинны строки (для перемнных) = 0 - не заполнено, для постоянных - отсутствие символа с кодом 0 в первом байте строки.
BLOB - аналогично строке переменной длинны имеет заголовок с размером "объекта".
54 ShoGUN
 
19.11.08
17:01
(53) Ты не проектировщик СУБД часом? :)
55 nop
 
19.11.08
17:01
(51) Всякие НУЛЫ, НЕОПРЕДЕЛЕНО - это от лукавого. Это приколы конкретной библиотеки или среды разработки. Можно например вместо НЕОПРЕДЕЛЕНО - найти вернуть число 0
56 vde69
 
19.11.08
17:02
кстати дискусия вполне грамотная пошла, ничего что к сабжу не относиться!

мне нравиться такой подход к обсуждению гениАльных идей
57 ShoGUN
 
19.11.08
17:02
+(54) И чем предложенное тобой отличается от NULL-значений? Я ж не знаю как они хранятся на физическом уровне. Может именно так, как ты описал?
58 ShoGUN
 
19.11.08
17:04
(55) Не знаю, мне бы как-то странно было без неопределенных значений. По логике они иногда нужны бывают. А как они хранятся - это уж вопрос эффективности реализации конкретной СУБД.
59 Живой Ископаемый
 
19.11.08
17:05
(56) Просто смысл привносить в тему личностное отношение? Мы ведь умеем абстрагироваться, в отличие от животных...
60 nop
 
19.11.08
17:06
(54) баловался в универе. Зачем моим скромным программкам целый СКЛ ?
61 vde69
 
19.11.08
17:08
(57) SQL хранит это дело страницами, в каждой странице одна или несколько строк таблици, строка не фиксированой длинны, для каждого поля используються разделителиОписатели, если его нету - это м есть null,
тоесть это когда в структуре есть поле а в данных строки его физически нету
62 trad
 
19.11.08
17:08
А еще замечено, что NULL похож на черную дыру.
NULL всасывает в себя со всех сторон все материальные значения и не позволяет им покинуть себя.
Подтвержение тому:
1000 + NULL + 1000 - есть NULL
"Строка 1" + NULL + "Строка 2" - есть NULL

ps
нахождение NULL рядом с нормальными данными (особо типа ДатаВремя) искажает их. Будте внимательны!

:))
63 ShoGUN
 
19.11.08
17:09
(60) Просто я к тому, что ты слишком много внимания более низкому уровню уделяешь. И мало внимания прикладным задачам. А они ой какие разные бывают, логика может быть самой причудливой, и неопределенные значения далеко не всегда лишние.
64 Bober
 
19.11.08
17:10
(0) Интересно, как ты добился, чтобы реквизиту назначался составной тип состоящий из одного типа.
А что делать с ОписаниеТипов при ПривестиЗначение?
65 vde69
 
19.11.08
17:11
(61) NULL для кода - это указатель на $FFFFFFF такого адреса памяти не существует
66 Живой Ископаемый
 
19.11.08
17:13
(64) Он и не добился.. Думал, что добился...
67 nop
 
19.11.08
17:13
(57) Выходит что для хранения NULL используется либо 1 бит из поля-владельца (что то же самое что диапазон значений - 1значение), либо дополнительное целое поле длинной в 8 бит, либо в конце записи (данных полей) БД служебная запись длинной в количество_колонок записи (данных полей). Последние по моему самый лучший вариант
68 nop
 
19.11.08
17:14
(65) Интерпретаторов это не касается
69 vde69
 
19.11.08
17:15
(67) для хранения в базе SQL значения NULL используеться 0бит см (61), а в памяти это обычный указатель (вроде 4 байта)
70 Bober
 
19.11.08
17:15
(64) -> (29) теорию загубил опыт
71 Джинн
 
19.11.08
17:16
(5) Лучше отдельный Интернет.
72 nop
 
19.11.08
17:17
(69) вникаю ... (покурю пока)
73 nop
 
19.11.08
17:29
vde69 я не пойму одного: если тип значения поля определен не как ссылочный, а как элементарный (строка, число, дата, булево) то каким образом после считывания с фиска (винчестера) выходит НУЛЬ ? Получается значит либо все типы ссылочные, либо у элементарных есть дополнительный байт, бит, запись ?
74 ShoGUN
 
19.11.08
17:34
(73) Мы про 1с или про скуль? :) Если про последний, то какие там нафиг ссылочные типы?
75 nop
 
19.11.08
17:37
(74) ссылочным я называю поле связующие одну таблицу с другой
76 Ненавижу 1С
 
гуру
19.11.08
17:39
NULL нужен, а всякие Неопределено и пустые ссылки нах не надо
77 ShoGUN
 
19.11.08
17:39
(75) Так оно числовым может быть. Легко. И GUID вроде тоже числовое значение... Я непонимаю, в чем вопрос? В конечном счете все типы данных - элементарные.
78 ShoGUN
 
19.11.08
17:40
*(77)непонимаю - не понимаю
79 nop
 
19.11.08
17:46
(77) "В конечном счете все типы данных - элементарные."
отож! и где НУЛ и как хранится - непонятно
80 ShoGUN
 
19.11.08
17:52
(79) Ну я верю vde69 в (61). То бишь для каждого поля есть еще и описатель. Если по-твоему изъясняться, то получается, что "все типы ссылочные". Или я че-то не понимаю.
81 nop
 
19.11.08
17:57
(80) Я тоже понимаю так что ссылочные
82 КонецЦикла
 
19.11.08
20:53
Пепец знатоки епвашумать
Откройте книгу по MS SQL да прочитайте
83 ShoGUN
 
19.11.08
21:01
(82) У меня есть талмуд :) Дело-то не в этом.
84 nop
 
20.11.08
10:37
(82) нах надо, оно и без меня 100 лет нормально работает