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

Настроить доступ посредством RLS. Необходимо, чтобы каждый менеджер мог видеть только свой счет.

Автор xDD, 30 мар 2015, 18:08

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

xDD

Добрый день. Поделитесь опытом, если кто реализовывал данную задачу. УТ 11.1 Нужно настроить доступ посредством RLS. Необходимо, чтобы каждый менеджер мог видеть только свой счет на оплату. Почитал мануал, осталось только куча вопросов. Если я правильно понял, то в конфигураторе нужно в роли в документе Счет на оплату написать запрос: Если текущий пользователь из группы доступа менеджеров, тогда если менеджер из счета на оплату равен текущему пользователю то вывести иначе нет.
Как этот запрос должен выглядеть в запросе?

vitasw

см. скрин 1. Простейший вариант без шаблонов.
Скрин 2+3. Тот же отбор, но с использованием шаблонов

Дмитрий@

Думаю можно сделать так.
В конфигураторе правишь роль "ДобавлениеИзменениеСчетовНаОплатуКлиентам" документ "Счет на оплату клиентам" В RLS меняешь #ПоЗначениям("Документ.СчетНаОплатуКлиенту","Чтение","","Организации","Организация","ГруппыПартнеров","Партнер", "Пользователи","Менеджер", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" ).
Заходишь в 1С предприятие.
В справочнике "Профили групп доступа" изменяешь, в которую входят пользователи, например группу "Бухгалтер", убираешь роли из этой группы, которые позволяют читать документы "Счет на оплату клиенту", кроме роли "ДобавлениеИзменениеСчетовНаОплатуКлиентам", И ставишь ограничение доступа "Пользователи" = "Все запрещены, исключения назначаются в группах доступа".   

xDD

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

Дмитрий@

Во-первых:Если помогло нажми на спасибо.
Во-вторых: что такое руководитель подразделения "Профили групп доступа", "Группа доступа", какие у него права?
В-третьих: что значит своих менеджеров, по каким признакам они считаются своими?

xDD

Дмитрий на спасибо нажал. Ваш способ еще не проверял, как проверю тоже вам нажму спасибо. Есть группы доступа  менеджеры отдел №1 и менеджеры отдел №2, у каждого отдела есть руководители рук №1 - отдел №1, рук №2 - отдел №2. Каждый из руководителей имеет свою группу доступа и свою роль, группа доступа руководитель №1 имеет роль РольРуководитель1, группа доступа Руководитель№2 имеет роль РольРуководитель2. Необходимо, чтобы менеджеры могли видеть только свои счета на оплату, руководитель №1 мог видеть, только счет на оплату отдела №1, руководитель №2 мог видеть счета на оплату отдела №2.
Добавлено: 31 мар 2015, 15:44


На сколько я понимаю, для решения этой задачи в роли руководителя 1 нужно сделать что-то вроде
"СчетНаОплатуКлиенту ГДЕ СчетНаОплатуКлиенту.Менеджер В (&СписокМенеджеров)". Вот только как передать в параметр список менеджеров из группы доступа отдел №1

Дмитрий@

Создаете профиль групп доступа, для руководителей менеджеров. В которые в ограничения добавляете "Пользователь" = "Все запрещены, исключения назначаются в группах доступа".
Для каждого руководителя создаете свою группу доступа, где на вкладке ограничения выбираете "пользователь" = "Все запрещены", и в нижнюю табличную часть добавляете список менеджеров которых он должен видеть.
По идее должно работать, но не проверял.
При создании групп доступа не забудьте добавить и роли необходимые руководителю, а также добавить роль "Добавление изменение счетов на оплату клиентам", остальные роли которые позволяют считать документы на оплату не добавляйте.

LexaK

допустим у вас есть справочник Отделы
Реквизиты (и пример)
Код  = "0001";
Наименование = "Отдел №1";
Руководитель = "Иванов И.И." (Ссылка Справочник Пользователи)

табличная часть

Менеджеры где есть колонка Менеджер
Менеджер1 (Ссылка Справочник Пользователи)
Менеджер2 (Ссылка Справочник Пользователи)
Менеджер4 (Ссылка Справочник Пользователи)

заводите Роль РуководительОтдела
и для этой роли назначаете права

СчетНаОплатуКлиенту ИЗ Документ.СчетНаОплатуКлиенту КАК Док
   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Отделы.Менеджеры КАК Спр
   ПО Док.Менеджер = Спр.Менеджер
ГДЕ Спр.Ссылка.Руководитель = &ТекущийПользователь

таким образом Руководитель будет иметь доступ ко всем документам менеджеров где он руководитель,

а еще (по большому секрету) можно пользоваться конструктором запросов при написании условий ограничений по роли, там очень удобно подтягивать различные данные из регистров, справочников и других документов, см. картинку
если помогло нажмите: Спасибо!

DmitriyF

Цитата: Дмитрий@ от 31 мар 2015, 00:22
Думаю можно сделать так.
В конфигураторе правишь роль "ДобавлениеИзменениеСчетовНаОплатуКлиентам" документ "Счет на оплату клиентам" В RLS меняешь #ПоЗначениям("Документ.СчетНаОплатуКлиенту","Чтение","","Организации","Организация","ГруппыПартнеров","Партнер", "Пользователи","Менеджер", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" ).
Заходишь в 1С предприятие.
В справочнике "Профили групп доступа" изменяешь, в которую входят пользователи, например группу "Бухгалтер", убираешь роли из этой группы, которые позволяют читать документы "Счет на оплату клиенту", кроме роли "ДобавлениеИзменениеСчетовНаОплатуКлиентам", И ставишь ограничение доступа "Пользователи" = "Все запрещены, исключения назначаются в группах доступа".
Плохая практика трогать типовые механизмы, лучше бы посоветовали создать дополнительную роль и в ней все делать.

Дмитрий@

DmitriyF. Изменения незначительны, нужно добавить два параметра, а запрос трогать не будем. И думаю, что здесь одной ролью не обойдется, в будущем им придется еще несколько ролей править. Там помимо пользователей, есть еще и внешние пользователи. А добавлять несколько ролей из-за добавления нескольких параметров не стоит. Просто надо качественно обновлять.
К тому же делать дополнительные роли, и при этом типовые роли будут просто так лежать без использования, на мой взгляд это тоже нехорошо.

Теги:

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

Рейтинг@Mail.ru

Поиск