Имя: Пароль:
1C
1С v8
Не срабатывает отчет у пользователя (RLS)
0 zenon46
 
10.08.23
11:15
Добрый день!
Есть простенький отчет, с запросом такого плана :
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    |    _Переработки.Ссылка КАК Ссылка,
    |    _Переработки.ФизЛицо КАК ФизЛицо,
    |    _Переработки.ФизЛицо.Наименование КАК ФизЛицоНаименование,
    |    _Переработки.Подразделение КАК Подразделение,
    |    СотрудникиОрганизацийСрезПоследних.СтатьяЗатрат КАК СтатьяЗатрат
    |ИЗ
    |    Документ._Переработки КАК _Переработки
    |ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетЗарплаты.ПрочиеНачисленияИШтрафы КАК РасчетЗарплатыПрочиеНачисленияИШтрафы
    |    ПО (_Переработки.Ссылка = РасчетЗарплатыПрочиеНачисленияИШтрафы.Документ)
    |ЛЕВОЕ СОЕДИНЕНИЕ
    |    РегистрСведений.СотрудникиОрганизаций.СрезПоследних(&КонДата,) КАК СотрудникиОрганизацийСрезПоследних ПО СотрудникиОрганизацийСрезПоследних.ФизЛицо = _Переработки.ФизЛицо
    |ГДЕ
    |    РасчетЗарплатыПрочиеНачисленияИШтрафы.Документ ЕСТЬ NULL
    |    И _Переработки.Дата МЕЖДУ &НачДата И &КонДата
    |    И _Переработки.Проведен = ИСТИНА

Но у пользователя у которого настроена RLS на документ "Документ.РасчетЗарплаты" - отчет не срабатывает, с ошибкой "У пользователя недостаточно прав на исполнение операции над базой данных", если убрать ограничение на уровне RLS, то очтет работает штатно.
1 Bigbro
 
10.08.23
11:18
значит в настройках РЛС этого пользователя отсутствует подразделение или физик
который захватывается запросом.
2 zenon46
 
10.08.23
11:22
(1) там только
Поля "Ссылка"
Ограничение "ГДЕ Ответственный = &ТекущийПользователь"
3 Bigbro
 
10.08.23
11:26
значит вон в том первом левом соединении он хватает не только те где ответственный пользователь
а все подряд там и спотыкается.
добавьте там отбор по ответственному = текпользователь
может помочь
4 zenon46
 
10.08.23
12:14
(3) не помогло
5 Bigbro
 
10.08.23
12:34
значит в подзапрос эти расчеты зарплаты с правильными отборами.
и потом джойнить уже с чистым результатом отфильтрованным.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший