Имя: Пароль:
1C
 
Как проверить переменную на "Объект не найден" ?
0 iva77ru
 
15.07.10
15:41
Пожалуйста, помогите разобраться:
Организация = Справочники.Организации.НайтиПоКоду("000000001");
Возвращает в Организация - Объект не найден, тип СправочникСсылка.Организации. Так и должно, т.к. код равен "00001". Но как проверить переменную на предмет выбранного значения? Метод ЗначениеЗаполнено(Организация) - возвращает ИСТИНА, Организация.Пустая()- возвращает ЛОЖЬ. При попытки Организация.Наименование - "Нарущение прав доступа, ошибка чтения... ". Сразу скажу права есть и их достаточно. Элемент справочника открывается на чтение (ФормаЭлемента) без проблем.
1 Ненавижу 1С
 
гуру
15.07.10
15:42
Метод ЗначениеЗаполнено(Организация) - возвращает ИСТИНА, Организация.Пустая()- возвращает ЛОЖЬ

врешь!
2 Чайник Рассела
 
15.07.10
15:42
Искомое = Справочники.Организации.НайтиПоКоду("000000001");
Если Искомое.Пустая() Тогда
3 Aleksey_3
 
15.07.10
15:42
ПолучитьОбъект()
4 acsent
 
15.07.10
15:43
Так у тебя RLS а не битая ссылка
5 Aleksey_3
 
15.07.10
15:43
6 iva77ru
 
15.07.10
15:43
Ненавижу1С - сам врешь.
7 acsent
 
15.07.10
15:44
Битую ссылку нельзя найти по коду
8 zzerro
 
15.07.10
15:45
Метод ЗначениеЗаполнено(Организация) - возвращает ИСТИНА, Организация.Пустая()- возвращает ЛОЖЬ - тут вроде все верно, значение в Организация есть... думаю всеж РЛС
9 Один С
 
15.07.10
15:46
|ГДЕ Организация.Номер ЕСТЬ NULL;
10 Serg_1960
 
15.07.10
15:46
"Нарущение прав доступа, ошибка чтения... Сразу скажу права есть и их достаточно" - нет, не достаточно.
11 kuromanlich
 
15.07.10
15:46
я переводил в строку и искал "Объект не найден"
12 nbIx
 
15.07.10
15:46
(11) Я тоже так делал))
13 nbIx
 
15.07.10
15:47
(3) это слишком накладно, представляешь у тебя объект - документ в 10 тыс. строк
14 Jolly Roger
 
15.07.10
15:49
выбрать ссылка из <...> где ссылка = &битаяСсылка
15 Serg_1960
 
15.07.10
15:59
Сорри, коллеги. Мне кажется, - вы не в "ту сторону" смотрите. Возможно ссылка не "битая" и не "пустая" - это проделки РЛС (имхо).

Обращение к "Организация.Наименование" порождает чтение всего объекта. Возможно, на один из реквизитов наложен запрет на чтение. А в форме элемента - его нет и показ элемента происходит без ошибок...
16 H A D G E H O G s
 
15.07.10
16:01
Выбрать
ИСТИНА
ИЗ
Справочник.Номенклатура как Номенклатура
Где
Номенклатура.Ссылка=&Ссылка
17 H A D G E H O G s
 
15.07.10
16:02
Кстати интересно, прочтется ли так справочник, если на него прав нет
18 iva77ru
 
15.07.10
16:06
Спасибо, за помощь. Оказалось есть элемент справочника с кодом "000000001" и "00001". Но на элемент справочника с кодом "000000001" стоит запрет на чтение от RLS.
Обошел, вот так:

Если ЗначениеЗаполнено(Организация) Тогда
    Попытка
           Наименование = Организация.Наименование;
    Исключение
           Сообщить("Не удалось выбрать Организацию!");
           Возврат;
    КонецПопытки;
КонецЕсли;
19 H A D G E H O G s
 
15.07.10
16:07
(18) Это плохо.
20 iva77ru
 
15.07.10
16:09
Что плохо и как тогда обходить правильно?
21 H A D G E H O G s
 
15.07.10
16:16
Попытка
   Запрос=Новый Запрос;
   Запрос.Текст=
   "ВЫБРАТЬ
   |    ИСТИНА
   |ИЗ
   |    Справочник.Организации КАК Организации
   |ГДЕ
   |    Организации.Ссылка = &Ссылка";
   Запрос.УстановитьПараметр("Ссылка",Организация);
   Если Запрос.Выполнить().Пустой() Тогда
       Сообщить("Не удалось выбрать Организацию!");
       Возврат;
   КонецЕсли;
    Исключение
           Сообщить("Не удалось выбрать Организацию!");
           Возврат;
    КонецПопытки;
22 Serg_1960
 
15.07.10
16:21
Не забывай про ВЫБРАТЬ РАЗРЕШЕННЫЕ - иначе, однажды, вывалишься по ошибке :)
23 H A D G E H O G s
 
15.07.10
16:23
(22) Раскажи подробнее, плиз
24 H A D G E H O G s
 
15.07.10
16:24
Есть справочник
Номенклатура с реквизитом ВидНоменклатуры.
Права на Чтение Номенклатуры есть, на чтение ВидаНом. - нет.

Можно ли выполнить

Выбрать
Номенклатура.ВидНоменклатуры

???
25 nbIx
 
15.07.10
16:24
Если Найти( Строка(Ссылка), "<Объект не найден>") = 0 Тогда
         
КонецЕсли;
26 MM
 
15.07.10
16:32
(11), (25) Так делать не надо, достаточно сменить язык платформы и это гарантировано не будет работать!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn