|
РегистрСведений.ИмяРегистра.Выбрать() права доступа
| ☑ |
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) ну да, надо было так
|
|