Имя: Пароль:
1C
1С v8
ПустаяСсылка() и ПолучитьОбъект()
0 Beduin
 
17.10.11
17:01
Собственно. Почему недоступен метод?
1 Beduin
 
17.10.11
17:02
(0) ПустаяСсылка().ПолучитьОбъект() - вот так
2 trambalda
 
17.10.11
17:03
А почему он должен быть доступен?
3 Maxus43
 
17.10.11
17:03
что он получит?
4 Maxus43
 
17.10.11
17:04
нет объекта то, пустота там
5 Beduin
 
17.10.11
17:04
(2) Потому что возвращает объект СправочникСсылка
6 Beduin
 
17.10.11
17:04
(4) Про пустоту понятно. Вопрос почему метод недоступен.
7 Maxus43
 
17.10.11
17:04
(5) пустой, грубо говоря тип возвращает
8 andrewks
 
17.10.11
17:05
и чо?
9 Beduin
 
17.10.11
17:05
ПолучитьСсылку().ПолучитьОбъект()
Вот для этого метода тоже СправочникСсылка и метод доступен.
10 Beduin
 
17.10.11
17:06
(7) Ну и пусть пустой тип. Метод то зачем они заблокировали.
11 Maxus43
 
17.10.11
17:06
(9) всмысле доступен? в подсказке методов?
12 Beduin
 
17.10.11
17:06
(8) Ни чо. Код приходится лишний писать из за этого.
13 Beduin
 
17.10.11
17:07
(11) В вызове. В табло набери.
Справочники.Организации.ПолучитьСсылку().ПолучитьОбъект()
Справочники.Организации.ПустаяСсылка().ПолучитьОбъект()
14 Jstunner
 
17.10.11
17:08
а чтоб ты делал с "пустым" объектом?
15 rotting
 
17.10.11
17:08
(14) проверял бы на пустоту))))
16 trambalda
 
17.10.11
17:09
(5) ПустаяСсылка() возвращает значение типа СправочникСсылка, а не объект СправочникСсылка.
17 Beduin
 
17.10.11
17:09
(14) Вот люди.)
               СсылкаСпрОрганизации = СпрОрганизации.ПолучитьСсылку(Новый УникальныйИдентификатор(глБаза.String(Выборка.ОбособленноеПодразделение.УникальныйИдентификатор())));
               Если СсылкаСпрОрганизации.ПолучитьОбъект() = Неопределено Тогда
                   ЗаписьРегистра.ОбособленноеПодразделение = СсылкаСпрОрганизации.Ссылка;
               КонецЕсли;
Для этого кода приходится проверку еще писать из за этого.
18 Beduin
 
17.10.11
17:10
(16) Почитай еще что возвращает метод ПолучитьСсылку()
19 Jstunner
 
17.10.11
17:11
(17) бред какой-то. Там вообще объект не нужен
20 Maxus43
 
17.10.11
17:11
(17) ну что делать... надо не ленится значит
21 Beduin
 
17.10.11
17:12
(19) Ок. А как узнать есть ли объект с данным ГУИД в базе или нет?
22 Maxus43
 
17.10.11
17:12
кстати да, Если Если СсылкаСпрОрганизации.Пустая() не катит?
23 Beduin
 
17.10.11
17:13
(22) Нет. Если ГУИД не пустой то Пустая() всегда истину возвращает. Неважно есть ли физически объект в базе или нет.
24 Zolotko
 
17.10.11
17:15
(21) насколько я понимаю тебе надо перебрать все объекты метаданных и сделать для них xmlЗначение(Тип, ГУИД).
25 Beduin
 
17.10.11
17:17
(24) Перебирать не нужно.
В этой теме мне необходимо узнать чем отличаются возвращаемые значения
для методов ПолучитьСсылку() и ПустаяСсылка()
26 PR
 
17.10.11
17:19
(25) У тебя каша в голове
27 Beduin
 
17.10.11
17:20
(26) Ок. Каша сварится.
Объяснить можешь чем отличаются возвращаемые значения?
28 Inform
 
17.10.11
17:20
(25) ПолучитьСсылку() возвращает ссылку по идентификатору, не всегда пустая
а ПустаяСсылка() всегда возвращает пустую ссылку
дальше ссылку можно проверять на заполненность: Пустая(), ЗначениеЗаполнено()
29 Beduin
 
17.10.11
17:22
(28) Почему в СП указано что тип возвращаемого значения одинаков?
30 trambalda
 
17.10.11
17:23
(21) А ЗначениеИзСтрокиВнутр разве не годится тут?
Зачем эта красивая строка с ПолучитьСсылку...
31 Inform
 
17.10.11
17:23
А почему тип у пустой ссылки справочника и не у пустой ссылки должен различаться?
32 Amiralnar
 
17.10.11
17:23
Демон еще спит?
NUUUUULLL
33 Beduin
 
17.10.11
17:24
Просто если делают документацию с жесткой типизацией, то тогда хотя бы в описании указали, что метод получитьобъект() недоступен для значения возвращаемого методом ПустаяСсылка()
34 Beduin
 
17.10.11
17:25
(31) Типы не различаются. Проблема в методе ПолучитьОбъект()
35 trambalda
 
17.10.11
17:26
(34) Почему мой автомобиль не плавает!
Я все окна закрыл, а он все равно, гадина, тонет!
Проблема в автомобиле!
36 PR
 
17.10.11
17:26
(27) ПолучитьСсылку - это метод, который вернет ссылку, по заданному ГУИДу или новому автоматом сгенерированному ГУИДу.
А ПустаяСсылка - это метод, который проверяет ссылку на то, не пустая ли она и возвращает булево.

Таким образом, твой вопрос звучит примерно так же, как и "В этой теме мне необходимо узнать, чем отличаются макароны по-флотски и ноутбук Acer?" :))

Правильный ответ "Всем" :))
37 Beduin
 
17.10.11
17:28
(36)
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
ПолучитьОбъект (GetObject)
Синтаксис:

ПолучитьОбъект()
Возвращаемое значение:

Тип: СправочникОбъект.
Описание:

Получает по ссылке объект, предназначенный для чтения, изменения, добавления и удаления справочника.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Сначало почитай СП на предмет возвращаемого значения метода ПустаяСсылка()
38 Beduin
 
17.10.11
17:28
(36)
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
ПустаяСсылка (EmptyRef)
Синтаксис:

ПустаяСсылка()
Возвращаемое значение:

Тип: СправочникСсылка.
Описание:

Получает пустое значение ссылки на справочник данного вида.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Может использоваться, например, когда нужно передать пустую ссылку в параметр метода.
39 Beduin
 
17.10.11
17:29
(35) Если вы не относитесь к специалистам. Смысл постить?
40 Oleg_Kag
 
17.10.11
17:30
А вот теперь запости
ПолучитьСсылку()
41 PR
 
17.10.11
17:30
(37) LOL
Так ПолучитьОбъект или ПолучитьСсылку? :))
42 Beduin
 
17.10.11
17:30
(40)
(41) Просто перепутал копи-паст
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
ПолучитьСсылку (GetRef)
Синтаксис:

ПолучитьСсылку(<УникальныйИдентификатор>)
Параметры:

<УникальныйИдентификатор> (необязательный)

Тип: УникальныйИдентификатор. Уникальный идентификатор, из которого будет формироваться ссылка.
Возвращаемое значение:

Тип: СправочникСсылка.
Описание:

Формирует ссылку из значения типа УникальныйИдентификатор.
Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Если параметр не указан, то будет сформирована новая уникальная ссылка.
43 PR
 
17.10.11
17:31
Ну, хорошо, ссылки из СП запощены, перейдем к тому, что именно непонятно и интересует? :))
44 Inform
 
17.10.11
17:33
(33) это само собой разумеется, пустой объект можно получить методом СоздатьЭлемент(), поэтому нет никакой необходимости получать объект от пустой ссылки.
К значениям некоторых типов нельзя применять арифметические операции и этого тоже не написано в СП, потому что это очевидно...
45 Beduin
 
17.10.11
17:33
(43)
Дано:
Возвращаемое значение для обоих методов
Тип: СправочникСсылка.
Интересует почему для возвращаемого значения метода ПустаяСсылка недоступен
метод ПолучитьОбъект()
46 Oleg_Kag
 
17.10.11
17:34
Получает п_у_с_т_о_е  з_н_а_ч_е_н_и_е ссылки на справочник данного вида.

Формирует с_с_ы_л_к_у из значения типа УникальныйИдентификатор.
Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.

Начинаем вспоминать С++. че-то там про "поинтер" и "войд"
47 Beduin
 
17.10.11
17:34
(44) Как связь между арифметическими операциями и доступность методов у класса?
48 trambalda
 
17.10.11
17:35
(39) Я отношусь. И высказался иносказательно, уж простите за каламбур.
А если совсем просто - вы глупости спрашиваете, отсюда и легкий глумеж.
Не надо придираться к СП, его писали усталые люди.
Если не нравится - пишите петицию в 1С. Они поймут.
49 PR
 
17.10.11
17:36
(45) Финиш какой-то.
Ты определись уже наконец, какие два из трех методов тебя интересуют.
ПустаяСсылка
ПолучитьСсылку
ПолучитьОбъект
50 Beduin
 
17.10.11
17:36
(49)
ПустаяСсылка
ПолучитьСсылку
51 Inform
 
17.10.11
17:36
(47) про арифметические операции вроде по-русски написал, этого тоже не описано в СП - вот в чем связь
52 Beduin
 
17.10.11
17:38
(48) Я ни к кому не придираюсь. Хочу разобраться стоит ли доверять синтаксис-помощнику безоговорочно или нет.
Иногда бывают ситуации когда отладить код нельзя. И ты используешь информацию из СП. И тут бац. Ошибка. Узнать про которую можно только выполнив код.
53 PR
 
17.10.11
17:39
+(36) Пардон, ПустаяСсылка вернет ссылку, а не булево.
54 Beduin
 
17.10.11
17:40
(51) Открой СП. Раздел "Арифметические операции"
55 PR
 
17.10.11
17:40
(52) Почему по-твоему пустая ссылка должна возвращать объект?
И какой объект? Новый?
56 Beduin
 
17.10.11
17:43
(55) ПустаяСсылка() возвращает тип СправочникСсылка
Метод ПолучитьОбъект() которого должен вернуть неопределено,а не
{(1)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
57 PR
 
17.10.11
17:45
(56) Метод ПолучитьОбъект() для пустой ссылки возвращает неопределено.
Откуда это?
58 Beduin
 
17.10.11
17:46
(57)Отсюда
Справочники.Организации.ПолучитьСсылку().ПолучитьОбъект() = Неопределено
59 YF
 
17.10.11
17:47
(57) Он имеет ввиду, что в ошибку вываливаться не должно. Я тоже с этим согласен - должно что-то вернуть Null, Неопределено и что-нидь еще
60 Beduin
 
17.10.11
17:54
(59) Весело. Из 10 участников только один, который может мыслить на уровне типизации и классов.
1С похоже действительно к программированию мало относится.
61 Мимохожий Однако
 
17.10.11
18:01
(60)Видимо, в этом высказывании смысл ветки. За линейкой идти?
62 Beduin
 
17.10.11
18:02
(61) Смысл в том, что все уже по привычке ищут как обойти проблему не вдаваясь в суть.
63 Inform
 
17.10.11
18:08
(62) проверка на заполненность для ссылочных типов не просто так придумана, почему бы ей не начать пользоваться?
64 PR
 
17.10.11
18:12
(58) Мда-а-а
Справочники.Организации.ПолучитьСсылку() возвращает ссылку и она не пустая, просто еще не записана.
Ты издеваешься?
65 apokrit
 
17.10.11
18:18
(56) Некоторые вот считают что всегда исключение должно кидаться, а не Неопределено молча возвращаться.
66 Beduin
 
17.10.11
18:20
(64)
Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")).ПолучитьОбъект()
Как думаешь будет доступен метод ПолучитьОбъект()?
67 Beduin
 
17.10.11
18:21
(65) Угу эти некоторые (64) еще на работу людей принимают как-то. Хотя сами просто содержат в памяти набор методов.
68 PR
 
17.10.11
18:24
(66) И что предполагалось сделать строкой
Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"))
?
69 PR
 
17.10.11
18:26
(67) Ты там привстань с низкого старта-то, а то я смотрю ты уже перья распушил, а тема ветки-то пока все еще в каком-то тумане
70 Beduin
 
17.10.11
18:28
(69) При чем здесь старт какой-то. Я спросил вообще базовые вещи.
А вы даже не пытаетесь меня понять?
71 Reset
 
17.10.11
18:41
(70) Ты ничего путем не спросил еще. Пурги только нагнал.
72 Sammo
 
17.10.11
18:43
Попробуй
Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")).Пустая()
73 Мимохожий Однако
 
17.10.11
18:45
(70)ОК. Сформулируй заново.
74 Sammo
 
17.10.11
18:46
А получить объект от пустой ссылки нельзя именно потому, что система уже знает, что ссылка пустая (нулики).
75 Reset
 
17.10.11
18:48
А, походу понял.
По замыслу автора и в коде

а=Новый Массив;
б=а[0];

должно возвращаться неопределено, а не генерироваться ошибка.

Только пока не понял, к чему он это замыслил.
76 Reset
 
17.10.11
18:50
(74) Этот ответ нескольтко раз был уже в теме, но автору он не нравится :)
77 Beduin
 
17.10.11
19:25
(75) При генерации этой ошибки выводится описание из которого ясны причины.
Думаешь ({(1)}: Ошибка при вызове метода контекста (ПолучитьОбъект))
из этой ошибки ясно почему у объекта СправочникСсылка недоступен метод?
78 Undefined
 
25.10.11
17:36
(75) в твоем примере ошибка при приминении метода (.Получить(0)).Но сам метод доступен. Автор протестует против того что сам метод недоступен и затрудняется диагностика ошибки. По идее метод должен быть недоступен если тип другой,но тип то верный СправочникСсылка. По сути автор прав. Таких ситуаций довольно много в 1С, просто мы уже не замечаем этого потому что знаем их.
79 Mort
 
25.10.11
18:08
Т.е. весь базар о том, что автору не нравится словосочетание "метод недоступен" в генерируемом исключении, которое собсна с (75) суть одно и тоже.
80 hhhh
 
25.10.11
18:14
(77) хорошо, давай мне объясни, почему 0 имеет тип число? Ведь он не должен иметь этот тип. Это не число.
81 Beduin
 
25.10.11
18:21
(79) Автору не нравится, что у типа данных со своими свойствами и методами при определенных обстоятельствах один из методов выпадает в исключение.
82 Beduin
 
25.10.11
18:24
+(79) И это нигде не описано.
83 Aprobator
 
25.10.11
18:24
(0) почему у пустой ссылки нет объекта? Вопрос явно философический.
84 Aprobator
 
25.10.11
18:25
типа пальто могло бы быть, но реально его нет, но цвет пуговиц на нем все равно хочу изменить ))))
85 Beduin
 
25.10.11
18:30
(84) Допустим ты пишешь код.
И ты знаешь что метод ПолучитьСсылку(), возвращает Тип:Ссылка.
Ты лезешь в документацию где видишь, что у типа ссылка при всех ситуациях доступен метод получитьобъект(). А на деле получается, что ни при всех ситуациях. Считаешь это правильным?
86 Любопытная
 
25.10.11
18:39
(85) Ну пожалуйся в 1С на то, что они косячат в СП.
Хотя нет ничего сложного в том, чтобы проверить пустую ты получил ссылку или не пустую
87 oleg_km
 
25.10.11
18:44
Так а че там далеко ходить. Есть строковая функция Найти. Внимание вопрос: она регистрозависимая или нет? В СП такой информации тоже нет. Поэтому перечитываем "Пикник на обочине" и запасаемся гайками. Уже давно СП на веру не принимаю. Почти все конструкции 1С приходится проверять на тестовых примерах
88 Goggy
 
25.10.11
19:04
Тю, тоже мне проблема...
Тут Ваще функции неработают даже на половину описания из СП а те ненравится эта мелочь.
89 oleg_km
 
25.10.11
21:38
(88) Это мне? О так это иногда даже прикольно, есть лишний повод что-то перетереть профессиональное с коллегами. Если только вдруг не проявляется в 2 часа ночи у ночной смена, которая вдруг не может отгрузить все завтрашние машины
90 Лефмихалыч
 
25.10.11
21:40
(0) какая разница, почему? Живи с этим и всё. Один фих ты ни чего с этим сделать не сможешь... Да и не надо ни чего делать
91 Aprobator
 
26.10.11
09:50
(85) можешь привести пример "абсолютной" документации? Кроме того, документация то документацией, но головой то думать надо. Получил ты пустую ссылку заданного типа. Она пустая - там ничего нет. Что там можно редактировать - ничего. Потому и нельзя получить объект для редактирования.
92 Aprobator
 
26.10.11
09:51
(91) пустая- в смысле ни на что не указывает.
93 Defender aka LINN
 
26.10.11
09:54
(85) Метод доступен, не надо тут. Когда ссылка пустая, вызывает исключение.
94 Рэйв
 
26.10.11
09:56
(0)Пустаяссылка() возвращает пустой экземпляр класса со всеми полями. Это не объект.Это заглушка просто. Реально объекта в базе нет.Поэтому .ПолучитьОбъект() смысл не имет