Имя: Пароль:
1C
1С v8
Как понять, что ссылка битая в ComОбъекте?
,
0 u2006
 
13.07.11
16:14
Ситуация такая, подключаюсь к другой базе через ComConnector. Нахожу там необходимую мне ссылку по УИДу. Как сделать проверку битая она или нет?
1 u2006
 
13.07.11
16:15
Вот кусок кода
МенеджерВРезервнойКопии = РезервнаяКопияБазы.Справочники[ИмяТипа];
           УИДВРезервнойКопии = РезервнаяКопияБазы.NewObject("УникальныйИдентификатор",СтрокаТаблУИД.СтрокаУИД);
           //УИДВРезервнойКопии = ОбъектУИДВРезервнойКопии(СтрокаТаблУИД.СтрокаУИД);
           СсылкаВРезервнойКопии = МенеджерВРезервнойКопии.ПолучитьСсылку(УИДВРезервнойКопии);
2 u2006
 
13.07.11
16:17
Сравнение с пустой ссылкой дает Ложь
3 u2006
 
13.07.11
16:23
Вот это помогло
ОбъектВРезервнойКопии = СсылкаВРезервнойКопии.ПолучитьОбъект();
           Если ОбъектВРезервнойКопии = Неопределено Тогда
Сообщить("Битая ссылка");                
           КонецЕсли;
4 Defender aka LINN
 
13.07.11
16:24
(3) Расстрелять.
Запросом проверять надо.
5 u2006
 
13.07.11
16:46
(4) Смысл?
6 Defender aka LINN
 
13.07.11
16:51
(5) Если ссылка не битая - ты за каким-то хреном получаешь целый объект. Для просто так. На быстродействие это влияет с какой угодно стороны, кроме положительной.
Если в конфигурации работали кривыми руками - ты вообще не получишь объект никогда через COM, а будешь падать на исключении, что тоже не доставляет.
Запрос - быстро, экологически число и правильно.
7 Defender aka LINN
 
13.07.11
16:52
+(6) Ну а про возможность проверить 100500 ссылок скопом я вообще молчу.
8 DmitrO
 
13.07.11
16:57
А можно еще разименованием, что вобщем-то равнозначно запросу, только коду меньше.
9 u2006
 
13.07.11
17:03
(8) Поподробнее можно?
10 DmitrO
 
13.07.11
17:11
Если ПустаяСтрока(СсылкаВРезервнойКопии.ВерсияДанных) Тогда
   //Объект сперли
КонецЕсли;
11 Defender aka LINN
 
13.07.11
17:17
(10) Уж лучше таки запросом. Он хотя бы нужное число полей выбирает.
12 u2006
 
13.07.11
17:28
(10) Что такое ВерсияДанных?
13 u2006
 
13.07.11
17:29
(10) не работает у меня это способ
14 u2006
 
13.07.11
17:33
(10) я так понял это для 8.2