Имя: Пароль:
1C
1С v8
Запрос. ВЫБРАТЬ и ВЫБРАТЬ РАЗРЕШЕННЫЕ - ?
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
А в ЗУП есть ВыполнитьПроверкуПравДоступа?