Ограничение доступа к контрагентам RLS #742503


#0 by web_profiler
Не пинайте сильно, в нете инфы полно, но у меня возникают трудности с ролями, помогите. Суть: создал из полных прав свою роль создал регистр сведений Доступ к контрагентам (измерение-пользователь, ресурс - группа контрагентов) Помогите, пожалуйста, составить шаблон ограничений, чтобы мой пользователь видел только свою группу П.С. Обычное приложение, не пинайте - помогите
#1 by web_profiler
Хелп!
#2 by busy1
#3 by web_profiler
Пробую так: Поля: Прочие поля Ограничение доступа: Контрагенты ИЗ РегистрСведений.КонтрагентыМенеджера КАК КонтрагентыМенеджера
#4 by busy1
Это справка! Там есть пример. Его можно изучить сделать что то подобное, попробовать, потом отписаться, что не получатся.
#5 by web_profiler
это и обо всём
#6 by web_profiler
у меня не тривиальная, на первый взгяд, задачка, справочник список "Контрагенты" - ограничить видимость (доступ) и оставить только нужную группу контрагентов
#7 by Goggy
Озвуч конфу и версию, может ты велосипед изобретаешь...
#8 by web_profiler
ут 10.3
#9 by web_profiler
там есть роль "МенеджерПоПродажам" у него ограничение доступа на уровне записей, но к сожалению при всех настройках видны пустые папки. Мне же необходимо видеть ТОЛЬКО конкретную папку менеджера
#10 by FIXXXL
у контра есть реквизит ГруппаДоступа, он заполнен?
#11 by web_profiler
есть заполнен, но это неудобно - надо заходить в каждого контрагента у устанавливать ему группу доступа
#12 by web_profiler
я пошел другим путем - создал регистр сведений и у него измерение - пользователь, ресурс - группа контрагентов Теперь хочу для пользователя ограничить по группе доступ Контрагенты ИЗ РегистрСведений.КонтрагентыМенеджера КАК КонтрагентыМенеджера     ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
#13 by FIXXXL
сделай один раз обработкой, по Ответственному в документах к примеру и немного допили момент записи нового контра: если пользователь только в одной группе - пиши ее, если в нескольких - кажи окно выбора групп
#14 by web_profiler
не подходит, нужен функционал, который я описал
#15 by hhhh
Расширение табличного поля списка справочника (Catalog list table box extension) Использование: Чтение и запись. Описание: Тип: ИспользованиеГруппИЭлементов. Управляет просмотром групп и элементов. Доступность: Толстый клиент. Примечание: Имеет смысл только для справочника с иерархией групп и элементов.
#16 by web_profiler
в моем случае не подходит. ТОЛЬКО RLS
#17 by Fregat
В бухгалтерии 2.0 работает нечто подобное. Было реализовано следующим образом: Создан регистр сведений с измерениями ГруппаКонтрагентов и Пользователь. В доступной пользователю роле, в правах на чтение добавлено ограничение: Ограничение доступа: Контрагенты ГДЕ (Контрагенты.Родитель В                 (ВЫБРАТЬ                     ГруппыДоступаКонтрагентов.ГруппаКонтрагентов.Ссылка                 ИЗ                     ГруппыДоступаКонтрагентов.Пользователь = &ТекущийПользователь)             ИЛИ Контрагенты.Ссылка В                 (ВЫБРАТЬ                     ГруппыДоступаКонтрагентов.ГруппаКонтрагентов.Ссылка                 ИЗ
#18 by hhhh
ну, делаешь и убираешь папки через .
#19 by web_profiler
а как скрыть пустые папки через "ПросмотрГруппИЭлементов" ?
#20 by web_profiler
осталось ряд пустых групп в справочнике контрагентов и еще в отчетах выводится "объект не найден"
#21 by web_profiler
с продажами
#22 by web_profiler
В базе будут одновременно работать пользователи и для каждого свои группы
#23 by web_profiler
так что ПросмотрГруппИЭлементов - не варитант
#24 by Сметанин
Контрагенты ИЗ Справочник.Контрагенты КАК Контрагенты     ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ КонтрагентыМенеджера.ГруппаКонтрагента ИЗ         РегистрСведений.КонтрагентыМенеджера КАК КонтрагентыМенеджера ГДЕ КонтрагентыМенеджера.Менеджер = &ТекущийПользователь) КАК ВложенныйЗапрос
#25 by Fregat
В РС необходимо занести только те группы контрагентов, которые должен видеть пользователь. Остальные будут недоступны посредством RLS. Если элементы недоступны, то что же вы ожидаете увидеть в отчете кроме как <Объект не найден>?
#26 by Лефмихалыч
внутреннее соединение с ВЫБРАТЬ в RLS не будет работать там, где пользователей больше 10, а контрагентов больше 1000. 1. Добавить параметр сеанса с типом ФиксированныйМассив. 2. При начале работы системы в этот фиксированный массив закладывать либо группы, либо прямо сразу ссылки на основании данных из регистра ДоступККонтрагентам 3. в РЛС фильтровать тупым ГДЕ Ссылка в (&ПараметрСеансаИзП1) ну, или в иерархии - как там веселей будет кому
#27 by Лефмихалыч
+ можно при начале работы системы запузырить обработчик ожидания раз в 10 минут, чтобы обновлял фиксированный массив. Чтобы, значит, наверняка и железно
#28 by web_profiler
помогите с кодом, все волосы повыдергивал, глаз дергаться начинает :)
#29 by web_profiler
Параметр сеанса "ГруппаКонтрагента" создал
#30 by web_profiler
В модуле сеанса, Процедура "УстановкаПараметровСеанса". Сюда надо загнать мою группу?
#31 by web_profiler
ПараметрыСеанса.ОбщиеЗначения = Новый ХранилищеЗначения(Новый Структура);
#32 by web_profiler
так чтоли?
#33 by web_profiler
неа не так, тут еще нет Текущего Пользователя
#34 by web_profiler
сделал, но эта зараза все равно пустые группы выводит
#35 by web_profiler
ПараметрыСеанса.ОбщиеЗначения = Новый ХранилищеЗначения(Новый Структура);
#36 by web_profiler
Поля - Прочие поля Ограничение доступа - ГДЕ Ссылка в (&ГруппаКонтрагента) А как сделать В Иерархии  -  ругается, если пишу ГДЕ Ссылка В ИЕРАРХИИ (&ГруппаКонтрагента)
#37 by web_profiler
Почему же, все-таки, не отрабатывает ГДЕ Ссылка В ИЕРАРХИИ (&ГруппаКонтрагента)?
#38 by web_profiler
а я сделал, вот так спасибо, всем, кто помогал
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С