Имя: Пароль:
1C
1С v8
Для чего нужна пустая ссылка?
,
0 VadymK
 
16.09.14
11:56
Вот, например, НайтиПоКоду(100500) может вернуть пустую ссылку.
Почему так придумано?
Почему бы просто не вернуть значение Неопределено?
1 Зойч
 
16.09.14
11:58
Еще один
2 Зойч
 
16.09.14
11:58
А еще бывает NULL
3 18plus
 
16.09.14
11:58
коммент про сырую восьмёрку.
4 Dmitry1c
 
16.09.14
11:58
(0) потому что пустая ссылка у тебя указывает на тип

если ты вернешь из процедуры Неопределено, твой тип будет не известен
5 Kamas
 
16.09.14
11:58
(0) неопределенно это когда мы не знаем что это, а когда знаем то возвращаем пустое значение. Для цифры это 0 а для справочника пустая ссылка.
6 hockeyist
 
16.09.14
11:58
(0) Пустая ссылка - это деловое сообщение, а "неопределенно" - мягкая форма мата.
7 ДенисЧ
 
16.09.14
11:59
Неопределено - это вообще неизвестно что.
А пустая ссылка - это типизированное Неопределено.
8 КонецЦикла
 
16.09.14
12:00
неопределено он не может вернуть... ты получаешь конкретный элемент, т.е. тип и вид у него есть. допустим, для того чтобы его куда-то записать в виде ссылки... все логично
9 hockeyist
 
16.09.14
12:01
+(6) Или так:
Пустая ссылка - проблема на стороне системы.
Неопределенно - проблема на твоей стороне.
10 18plus
 
16.09.14
12:01
(8) тоже СП не читал :)
11 ДенисЧ
 
16.09.14
12:01
(8) Может. НайтиПоКоду() возвращает неопределено, если у справочника длина кода 0
12 Smit1C
 
16.09.14
12:02
Существует значение Неопределено - оно применяется в основном как значение по умолчанию реквизитов (а также колонок таблиц значений и т.д.), имеющих составной тип. То есть, если в некотором реквизите могут содержаться значения более чем одного типа, то по умолчанию этот реквизит будет иметь значение Неопределено.  

Для большинства типов существуют значения по умолчанию, то есть значения, устанавливаемые системой в реквизите (колонке таблицы значений и т.д.) если для него задан соответствующий тип. Например, для числа – пустым значением является 0, для строки – строка, не содержащая ни одного символа, для даты – дата начала отсчета ('00010101').
Для типов ссылок на объекты базы данных существуют значения пустых ссылок. Их можно получить у соответствующих менеджеров вызовом метода ПустаяСсылка(). Именно это значение является значением по умолчанию для соответствующих типов. Заметим, что если реквизит имеет составной тип, включающий тип ссылки на объект базы данных, то данному реквизиту можно присвоить как значение Неопределено, так и значение соответствующей пустой ссылки. Соответственно в этих двух случаях будут храниться два разных значения. Решения, какое значение присваивать зависит от прикладного смысла. Например, если реквизит может иметь значения двух ссылочных типов и, исходя из значений других реквизитов, очевидно, что в нем должно быть значение определенного (одного из этих двух) ссылочного типа, но конкретная ссылка еще не выбрана пользователем, то можно присвоить значение пустой ссылки соответствующего типа. Например, это необходимо для того, чтобы поле ввода позволило бы пользователю ввести значение необходимого типа. А если, исходя из значений других реквизитов, этот реквизит вообще не должен быть заполнен, то тогда ему нужно присвоить значение Неопределено.
13 КонецЦикла
 
16.09.14
12:02
да пофигу как-то
14 Один С
 
16.09.14
12:04
(13) разве ты не хочешь написать, что пустая ссылка - это определенный тип значения, а неопределено - это непонятно что?
15 kumena
 
16.09.14
12:08
а как отделить хорошую ссылку от битой, типа <Объект не найден> (107:8b2b00016c3c37b011dee5a472b75175)

?
16 18plus
 
16.09.14
12:08
(15) пробуй получить объект
17 kumena
 
16.09.14
12:08
т.е. определить
18 kumena
 
16.09.14
12:09
я думаю создастся новый пустой
19 kumena
 
16.09.14
12:09
т.е. с этой ссылкой
21 18plus
 
16.09.14
12:10
по битой ссылке получитьобъект вернёт неопределено
22 18plus
 
16.09.14
12:10
в сп всё написяно
23 ObjectRelation Model
 
16.09.14
12:12
ВЫБРАТЬ
  РЕГИСТРАТОР.ССЫЛКА
ИЗ
  РЕГИСТРНАКОПЛЕНИЯ.ПРОДАЖИ
ГДЕ
  РЕГИСТРАТОР=&БитаяСсылка

выдаст NULL
24 kumena
 
16.09.14
12:14
>> по битой ссылке получитьобъект вернёт неопределено

верно!
25 hockeyist
 
16.09.14
12:14
(23) Это потому, что ты левое соединение включаешь. Разумеется будет в результате NULL.
26 18plus
 
16.09.14
12:15
ВЫБРАТЬ
  РЕГИСТРАТОР.ССЫЛКА
ИЗ
  РЕГИСТРНАКОПЛЕНИЯ.ПРОДАЖИ
ГДЕ
  РЕГИСТРАТОР.ССЫЛКА ЕСТЬ NULL
27 aka AMIGO
 
16.09.14
12:21
ЗЫ. ИМХО. в реляционной базе (к которой относится 1с77, а не 8 !!! ) функция "добавить пустую запись" - вполне законна, и специально спроектирована в таких СУБД..
по этой функции в конце файла DBF появляется пустая ссылка, со всеми незаполненными реквизитами таблицы, и эти реквизиты можно заполнять.. и обращаться с этой записью наравне со всеми другими.
а потом записать(), уже в файл
28 Kamas
 
16.09.14
12:22
(26) и что это тебе вернет??
29 18plus
 
16.09.14
12:25
(28) по идее всех битых регистраторов.
различные ещё пририсовать надо
30 Зойч
 
16.09.14
12:26
(23) НЕ ВЕРНО.
Вообще ничего не выдаст
31 ObjectRelation Model
 
16.09.14
12:28
(30) если там битая ссылка есть, то выдаст
32 Lama12
 
16.09.14
12:28
Искать в базе данных запросом быстрее то, что там есть, нежели  то, чего там нет.
Отчасти, пустая ссылка это искусственный способ ускорить работу СУБД.
Физически, пустая ссылка в базе данных ведь есть.
Да и объектная модель накладывает свои ограничения.
33 Kamas
 
16.09.14
12:31
(29) что всех битых регистраторов?? ссылки которые null))
34 Kamas
 
16.09.14
12:33
(33) не вопросов нет битые ссылки отобраны, но что вернется))
35 КонецЦикла
 
16.09.14
12:50
О, тут целый диспут...
36 18plus
 
16.09.14
12:52
(34) а, ну да, должно быть ВЫБРАТЬ РЕГИСТРАТОР
37 Зеленый пень
 
16.09.14
13:02
(31) Фиг вам. Битая ссылка - это ИД, который есть, например, в таблице регистра, но которого нет в основной таблице документов. Т.е. в колонке регистра значение очень даже не NULL.
Вот в (28) - правильно, т.к. там будет соединение с основной таблицей по ИД.
38 Зойч
 
16.09.14
13:02
(31) Понял. Движения по битым регистраторам
39 VadymK
 
16.09.14
15:39
(10) Что такое СП?
40 18plus
 
16.09.14
15:43
(39) синтаксис помощник
http://v8.1c.ru/overview/Term_000000092.htm
41 Timon1405
 
16.09.14
15:46
(40) каждый раз когда кто-то называет синтакс-помощник синтаксис-помощником, в мире грустит один мужик в квадратной шапке
42 18plus
 
16.09.14
15:48
(41) :) чёт я даже внимания никогда не обращал.
мужика жалко, да.
43 Maximysis
 
16.09.14
15:52
Сегодня что открылся хит парад глупых вопросов!?!
У гугля лень спросить!!!
44 vde69
 
16.09.14
16:08
пустая ссылка имеет свой гуид, в этом смысле пустая ссылка это предопределенный элемент справочника...

а обрабатывать всякие сравнения, да и другие обьектные свойства так намного проще...
45 vde69
 
16.09.14
16:09
(44) кстати пустая ссылка кроме гуида имеет ИНДЕКС в таьлице справочника, поэтому всякие соединения по пустой ссылке работают быстро....
46 18plus
 
16.09.14
16:11
(43) по-моему миста и есть то место, куда идут спрашивать, когда не умеют пользоваться гуглом.
47 VadymK
 
17.09.14
12:07
(12) Спасибо!
48 VadymK
 
17.09.14
12:10
(40) Уже нагуглил. СП - это синтакс *опа...
49 VadymK
 
17.09.14
12:13
(46) Нет нормального мануала по 1С, по-этому иду сюда. Спасибо за понимание тем, кто по уровню выше.
50 Зойч
 
17.09.14
12:17
(45) Что за индекс в таблице справочника?
51 Рэйв
 
17.09.14
12:20
(0)В 7.7 если значение реквизита не заполнено, а ты пытаешься взять от него чтото через точку, то все вываливалось с синитаксической ошибкой.
В 8-ке сделали заглушку для незаполненных значений, специальный объект с пустыми полями и теперь если к незаполненному реквизиту применишь .Чтото, то ошибки не будет, а просто получишь   еще одно пустое значение.
Правда реквизиты составного типа - это отдельная история.Они незаполненные = неопределено пока не выберишь тип
Основная теорема систематики: Новые системы плодят новые проблемы.