#0
by golden-pack
1С 8.2 УПП RLS включен по складам и подразделениям(+ еще по многим другим, но это не имеет отношения к вопросу). Пользователь. Роль: Кладовщик (только в роли кладовщик есть права на чтение документа Перемещение товаров). На право чтение есть ограничение (RLS запрос) по организации, подразделению и складу. Пользователю назначено две группы пользователя: "ГруппаПоПодразделениям" - все склады запрещены и разрешено одно подразделение <ОсновноеПодразделение> и "ГруппаПоСкладам" - все подразделения запрешены и разрешен один склад "ОсновнойСклад". Далее по логике типовой конфигурации - "Если пользователь входит в несколько групп, то его права на уровне записей объединяются по всем группам. То есть права разных групп суммируются по логическому условию "ИЛИ"." Есть документ по подразделению - ОсновноеПодразделение и складу - Основной склад. Так вот пользователь не видит этот документ (право чтение) - т.е. не видит не в списке документов, из других источников ссылающихся на этот документ - <Объект не найден ...>. Относительно проверки - те ли подразделения и склады заданы, тот ли документ смотрите в той ли базе, точно ничего не натупили - ответ - все проверено, также в программе УПП работает 100 активных пользователей с разграниченными права, есть еще КА, БП с большим колчеством пользователей с разграниченными правами - все работает, проблема возникла только в данном конкретном случае. --------------------- Запрос RLS на право чтение из роли кладовщик для документа "ПеремещениеТоваров": --------------------- #Если &ИспользоватьОграничениеПоОрганизации ИЛИ &ИспользоватьОграничениеПоПодразделения ИЛИ &ИспользоватьОграничениеПоСклады #Тогда ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ СоставГруппы.Ссылка КАК ГруппаПользователей ИЗ Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы ГДЕ НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL И (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В ( ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка) ) И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL)) #КонецЕсли ---------------------------- Запрос очень бородат - из-за условия НЕ 1 В . Для отладки RLS запрос был переписан запрос на это: ВЫБРАТЬ ТекущаяТаблица.Ссылка ИЗ Документ.ПеремещениеТоваров КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ СоставГруппы.Ссылка КАК ГруппаПользователей ИЗ Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы ГДЕ НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL И ТекущаяТаблица.Ссылка = &ДокПеремещниеТоваров И НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ПО ТОГДА НастройкиПравДоступаПользователей.ОбъектДоступа В (ТекущаяТаблица.СкладОтправитель, ТекущаяТаблица.СкладПолучатель) И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Подразделения), ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)) И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL ) ------------------------ Далее условие, которое "...1 НЕ 1 В( " было переписано на это: ------------------------ ВЫБРАТЬ НазначениеВидовОбъектовДоступа.ГруппаПользователей, ИЗ ИЛИ НастройкиПравДоступаПользователей.Пользователь = &ГруппаПользователей2 ИЛИ НастройкиПравДоступаПользователей.Пользователь = &ГруппаПользователей3) ГДЕ (НазначениеВидовОбъектовДоступа.ГруппаПользователей = &ГруппаПользователей1 ИЛИ НазначениеВидовОбъектовДоступа.ГруппаПользователей = &ГруппаПользователей2 ИЛИ НазначениеВидовОбъектовДоступа.ГруппаПользователей = &ГруппаПользователей3) И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Подразделения), ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)) И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL ------------------------ И вот в этом условие все отрабатывает корректно. Вся проблема в запросе RLS в условиях "НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей" и "НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей " Здесь по логике настройки прав доступа - должно отрабатывать условие или на все роли текущего пользователя, однако этого не проиcходит. Сейчас релиз платформы 8.2.19.76 - раньше таких ошибок замечено не было (однако группы пользователей таких способом тоже не рагзграничались), возможно эта версия платформы по другому формирует текст запрос в запрос SQL. Всмотритесь внимательно в условие запроса RLS. Вопрос - сталкивался ли кто-нибудь с этой проблемой ?
#1
by Apokalipsec
потому что выбрать ПЕРВЫЕ 1 - одна запись с обрезанным доступом к подразделению/складу, ага.
#2
by golden-pack
Нет. Смысл условия сводится к тому - если запрос ничего не возвращает тогда - RLS право чтение разрешается
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Не работает функия вопрос() в 8-ке/в SQL не работает в файл серверной работает
- V8 УПП справочники Подразделения и Подразделения Организации
- УПП/Бух НИОКР. Как это сделать в УПП?
- УПП/Бух НИОКР. Как это сделать в УПП?
- из УПП в УПП
- УПП Можно ли в Упп посмотреть проводки по группе док-в?
- v7: v8: УПП. как начислять в УПП налог?
- Подскажите ...УПП Как работать с неотфактурованными поставками в УПП?
- УПП Попыталься в упп залить данные по ОКОФ с ИТС диска xml файл...
- ЗУП какая разница между спр Подразделения и Подразделения орг
- УПП 1.2 ---> УПП 1.3
- УПП RLS Расходный кассовый ордер на выплату зп по ведомостям.
В этой группе 1С
- В табель не попадают сотрудники на полставки ЗУП
- Что за зверь такой документ "ОперацияБух"?
- Розница 1.0 При вводе на основании в новом документе строчки сами меняют порядок
- Обновить форматы обмена с казначейством БГУ2.0
- AMD или Intel для 1с
- Неудобная ОСВ БП 3.0
- БП 3.0 не заполняется счета при загрузке банк. выписки
- БГУ. Как работать в этом году с КПС, у которых закончился срок действия в том?
- Добавить колонку в Чек ККМ с ценой из справочника цен
- ПланыВидовХарактеристик получить НЕ предопределенное значение
- Как реквизиту составного типа, присвоить типы реквизита конкретного?
- Тормоза 1С 7.7 в сетевом режиме на Windows server 2012
- Не могу найти службу интеграции Hyper-v
- Перейти с редакции 3.0 на 2.0 БСО
- отображение дерева значений в скд ....
- вылетает 1с УТ 11.1 при добавлении штрих кода в шаблон ценника
- v7: Не могу выгрузить результат запроса в таблицу значений.
- Как в коде задать тип штрихкода CODE128? УТ 11
- Защита клавиатуры от кота.
- Внешняя обработка не выполняется в фоне