Имя: Пароль:
1C
1С v8
Программно проверить логическую целостность ссылки
,
0 _Demos_
 
11.05.12
11:08
Собственно как программно проверить логическую целостность ссылки?
Даже если <Объект не найден> метод пустая()возвращает ложь
ЗначениеЗаполнено() Истина ???
1 Defender aka LINN
 
11.05.12
11:09
Запрос
2 Fragster
 
гуру
11.05.12
11:09
.ПолучитьОбъект() = Неопределено же. А вообще за 3 года можно уже поиском научиться пользоваться
3 strange2007
 
11.05.12
11:10
Самый тупой вариант:
Если Найти(Строка(ПроверяемыйОбъект), "Объект не найден")<>0 Тогда
4 veronika1888
 
11.05.12
11:11
(3) если наименование будет содержать "Объект не найден" то будет клевый прикол
5 _Demos_
 
11.05.12
11:12
(3) я так и сам могу
(1) новый УникальныйИдентификатор("36-знач строка")
(2) может методы существуют специальные для этого
6 vmv
 
11.05.12
11:12
Запрос

Такое сообщение уже было отправлено в течение ближайшего часа.
7 veronika1888
 
11.05.12
11:13
(5) нет таких предопределенных методов
8 _Demos_
 
11.05.12
11:13
Справочник.Контрагенты.ПолучитьСсылку( новый УникальныйИдентификатор("36-знач строка") );
9 veronika1888
 
11.05.12
11:13
(6) вернет пустой результат запроса?
10 Живой Ископаемый
 
11.05.12
11:13
2(8) что это?
11 vmv
 
11.05.12
11:15
Функция ОбъектСуществует(Ссылка, КлассификаторСтрока, ИмяОМ)
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ " + КлассификаторСтрока + "." + ИмяОМ + " ГДЕ Ссылка=&Ссылка";
   Запрос.Параметры.Вставить("Ссылка", Ссылка);
   
   Выборка = Запрос.Выполнить().Выбрать();
   
   Если Выборка.Следующий() Тогда
       Возврат Истина;
   Иначе
       Возврат Ложь;
   КонецЕсли;
   
КонецФункции
12 _Demos_
 
11.05.12
11:16
(10) то что всегда ЗначениеЗаполнено() возвращает Истина
13 Живой Ископаемый
 
11.05.12
11:17
2(12) и что?
14 _Demos_
 
11.05.12
11:18
(13) у тебя есть к этой строке возражения?
15 vmv
 
11.05.12
11:19
надо писать в отдел разработки, чтобы в 8.3 и дальше убрали все методы менеджеров и глобального контекста относительно ссылочных типов, ибо они только добавляют геммороя и в конечном итоге все равно - выполняют запрос
16 Живой Ископаемый
 
11.05.12
11:20
2(14) у меня возражения к тому как они соотносятся с темой топика
17 fisher
 
11.05.12
11:23
(14) Причем тут это вообще? Да, ссылка есть. Актуальна ли она - это уже второй вопрос. Делай как в (11).
18 _Demos_
 
11.05.12
11:23
(16) я это к тому, что с помощью это строки можно на создавать битые ссылки :)
19 Fragster
 
гуру
11.05.12
11:25
(18) битая ссылка - это бывает правильно.
20 echo77
 
11.05.12
11:31
(11) В данном случае расово правильно писать:

Результат = Запрос.Выполнить();
   
Возврат НЕ Результат.Пустая()
21 echo77
 
11.05.12
11:32
а интересно, что быстрее: получать объект или строить и выполнять запрос в БД?
22 Fragster
 
гуру
11.05.12
11:32
(20) результат - он мужик!
23 Fragster
 
гуру
11.05.12
11:32
(21) теоретически запрос быстрее, ибо не цепляет лишних данных