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

По теме из базы знаний
Найденные решения
Правильным решением является разделение по физ лицам.
При делении по подразделениям возникают проблемы при переводе из подразделения а подразделение. Например в этом случае не видно общего расчета сотрудника и есть проблемы с соц налогами и НДФЛ и со средним.
Поэтому настраивается типовой РЛС по физлицу и продумывается как коррекно назначать физлицу группу. Можно это програмно делать, в зависимости от подразделения.
При делении по подразделениям возникают проблемы при переводе из подразделения а подразделение. Например в этом случае не видно общего расчета сотрудника и есть проблемы с соц налогами и НДФЛ и со средним.
Поэтому настраивается типовой РЛС по физлицу и продумывается как коррекно назначать физлицу группу. Можно это програмно делать, в зависимости от подразделения.
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный( "Справочник.ПодразделенияОрганизаций","Чтение","",
"ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2
ПО Т2.Подразделение = Т.Ссылка",
"",
"ПодразделенияОрганизаций","Т2.ВышестоящееПодразделение","И",
"Организации","Т.Владелец","",
"","","","","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный( "Справочник.ПодразделенияОрганизаций","Чтение","",
"ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2
ПО Т2.Подразделение = Т.Ссылка",
"",
"ПодразделенияОрганизаций","Т2.ВышестоящееПодразделение","И",
"Организации","Т.Владелец","",
"","","","","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли
Показать
(24) Спасибо. Но такой запрос также не работает корректно. Я зохожу под пользователем, у которого разрешены все организации, разрешены все подразделени, кроме 1.
В итоге под ним видны все организации, но не видно ниодного подразделения(. Также RLS не наклдывается на список кадровых документов. Все выводятся.....
Я так понимаю тут нужно менять сам текст шаблона, который нереально большой и сложнвый.....
В итоге под ним видны все организации, но не видно ниодного подразделения(. Также RLS не наклдывается на список кадровых документов. Все выводятся.....
Я так понимаю тут нужно менять сам текст шаблона, который нереально большой и сложнвый.....
(24) В вашем примере ВИДНЫ иерархически вложенные подразделения, когда мы НЕ даем на них права.
Я составил мой вариант.
Моя цель - дать "табельщикам" права видеть ТОЛЬКО те подразделения, которые им разрешены (для ведения табелей). И она достигнута.
Я составил мой вариант.
Моя цель - дать "табельщикам" права видеть ТОЛЬКО те подразделения, которые им разрешены (для ведения табелей). И она достигнута.
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный( "Справочник.ПодразделенияОрганизаций","Чтение","",
"ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2
ПО Т2.Подразделение = Т.Ссылка",
"",
"ПодразделенияОрганизаций","Т2.Подразделение","И",
"Организации","Т.Владелец","",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли
Показать
(36)
Выявился негативный момент. Если до конца табелируемого периода сотрудникумчал в закат перевёлся в недоступное подразделение, то заполнение табеля даёт сбой.
Один из методов (заполнения ТЧ часами) смотрит подразделение сотрудника на конец периода....
В общем, на "табелировании" я пользакам вернул право чтения подразделений (без RLS)
Но оставляю мой RLS тем, кто вводит "данные для расчёта зарплаты".
Выявился негативный момент. Если до конца табелируемого периода сотрудник
Один из методов (заполнения ТЧ часами) смотрит подразделение сотрудника на конец периода....
В общем, на "табелировании" я пользакам вернул право чтения подразделений (без RLS)
Но оставляю мой RLS тем, кто вводит "данные для расчёта зарплаты".
(1)
Когда задача сформулирована столь кратко, создается иллюзия что решить ее просто, например, немного подкрутив RLS.
Просто подкину пару кейсов. Допустим есть два региональных подразделения, в каждом свой кадровик, и есть логичное в общем требование чтобы каждый кадровик видел документы по своим сотрудникам. И тут случился перевод сотрудника из города А в город Б. Должны ли у кадровика из А пропасть из видимости все документы, введенные им на сотрудника? Должен ли кадровик из Б увидеть документы по сотруднику из А? Кто вообще имеет право завести такой перевод, если кадровик А не видит подразделения Б, а кадровик Б не видит сотрудников А?
чтобы пользователю были видны только те подразделения, которые указаны в разрешенных значениях.
чтобы пользователь мог видеть только тех сотрудников, подразделение которых совпадает с подразделением из настроек
чтобы пользователь мог видеть только тех сотрудников, подразделение которых совпадает с подразделением из настроек
Когда задача сформулирована столь кратко, создается иллюзия что решить ее просто, например, немного подкрутив RLS.
Просто подкину пару кейсов. Допустим есть два региональных подразделения, в каждом свой кадровик, и есть логичное в общем требование чтобы каждый кадровик видел документы по своим сотрудникам. И тут случился перевод сотрудника из города А в город Б. Должны ли у кадровика из А пропасть из видимости все документы, введенные им на сотрудника? Должен ли кадровик из Б увидеть документы по сотруднику из А? Кто вообще имеет право завести такой перевод, если кадровик А не видит подразделения Б, а кадровик Б не видит сотрудников А?
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение","",
"Организации","Владелец",
"И","ПодразделенияОрганизации","Ссылка","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли
Ну как то так примерно, параметр ПодразделенияОрганизации может не совсем так называться
(2) Не совсем так, насколько я понимаю. Начиная с 4-го параметра, указываются пары "вид доступа" - "проверяемый реквизит объекта". Для доступности объекта, разрешение должно быть найдено хотя бы в одной группе доступа, в которую включен пользователь, для всех указанных пар одновременно. Соответственно, предположив наличие соответствующей группы доступа, 6-й "И" лишний.
(3)
Да не посмотрел сразу что шаблон привык обычно ПоЗначениямРасширенный делать
Тогда да "И" Убрать надо
Для доступности объекта, разрешение должно быть найдено хотя бы в одной группе доступа, в которую включен пользователь, для всех указанных пар одновременно. Соответственно, предположив наличие соответствующей группы доступа, 6-й "И" лишний.
Да не посмотрел сразу что шаблон
#ПоЗначениям
Тогда да "И" Убрать надо
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение","",
"Организации","Владелец",
"ПодразделенияОрганизации","Ссылка","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли
(4)
Выдает ошибку:
Пробовал по разному добавлять параметры ПодразделенияОрганизации и Ссылка, что то не принимает(
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение","",
"Организации","Владелец",
"ПодразделенияОрганизации","Ссылка","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение","",
"Организации","Владелец",
"ПодразделенияОрганизации","Ссылка","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли
Выдает ошибку:
Ошибка при выполнении запроса.
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: 'Справочник.ПодразделенияОрганизаций'; право: 'Чтение'
{(98, 3)}: Ожидается выражение ")"
<<?>>НеверныйВидДоступа: "ПодразделенияОрганизации" - "Имя вида доступа не найдено"
по причине:
{(98, 3)}: Ожидается выражение ")"
<<?>>НеверныйВидДоступа: "ПодразделенияОрганизации" - "Имя вида доступа не найдено"
ПоказатьПробовал по разному добавлять параметры ПодразделенияОрганизации и Ссылка, что то не принимает(
(12)
Смотрю текст шаблона. Параметр 6 вроде как проверяется на строку "". В общем если ставлю в 6 ПравоЧтения
то список подр. формируется без ошибок но и без наложения RLS.
СтруктураПредприятия
Смотрю текст шаблона. Параметр 6 вроде как проверяется на строку "". В общем если ставлю в 6 ПравоЧтения
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение","",
"Организации","Владелец",
"ПравоЧтения","Ссылка","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли
то список подр. формируется без ошибок но и без наложения RLS.
Прикрепленные файлы:

стопэ. а почему Вы решили что это не реализовано???
Нужно включить настройку "Ограничивать доступ на уровне записей".
В справочнике Профили групп доступа появляется доп. закладка.
Вид доступа нужно указать Структура предприятия.
Городить велосипед точно не надо. Сначала стоит почитать статьи на эту тему.
Нужно включить настройку "Ограничивать доступ на уровне записей".
В справочнике Профили групп доступа появляется доп. закладка.
Вид доступа нужно указать Структура предприятия.
Городить велосипед точно не надо. Сначала стоит почитать статьи на эту тему.
(5) я так и пробовал сделать с самого начала. См скрин прикрепил. Но вот только судя по статье из ИТС
Данная настройка ограничения работает ТОЛЬКО для спр. штатное расписание.
полноценное ограничение доступа по подразделениям в программе не поддерживается. Согласно законодательству расчет НДФЛ и взносов следует вести в целом по физ. лицу, независимо от его перемещений между подразделениями.
Данная настройка ограничения работает ТОЛЬКО для спр. штатное расписание.
Прикрепленные файлы:

и что не устраивает? Правильное замечание. Зарплату и кадровые документы видят только по своим подразделениям, но база для расчета налогов единая по физлицу.
Не изобретайте велосипед! Если надо делить по подразделениям, есть ещё механизм территорий. Но опять же при начислении никаких отборов не делается. Когда мне нужен был такой отбор, я его дописывал во все документы начислений. Это довольно сложно!
РЛС глубже, чем по подразделениям крайне не рекомендую использовать, т.к. быстродействие падает раза в 3-4 в зависимости от мощности сервера
Вы должны понять главное, что далеко не во всех запросах написано ВЫБРАТЬ РАЗРЕШЕННЫЕ, чтоб собственно сработало РЛС. Обычно этот фильтр делается в момент получения списка физлиц.
Не изобретайте велосипед! Если надо делить по подразделениям, есть ещё механизм территорий. Но опять же при начислении никаких отборов не делается. Когда мне нужен был такой отбор, я его дописывал во все документы начислений. Это довольно сложно!
РЛС глубже, чем по подразделениям крайне не рекомендую использовать, т.к. быстродействие падает раза в 3-4 в зависимости от мощности сервера
Вы должны понять главное, что далеко не во всех запросах написано ВЫБРАТЬ РАЗРЕШЕННЫЕ, чтоб собственно сработало РЛС. Обычно этот фильтр делается в момент получения списка физлиц.
(18)
И что ?? дальше то что ? я не могу понять, ? Людям нужно ограничить подразделения по одной организации ..вы как это делать собираетесь( не спрашивайте меня зачем) ...
Я так понимаю вам лишь бы написать что нибудь :)...
сли стоит РЛС по структуре предприятия, то подразделения другой организации не залетят НИКАК.
И что ?? дальше то что ? я не могу понять, ? Людям нужно ограничить подразделения по одной организации ..вы как это делать собираетесь( не спрашивайте меня зачем) ...
Я так понимаю вам лишь бы написать что нибудь :)...
В 2.5 долго обдумывала эту тему. Ограничилась группами доступа физ.лиц. Если ограничивать по подразделениями, то возникают проблемы при формировании свода по зарплате по подразделениям в случае, если перевод из подразделения в другое подразделение был выполнен в течение периода.
Правильным решением является разделение по физ лицам.
При делении по подразделениям возникают проблемы при переводе из подразделения а подразделение. Например в этом случае не видно общего расчета сотрудника и есть проблемы с соц налогами и НДФЛ и со средним.
Поэтому настраивается типовой РЛС по физлицу и продумывается как коррекно назначать физлицу группу. Можно это програмно делать, в зависимости от подразделения.
При делении по подразделениям возникают проблемы при переводе из подразделения а подразделение. Например в этом случае не видно общего расчета сотрудника и есть проблемы с соц налогами и НДФЛ и со средним.
Поэтому настраивается типовой РЛС по физлицу и продумывается как коррекно назначать физлицу группу. Можно это програмно делать, в зависимости от подразделения.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот