|
Почему Неопределено не может быть ключом соответствия? | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Ненавижу 1С
гуру
30.01.12
✎
17:24
|
С = Новый Соответствие();
С.Вставить(Неопределено); Сообщить(С.Количество()); //выдает 0 С = Новый Соответствие(); С.Вставить(NULL); Сообщить(С.Количество()); //выдает 1 вопрос: почему? это фича или баг? |
|||||||||||||
1
Maxus43
30.01.12
✎
17:25
|
нельзя объять необятное, нельзя описать неописуемое и нельзя впихнуть невпих*емое (с)
традиционно |
|||||||||||||
2
IamAlexy
30.01.12
✎
17:27
|
(0) бгыыыыыыыыыыы
|
|||||||||||||
3
Ненавижу 1С
гуру
30.01.12
✎
17:29
|
Ну реально ударился лбом об это
|
|||||||||||||
4
Maxus43
30.01.12
✎
17:36
|
зачем хоть это надо? или просто любимая тема?)
|
|||||||||||||
5
SUA
30.01.12
✎
17:49
|
это 1с...
традиционно |
|||||||||||||
6
rs_trade
30.01.12
✎
17:55
|
(0) тебе надо доступ дать к партнерскому форуму. знатно троллить там разработчиков будешь ))
традиционно |
|||||||||||||
7
H A D G E H O G s
30.01.12
✎
18:02
|
Неопределено - это что то непонятное, неинициализированное. Это даже не NULL.
фича |
|||||||||||||
8
fisher
30.01.12
✎
18:04
|
У меня уже ассоциативный ряд "Неопределено-NULL-Ненавижу 1С" на подкорку записан :)
А если по теме, то такое поведение полностью укладывается в мою модель логики 1С. В которой "Неопределено" - родное пустое значение 1С (с ньюансами использования), NULL в коде - служебный тип для обработки выборок из БД, а NULL в запросе - субедешный NULL. традиционно |
|||||||||||||
9
Sammo
30.01.12
✎
18:05
|
Емнип, в коллекциях значений Неопределено - это отсутвие элемента коллекции (например, вернуть соответствие по несуществующему ключу)
|
|||||||||||||
10
Rie
30.01.12
✎
18:07
|
(9) Тем не менее, в список значений Неопределено можно добавить (в отличие от 7.х). И в массив можно.
традиционно |
|||||||||||||
11
fisher
30.01.12
✎
18:12
|
(10) Мда... С соответствием как-то кривовато получилось...
багофича |
|||||||||||||
12
Sammo
30.01.12
✎
18:13
|
(11) Не пробовал. Возможно.
А что там с индексированностью соответсвия? |
|||||||||||||
13
Shurjk
30.01.12
✎
18:14
|
(0) У непределенно нет типа.
традиционно |
|||||||||||||
14
Эмбеддер
30.01.12
✎
18:15
|
Насколько я помню, если в SQL написать условие
where NULL<>NULL оно не выполнится а если where NULL IS NULL то выполнится так что странно, что NULL добавился |
|||||||||||||
15
Эмбеддер
30.01.12
✎
18:16
|
опечатка
where NULL=NULL вместо where NULL<>NULL хотя не выполнятся оба этих условия |
|||||||||||||
16
fisher
30.01.12
✎
18:20
|
(11) + Полезная ветка. Ситуация вполне реальная, мог бы упереться. Теперь буду знать.
|
|||||||||||||
17
Sammo
30.01.12
✎
18:21
|
+12 Емнип, поиск в соотвествии быстрее, чем в списке значений и массиве. Возможно (зуб не дам, сейчас не помню) там неявный индекс по ключу.
И как проиндексировать кНеопределено? |
|||||||||||||
18
fisher
30.01.12
✎
18:24
|
(17) Да никаких проблем. Ты же не думаешь в самом деле, что Неопределено в 1С это абстрактная сущность? Технически это служебный тип.
|
|||||||||||||
19
Rie
30.01.12
✎
18:25
|
(13) Есть у него тип.
Сообщить(ТипЗнч(Неопределено)); |
|||||||||||||
20
DJ Anthon
30.01.12
✎
18:25
|
я вот в соседней ветке в похожую херню вляпался. пустую строку нельзя добавлять в интерактивный список..
|
|||||||||||||
21
DJ Anthon
30.01.12
✎
18:25
|
в 7.7 ;)
|
|||||||||||||
22
Shurjk
30.01.12
✎
18:26
|
(18) Какой же это тип - для каждого типа характерно иметь значение по умолчанию.
|
|||||||||||||
23
Shurjk
30.01.12
✎
18:27
|
(19) Неопредлено - это он сообщает не тип а то что тип неопределен.
|
|||||||||||||
24
DrShad
30.01.12
✎
18:29
|
(0) а реально для чего в соответствии нужен Неопределено?
|
|||||||||||||
25
Rie
30.01.12
✎
18:41
|
(23) Это он сообщает именно тип - преобразует в строку значение типа Тип.
Можешь проверить так: Сообщить(ТипЗнч(Неопределено)=Тип("Неопределено")); |
|||||||||||||
26
Shurjk
30.01.12
✎
18:43
|
(25) А нет ага все таки тип- но всего с единственным значением.
Да уж явно здесь немного перемудрили. |
|||||||||||||
27
Shurjk
30.01.12
✎
18:45
|
+(26) Значит примерно так будет, а то какая то явное "неопределенность" выходит :)
баг |
|||||||||||||
28
Rie
30.01.12
✎
18:48
|
(26) Почему "перемудрили"? Типов с единственным значением - выше крыши. Более того, нечто типа нуля для чисел - для типов тоже требуется. Вот и... Да и используется Неопределено - в случае для составных типов и иже с ними, когда "значение по умолчанию" сколь-нибудь разумным способом не задать.
Дискуссию насчёт NULL и Неопределено ещё можно понять. Но насчёт необходимости Неопределено - IMHO, тут достаточно прозрачно. |
|||||||||||||
29
Shurjk
30.01.12
✎
18:50
|
(28) Ну если используется как тип то почему бы его не вставить в соответствие? Хотя автор в (0) вообще как то странно соответствие использует.
|
|||||||||||||
30
Shurjk
30.01.12
✎
18:52
|
(28) не, не все таки традиционно NULL это не значение а скорее признак отсутствия значения, а Неопределенно - это тип о чем черном по белому в СП и написано. При разработке я например буду думать что это тип и поэтому могу сделать ошибки.
|
|||||||||||||
31
Shurjk
30.01.12
✎
18:53
|
То есть вопрос не в том нужно непоределено или нет, а в том как оно работает в соответствии.
|
|||||||||||||
32
Shurjk
30.01.12
✎
18:56
|
Тьфу блин навел ТС мути все правильно он просто не знает как соответствием пользоваться
|
|||||||||||||
33
Rie
30.01.12
✎
19:02
|
(30) И ещё раз удивись :-)
Сообщить(ТипЗнч(Null)); Сообщить(+Строка(ТипЗнч(Null)=Тип("Null"))); |
|||||||||||||
34
Ненавижу 1С
гуру
31.01.12
✎
06:37
|
(28) имхо в 1С их всего 2: NULL и Неопределено
|
|||||||||||||
35
guitar_player
31.01.12
✎
06:53
|
да все логично в принципе
традиционно |
|||||||||||||
36
Кириллка
31.01.12
✎
06:57
|
Народ неадекватен :)
Неопределено - это примитивный тип данных (ИТС - Документация - Руководство разработчика - Глава 4). А по забжу: С.Вставить(Неопределено) == С.Вставить(,), отсюда и выводы. традиционно |
|||||||||||||
37
Rie
31.01.12
✎
07:02
|
(34) СправочникМенеджер.Номенклатура, СправочникМенеджер.Контрагенты, СправочникМенеджер.Валюты и т.д. - у всех этих типов ровно по 1 значению.
|
|||||||||||||
38
Рэйв
31.01.12
✎
07:04
|
(0)забацай так тогда
С=Новый Соответствие; С.Вставить("Это неопределено",Неопределено); баг |
|||||||||||||
39
FIXXXL
31.01.12
✎
07:53
|
(38) лучше так:
С=Новый Соответствие; С.Вставить("ЗдесьБылНенавижу1С",Неопределено); |
|||||||||||||
40
Ненавижу 1С
гуру
31.01.12
✎
10:38
|
(37) это не типы вообще, тип один - СправочникМенеджер
|
|||||||||||||
41
Reset
31.01.12
✎
10:50
|
(40)
а=Справочники.Валюты; б=Справочники.Контрагенты; Сообщить(ТипЗнч(а)); Сообщить(ТипЗнч(б)); Сообщить(а=б); Сообщить(ТипЗнч(а)=ТипЗнч(б)); .... Справочник менеджер: Валюты Справочник менеджер: Контрагенты ложь ложь Не? |
|||||||||||||
42
Reset
31.01.12
✎
10:54
|
.
багофича |
|||||||||||||
43
Ненавижу 1С
гуру
31.01.12
✎
10:58
|
(41) согласен
|
|||||||||||||
44
Ненавижу 1С
гуру
31.01.12
✎
12:34
|
И еще: а нафига?
С = Новый Соответствие(); С.Вставить("А"); С["А"] = 5; //так можно Для каждого Эл из С Цикл Эл.Значение = 5; //а так нельзя?! КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |