|
Запрос. ВЫБРАТЬ и ВЫБРАТЬ РАЗРЕШЕННЫЕ - ? |
☑ |
0
bvn-2005
06.06.22
✎
09:24
|
ЗУП ред. 3. Используется RLS - доступ по группам физ лиц.
ЗАпрос к таб части документа:
"ВЫБРАТЬ
| РаботаВВыходныеИПраздничныеДниСотрудники.Ссылка КАК Ссылка,
| РаботаВВыходныеИПраздничныеДниСотрудники.Сотрудник КАК Сотрудник,
| РаботаВВыходныеИПраздничныеДниСотрудники.Дата КАК Дата,
| РаботаВВыходныеИПраздничныеДниСотрудники.ОтработаноЧасов КАК ОтработаноЧасов,
| РаботаВВыходныеИПраздничныеДниСотрудники.СпособКомпенсацииПереработки КАК СпособКомпенсацииПереработки,
| РаботаВВыходныеИПраздничныеДниСотрудники.НеРаботал КАК НеРаботал
|ИЗ
| Документ.РаботаВВыходныеИПраздничныеДни.Сотрудники КАК РаботаВВыходныеИПраздничныеДниСотрудники
|ГДЕ
| РаботаВВыходныеИПраздничныеДниСотрудники.Дата МЕЖДУ &ДатаН И &ДатаК
| И РаботаВВыходныеИПраздничныеДниСотрудники.Ссылка.ПометкаУдаления = &ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Сотрудник,
| Дата
|ИТОГИ ПО
| Сотрудник";
Для пользователя с ограниченными правами выдает ошибку о недостаточности прав для операций с БД.
ВЫБРАТЬ РАЗРЕШЕННЫЕ - данные выводит, но, естественно, не все...
Можно ли как-то отследить тот факт, что запрещенные данные в выборку не вошли и выдать пользователю сообщение?
|
|
1
Ненавижу 1С
гуру
06.06.22
✎
09:28
|
(0) сделать Выбрать разрешенные
потом включить полные права, сделать просто Выбрать, найти разность - сообщить о ней
|
|
2
ZDenis
06.06.22
✎
09:28
|
Через УстановитьПривилегированныйРежим сформируй еще раз запрос и сравни результаты
|
|
3
Фрэнки
06.06.22
✎
10:34
|
А если у Пользователя уже есть доступ к этому конкретному документу, то нужно просто всегда в этом запросе УстановитьПривилегированныйРежим
|
|
4
Фрэнки
06.06.22
✎
10:48
|
И вообще говоря, // RLS - доступ по группам физ лиц //
для таких документов срабатывает по наличию физлица в таб части физических лиц, а ее в данном запросе в явном виде нет, т.к. блокируется чтение по ссылке документа целиком.
Будет в одном документе несколько сотрудников, а на одного из них не хватит прав - не прочитает всех.
|
|
5
ptiz
06.06.22
✎
11:04
|
(0) " и выдать пользователю сообщение" - и как это повлияет на дальнейшую работу пользователя? Он попросит сделать отчет того, кто с полными правами?
|
|
6
ptiz
06.06.22
✎
11:04
|
Стоит переосмыслить задачу целиком.
|
|
7
ИУБиПовиц
06.06.22
✎
11:04
|
Попробуйте создать поле в запросе типа, может получится не проверял.
выбрать разрешенные
Количество(РаботаВВыхи.Сотрудник) = Максимум(РаботаВВыхи.НомерСтроки) как НетуЧужихФизиков
количество разрешенных по идее будет меньше количество строк, если что то отсечется, если равно - то все ок.
|
|
8
Выпрь
06.06.22
✎
11:07
|
В этом и смысл рлс чтоб пользователь не знал
|
|
9
RAJAH
06.06.22
✎
11:30
|
А в ЗУП есть ВыполнитьПроверкуПравДоступа?
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший