Имя: Пароль:
1C
1С v8
Чем проверить ссылку на элемент справочника?
0 TolBmw
 
13.03.12
12:19
Чем проверить ссылку на элемент справочника, если сработало RLS и для пользователя значение <объект не обнаружен>?
1 TolBmw
 
13.03.12
12:20
<объект не найден>
2 Нуф-Нуф
 
13.03.12
12:20
что значит проверить?
3 Cube
 
13.03.12
12:21
Проверь вольтметром.
4 Reset
 
13.03.12
12:22
Корявый вопрос, отвечу коряво.

Выбрать разрешенные из Справочник.БлаБла.Ссылка Где Справочник.БлаБла.Ссылка=&Ссылка
...
Если Запрос.Пустой() // Значит низя.
5 Reset
 
13.03.12
12:24
Некоряво - когда такие ссылки до пользователя не доползают.
6 Omskdizel
 
13.03.12
12:25
(5) Ну может товарищ и хочет, чтоб значица не доползли :)
7 TolBmw
 
13.03.12
12:33
код из типовой
Если НЕ ЗначениеЗаполнено(Объект.Договор) Тогда
Объект.Договор = Объект.Контрагент.ДоговорПоУмолчанию;
КонецЕсли;
если на спр. Договоры установлены RLS по Организации, вот и лезет, берут ссылу из реквизита спр. Контрагента
8 Cube
 
13.03.12
12:34
Кто-нибудь что-нибудь понял?)))
9 Reset
 
13.03.12
12:34
(7) В этом случай правильно не предоставлять Объект.
10 TolBmw
 
13.03.12
12:42
разжую,  реквизит спр. Контрагент (тип СправочникСсылка.ДоговорыКонтрагентов), значение подставляется в документ и если на спр. ДоговораКонтрагентов RLS, то элемент справочника не доступен пользователю, который работает от лица другой Организации. Вот и нужно проверить, что бы тому кому доступно подставлялось, а кому не нужно нет
11 Defender aka LINN
 
13.03.12
12:43
(10) Запросом
12 Sarmen
 
13.03.12
12:56
1. Привилегированный модуль
2. УстановитьПривилегированныйРежим
13 Omskdizel
 
13.03.12
13:00
(9) Там не Объект подставляется вроде.
(8) Вроде понял :)

В (7) по-моему вполне хороший ответ на вопрос, даже чуть меньше обращений к базе
14 ptiz
 
13.03.12
13:20
Попытка
 Объект.Договор = Объект.Контрагент.ДоговорПоУмолчанию;
Исключение
 Сообщить("Сработал РЛС!");
КонецПопытки;
15 Reset
 
13.03.12
13:45
(14) Не сработает(шибки не будет) -> нужно Объект.Контрагент.ДоговорПоУмолчанию.Код например

или (4)

или совсем некрасиво Строка(Объект.Контрагент.ДоговорПоУмолчанию)="<Объект не найден>" (фу, не верю что я это написал. Ну пусть будет для полноты)
16 Reset
 
13.03.12
13:45
Ошибки*
17 ptrtss
 
13.03.12
14:48
>> Строка(Объект.Контрагент.ДоговорПоУмолчанию)="<Объект не найден>"
Быстрее и понятнее всего. Красотища!

Но конечно же надо

Найти(Объект.Контрагент.ДоговорПоУмолчанию, <Объект не найден>) = 1
18 ptrtss
 
13.03.12
14:50
Найти(Объект.Контрагент.ДоговорПоУмолчанию, "<Объект не найден") = 1

Посты не редактируются? Никак?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший