Когда не работает rls

v8.2: Не работает RLS — «глюк» с запросами по правам

Уже в который раз сталкиваюсь с такой ситуацией: серверная БД, управяемое приложение, внес массовые ограничения (чтение/изменение/добавление по нескольким документам для нескольких ролей), естественно, во многих случаях — копированием.
Пример запроса:
КонвертацияВалют ИЗ Документ.КонвертацияВалют КАК КонвертацияВалют
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МатрицаДоступаПроекты КАК МатрицаДоступаПроекты
ПО (МатрицаДоступаПроекты.Пользователь = &ТекущийПользователь)
И КонвертацияВалют.Проект = МатрицаДоступаПроекты.Проект
И (КонвертацияВалют.ЦФОПлательщик = МатрицаДоступаПроекты.ЦФО
ИЛИ КонвертацияВалют.ЦФОПолучатель = МатрицаДоступаПроекты.ЦФО)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МатрицаДоступаРасчетныеСчета КАК МатрицаДоступаРасчетныеСчета
ПО (МатрицаДоступаРасчетныеСчета.Пользователь = &ТекущийПользователь)
И (КонвертацияВалют.РасчетныйСчетСписания = МатрицаДоступаРасчетныеСчета.РасчетныйСчет
ИЛИ КонвертацияВалют.РасчетныйСчетПоступления = МатрицаДоступаРасчетныеСчета.РасчетныйСчет)
ГДЕ (НЕ(МатрицаДоступаПроекты.Пользователь ЕСТЬ NULL
И МатрицаДоступаРасчетныеСчета.Пользователь ЕСТЬ NULL ))
И КонвертацияВалют.ВидДС = ЗНАЧЕНИЕ(Перечисление.ВидыДС.Наличные)

В итоге — ограничения просто нет. Но стоит снова залесть в настройки, немного переставить чтото (элементарно — местами связи), как все начинает работать. Очень похоже на глюк работы конфигуратора с этой частью метаданных (или как оно сейчас в 8ке?)
Встречался ли кто с такой ситуацией? Есть ли решение?

Я вообще не копировал. Это кусок полностью самописной (моей) конфы. В ней из типового — только БСП.
И ту тречь не об эффективности. Вопрос в том, что набросанные однотипные запросы не работают в части документов. При этом, при внесении через форму ввода (не напрямую в списке ограничений доступа к данным) небольших изменений (поменял местами условия связи, например) — они начинают работать. При перезагрузке из хранилища В ТОЧНОСТИ такого же запроса — тоже начинают. Но, при этом, изначально они и были установлены на рабочей базе загрузкой из хранилища.

Читайте также:  Не работает борт компьютер ваз 2110

Вопрос в том, встречался ли кто с подобного рода проблемами? Может я просто не там смотрю, а может это старый и (почти) всем известный глюк конфигуратора. Или глюк у нас в фирме в рабочей среде какой.

Копай в сторону:

во первых «ДеМонические обновления»
зы
планирую после НГ статейку написать

(7) роль без РЛС ВСЕГДА перекрывает все установленые РЛС других ролей.

поробуй пользователю дать полные права + роль с RLS и увидешь что у него будут ПОЛНЫЕ права

(7) полный бред. ложь звездешь и провокация.

Что ты тут пишешь ? «Обычная» роль всегда перекрывает RLS.
Я настраивал RLS(писал свои запросы) в УПП для тучипользователей. И я знаю как они работают на 100%.

Кстати давно заметил твои неадекватные посты.

(6) Для пользователей стараюсь тоже делать 1 с РЛС, то есть роль пользователь (который с РЛС по некоторым объектам) + 1 своя.

Источник

v8: Не работает RLS

Tilchik 16.07.2014 10:48
Прочитано: 5559

Всем привет. Такая ситуация: возникла необходимость чтобы закрыть доступ к просмотру данных по заработной плате, начисления и т.д. по определенным лицам, чего греха таить начальству, не хотят чтобы их з/п все видели а только один расчетчик. Делаю такой порядок действий:

1. В настройка программы на вкладке Ограничение доступа выставил галку Ограничение доступа по записям.

2. Завел две группы пользователей: Обычная и Доступ к ВИП. В обычную кинул всех пользователей кроме этого нужного расчетчика, в группу Доступ к ВИП-этого расчетчика.

3. Завел две группы доступ физических лиц-Обычные люди и ВИП. Распределил сотрудников по этим группам.

4. В группах пользователя по кнопке права установил права на видимость:Доступ к вип-группы доступа физических лиц обычные люди и ВИП-все права, Обычная-группа доступа физических лиц обычные люди-все права, ВИП-просмотр в списке.

В резульате все действий не взлетело. все все видят. в чем может быть дело?

Yandex
Возможно, вас также заинтересует
dinamik 16.07.2014 11:02
Ответ № 1

Привет. Какая конфа? просмотри роли пользователей. На справочник Физ.лица и Сотрудники организации должны быть РЛС в ролях

Tilchik 16.07.2014 11:08
Ответ № 2

все есть конфа ЗУП 2.5 стандартная, RLS стоит

E_Migachev 16.07.2014 11:32
Ответ № 3

Вот здесь я настраивал органичение по организации, для физ лиц там аналогично ЗУП: Настроить ограничение доступа по организации

dinamik 16.07.2014 11:50
Ответ № 4

> > > 1. В настройка программы на вкладке Ограничение доступа выставил галку Ограничение доступа по записям.

а ставил галку возле физ лиц?

и еще посмотри рег сведений Права доступа пользователей к Объектам. увидишь к каким объектам есть доступ у пользователя или группы

Источник

Простая проблема с РЛС. Нужен совет.

После добавление РЛС пользователь перестает видеть все записи в ЭТОМ регистре. При этом ВАЖНО: шаблон я скопировал(заменив наименование регистра) из РЛС для другого регистра сведений и там пользователь видит все что нужно.

Т.к. регистр сведений новый я обновил параметры работы системы.

Непосредственное. Текст запроса же — часть механизма RLS.

Шаблон, как текст запроса — часть механизма RLS. Поэтому мы их и обсуждаем.

В подавляющем большинстве своих проектах при обновлении конфигурации продуктивной базы ИБ запускаю с ключом «/С ЗапуститьОбновлениеИнформационнойБазы». Не вижу ничего зазорного. Более того, очень часто это необходимо.

Да, я в курсе. О том и речь. Автор поста работает с типовыми ролями и/или шаблонами, значит он зависит от служебных регистров. И рекомендации ему дают соответствующие.

Если речь про БСП, то видимо я просто гораздо более лучшего мнения о ней, чем Вы. Ваше право. В целом я ей доволен.

Я адекватно оцениваю свои возможности, а потому не соглашусь. В моем случае:
— быстрей — если только за счет урезания функциональности;
— качественней — однозначно нет, т.к. я не обладаю теми же ресурсами и навыками, что целая команда разработчиков библиотеки;
— надежней — в общем случае нет, т.к. у меня как минимум нет той армии пусть и невольных тестировщиков, что у 1С, если только в редких случаях.

Возьму на вооружение, спасибо. Использую термин так, как и окружающие меня люди, без особого понимания его происхождения.

Источник

Ограничение доступа к данным на уровне записей (RLS) в 1С 8.3

Настройка RLS

Роли позволяют назначить права доступа на весь объект. Но иногда требуется разделить права доступа на конкретные значения объекта. Например, в справочнике контрагентов могут быть и покупатели и поставщики. И нужно, чтобы менеджеры по продажам видели только покупателей, а менеджеры по закупкам только поставщиков.

Для этого используются ограничения доступа к данным на уровне записей или RLS (Record Level Security).

RLS настраиваются в роли в группе Ограничения доступа к данным:

RLS настраиваются отдельно для каждого права. При этом ограничения можно настроить только для следующих прав:

В колонке Поля указывается список полей объекта, на которые настраивается ограничение. Можно выбрать Прочие поля, что значит ограничение на все поля объекта, кроме тех на которые явно настроены ограничения.

Для права Чтение можно настроить несколько ограничений. Между собой они будут объединены по условию И. У пользователя будут права только при выполнении всех ограничений.

На права Добавление, Изменение и Удаление можно настроить только одно ограничение.

Если на какое-то право были настроены RLS, то в списке прав они выделяются цветом, а также пиктограммой:

В примере выше RLS настроены для прав Чтение и Изменение.

Ограничения доступа можно настраивать для:

  • Справочников
  • Документов
  • Журналов документов
  • Планов видов характеристик
  • Планов счетов
  • Планов видов расчета
  • Планов обмена
  • Регистров сведений
  • Регистров накопления
  • Регистров бухгалтерии
  • Регистров расчета
  • Бизнес-процессов
  • Задач

Язык ограничения доступа к данным

В колонке Ограничение доступа указывается текст самого ограничения. Он пишется на специальном языке ограничения доступа к данным, который является подмножеством языка запросов 1С. В тексте можно использовать только секции ИЗ и ГДЕ.

Если запрос из ограничения доступа вернет хотя бы одну запись или условие в секции ГДЕ будет истинным, то у пользователя есть права на этот объект базы банных. В противном случае прав не будет.

Простое ограничение доступа может выглядеть следующим образом:

Здесь Контрагенты — это псевдоним таблицы, а ГДЕ ИСТИНА — условие.

Таблица объекта, на который настраиваются ограничения всегда присутствует в тексте запроса. Именно ее псевдоним указывается в начале запроса. При необходимости можно добавить несколько таблиц в запрос:

Можно не использовать условие в запросе . В этом случае, если запрос вернет хотя бы одну запись, то у пользователя будут права на этот объект базы данных:

Стоит отменить что в тексте запроса RLS нельзя обращаться к реквизитам и ресурсам регистра накопления или бухгалтерии. А также можно обращаться только к балансовым измерениям регистра бухгалтерии.

Примеры RLS

Чтобы лучше разобраться как работает RLS в 1С настроим ограничения доступа на справочник Контрагенты, чтобы менеджеры по продажам видели только покупателей.

У справочника Контрагенты есть реквизит ГруппаДоступа, который имеет тип ПеречислениеСсылка.ГруппыДоступаКонтрагентов:

По значению данного реквизита можно определить кем является контрагент.

Сейчас в списке контрагентов 2 покупателя и 2 поставщика:

Создадим роль Покупатели и для справочника Контрагенты и права Чтение настроим следующее ограничение:

И дадим пользователю только эту роль. В результате ему будут доступны только покупатели:

Удалим ограничение доступа для права Чтение и добавим такое же, но для права Добавление:

В результате пользователь может видеть всех контрагентов, но создать нового контрагента может только с группой Покупатели. Если указать любую другую группу, то будет выдана ошибка «У пользователя недостаточно прав на исполнение операции над базой данных»:

Удалим ограничение для права Добавление и добавим такое же для права Изменение:

Теперь пользователь может добавлять контрагентов с любой группой доступа, но изменять может только покупателей. При этом нельзя сначала изменить группу доступа на Покупатели, а потом изменить сам объект. Проверка выполняется как до изменения, так и после изменения.

Удалим ограничения для права Изменение и добавим такое же для права Удаление:

Теперь пользователь может и читать и добавлять и изменять любых контрагентов, но удалить может только покупателей. Именно удалить, а не пометить на удаление.

Вернем снова ограничение только для права Чтение, чтобы пользователь мог видеть только покупателей. Если сейчас пользователю дать еще одну роль, которая дает права на чтение и просмотр контрагентов, но для нее не настроены RLS, то пользователь увидит всех контрагентов. Так происходит, потому что из разных ролей RLS складываются по условию ИЛИ. Если хотя бы в одной роли нет ограничений, то считается, что разрешены все контрагенты.

Если для права Чтение добавить еще одно ограничение с условием:

Источник

Оцените статью