Имя: Пароль:
1C
 
РегистрСведений.ИмяРегистра.Выбрать() права доступа
0 Momus
 
04.10.20
20:25
Если у пользователя нет прав на регистр, что тогда вернет РегистрСведений.ИмяРегистра.Выбрать(): пустую выборку или исключение?
1 palsergeich
 
04.10.20
20:31
(0) Скорее всего исключение.
2 ДенисЧ
 
04.10.20
20:39
Исключение
Пустую даст запрос с РАЗРЕШЕННЫЕ
3 Momus
 
04.10.20
20:44
Так и думал. Спасибо за помощь
4 RomanYS
 
04.10.20
21:02
(2) >> Пустую даст запрос с РАЗРЕШЕННЫЕ
Это только при RLS. Если прав нет совсем, будет исключение
5 Momus
 
05.10.20
07:58
(4) Точно? Не знал...
6 RomanYS
 
05.10.20
11:00
(5) Точно. Чтобы не было ошибки с "разрешенные" должно быть доступно чтение хотя бы  даже с условием "где Ложь" на все поля.
7 Momus
 
05.10.20
11:05
(6) Как в таком случае избежать исключений при обращении к данным? Перед самим запросом проверять есть ли у текущего пользователя право на чтения текущего регистра и лишь после этого выполнять запрос? Не обертывать же в попытку это дело.
8 RomanYS
 
05.10.20
11:11
(7) Сам же ответил. Если исключения и попытки недопустимы, то остается предварительная проверка прав или привилегированный доступ
9 alkorolev
 
05.10.20
11:19
(7) ВыборкаБудетБезОшибок = ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ТвойРегистр)
10 Momus
 
05.10.20
11:41
(8) думал мб что-то не знаю. Почему-то думал, что "разрешенные" не только на rls распространяется.
11 RomanYS
 
05.10.20
11:42
(10) Проверить - дело 5 минут
12 Momus
 
05.10.20
11:46
(11) ну да, надо было так
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс