Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 13:48

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

Автор mzforums, 04 июл 2016, 22:22

0 Пользователей и 1 гость просматривают эту тему.

mzforums

Добрый день,

1С 8.2 "Управление Сервисным Центром". Управляемое приложение.

Хочу чтобы пользователь Продавец видел только Контрагентов из группы "Физ. лица".
(или не видел группу контрагентов "Компании")
Создал роль "Продавец". Дал ей минимальные права.
Создал пользователя "Продавец". Дал ему единственную Роль - "Продавец".
Потом для этой Роли зашел в Справочник - Контрагенты и прописал в "Правах на чтение".
В "Ограничения доступа к данным":

ГДЕ Родитель <> "Компании"
(см. фото во вложении)

Потом проверяю:

Запускаю 1С с пользователем "Продавец".
Захожу в Контрагенты.

И вижу пустой список.
Хотя в контрагентах у меня несколько групп и есть отдельные записи.

Как исправить?
Не работает.


Luzer1C

1. Установить константу через настройку прав доступа на уровне записей "Контрагенты".
2. Создать группу для пользователя.
3. Включить папку из справочника "Контрагенты" в группу. Т.е. дать доступ к этой папке.
4. Включить пользователя в группу.
5. В роли из конфигуратора доработать RLS. Так не пойдет.
Халамбалам.

mixqn

На вашем скрине написано, цитирую:
ЦитироватьГДЕ ЭтоГруппа <> "Company"
Это выражение ВСЕГДА будет иметь значение ИСТИНА. Потому, что ЭтоГруппа - это признак группы типа булево, имеет значение Истина или Ложь. Ни Истина, ни Ложь, понятное дело, никогда и ни при каких обстоятельствах не будут равны строке "Company", поэтому ваше условие в RLS работать не будет.

mzforums

Цитата: Luzer1C от 05 июл 2016, 05:48
1. Установить константу через настройку прав доступа на уровне записей "Контрагенты".
2. Создать группу для пользователя.
3. Включить папку из справочника "Контрагенты" в группу. Т.е. дать доступ к этой папке.
4. Включить пользователя в группу.
5. В роли из конфигуратора доработать RLS. Так не пойдет.

Спасибо за ответ,
1. Как установить константу?
2. Создал группу "Продавцы" (в программе, не в конфигураторе), переместил туда Продавца, но папку никак не могу включить туда - туда только пользователи могут включаться)
Добавлено: 05 июл 2016, 22:18


Цитата: mixqn от 05 июл 2016, 06:26
На вашем скрине написано, цитирую:
ЦитироватьГДЕ ЭтоГруппа <> "Company"
Это выражение ВСЕГДА будет иметь значение ИСТИНА. Потому, что ЭтоГруппа - это признак группы типа булево, имеет значение Истина или Ложь. Ни Истина, ни Ложь, понятное дело, никогда и ни при каких обстоятельствах не будут равны строке "Company", поэтому ваше условие в RLS работать не будет.

Благодарю за замечание,
Я также вместо ЭтоГруппа пробовал использовать Родитель. Требуемого эффекта тоже не дало.
Добавлено: 05 июл 2016, 22:21


Вообще, может есть другие способы?
Если еще раз коротко - нужно запретить доступ пользователя к определенной папке в Контрагентах.
Ну или дать доступ только к определенной папке.
Думаю должно быть как то просто.

Luzer1C

1. Константы ставятся в меню "Операции" - > Константы.
2. Переключить интерфейс на Администрирование пользователей.
3. Меню "Пользователи" - > Группы пользователей. Здесь находим нужную группу и добавляем группу доступа для Контрагентов, к которой нужно открыть доступ. Предварительно установив флажок на "Контрагенты".
4. Из справочника "Пользователи" находим пользователя и включаем его в группу.
5. В роли из конфигуратора в справочнике "Контрагенты" нужно прописать:

#Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
ТекущаяТаблица
ИЗ
    #ТекущаяТаблица КАК ТекущаяТаблица
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            СоставГруппы.Ссылка КАК ГруппаПользователей
        ИЗ
            Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
        ГДЕ
            СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
        ПО (ИСТИНА)
ГДЕ
ТекущаяТаблица.ЭтоГруппа
ИЛИ НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
    (НЕ 1 В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    1
                ИЗ
                    РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                                                               
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                        ПО
                            НастройкиПравДоступаПользователей.ОбъектДоступа = ЕСТЬNULL(ТекущаяТаблица.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка))
                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
                                И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДопИнформация)
                                                                                               
                                И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
                ГДЕ                 
                     НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                           И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
               
                    И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
#КонецЕсли

6. Шуршим весь справочник Контрагенты, на закладке "Прочее" забиваем нужную группу. Можно воспользоваться групповой обработкой.
7. Если у пользователя несколько ролей и в какой-либо роли есть полный доступ к справочнику "Контрагенты", то RLS работать не будет.
8. Это применимо к УПП. Хотя может везде так RLS работает.
9. Т.е. доступ к справочнику "Контрагенты" идет не через папки справочника, а через свои группы.
Халамбалам.

mzforums

Цитата: Luzer1C от 06 июл 2016, 05:07
1. Константы ставятся в меню "Операции" - > Константы.
2. Переключить интерфейс на Администрирование пользователей.
3. Меню "Пользователи" - > Группы пользователей. Здесь находим нужную группу и добавляем группу доступа для Контрагентов, к которой нужно открыть доступ. Предварительно установив флажок на "Контрагенты".

У меня нет таких пунктов меню. Приложил 2 скриншота.
Может можно переключить интерфейс?
Добавлено: 06 июл 2016, 23:33



Luzer1C

Нужно зайти в параметры и установить флажок "Все функции". Тогда появятся Константы.
Халамбалам.

mzforums


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск