Имя: Пароль:
1C
1С v8
ПустаяСсылкаСправочник.ПолныйКод() - ошибка, но ПустаяСсылкаСправочник.Код = ""
0 НЕА123
 
11.11.16
10:02
почему так?
1 Cyberhawk
 
11.11.16
10:03
Наверное, потому что полный код шерстит всех родителей
2 Лефмихалыч
 
11.11.16
10:04
потому, что Родитель есть null у пустой ссылки
3 butterbean
 
11.11.16
10:07
(2) гонишь, там пустая ссылка
5 НЕА123
 
11.11.16
10:08
(1)(2)(3)
ага. опять NULL.

ПустаяСсылкаСправочник.Родитель.Родитель.Родитель.Код = ""

(3)
из серии NULL=NULL в языке, но NULL<>NULL
6 Лефмихалыч
 
11.11.16
10:08
(3) это, если ты в коде вызываешься ПустаяСсылка().Родитель. А вот запрос, который собирает полный код, получает null
7 НЕА123
 
11.11.16
10:10
со всеми согласен, но почему бы пустую строку не вернуть при NULL?
8 НЕА123
 
11.11.16
10:12
(7)+
хотя, этот вопрос, наверно не к форуму.
9 Лефмихалыч
 
11.11.16
10:19
(7) наверное, на это есть причина какая-то
10 NafBF
 
11.11.16
10:26
Потому что методы у пустых ссылок вызывать нельзя, а вот свойства читать можно.

Кстати, тут нигде NULL нет. Это же не запрос
11 НЕА123
 
11.11.16
10:30
(10)
>Потому что методы у пустых ссылок вызывать нельзя
не знал.
юзаю Ссылка.Пустая()
12 NafBF
 
11.11.16
10:32
(11) согласен,  значит не все методы
13 Лефмихалыч
 
11.11.16
10:35
(10) внутри функции ПолуныйКод() абсолютно точно запрос
14 NafBF
 
11.11.16
10:35
+(12) определить пустую, УУИД и метаданные можно
15 NafBF
 
11.11.16
10:36
(13) любое чтение свойства ссылки тоже ведь запрос
тем не менее
ТипЗнч(Справочники.Валюты.ПустаяСсылка().Код)=Тип("Строка")
без всяких NULL
16 Лефмихалыч
 
11.11.16
10:37
да и ранье это, что нельзя методы вызывать. Вызывай наздоровье, толлько нен вввсе они успешно завершатся. Пустая() и Метаданные(), например не опираются на данные объекта, по этому отлично выполняются. А вот ПолныйКод() получает данные по ссылке из БД и потому валится.
17 Лефмихалыч
 
11.11.16
10:37
(15) потому, что геттер подсовывает тебе значение по умолчанию
Основная теорема систематики: Новые системы плодят новые проблемы.