За доступ на чтение сотрудников в ЗУП 3.1 отвечают две роли "Чтение данных сотрудников" и "Добавление и изменение данных сотрудников".
Код типового RLS выглядит так:
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный( "Справочник.Сотрудники","Чтение","",
"ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОрганизацииВКоторыхРаботалиСотрудники КАК Т2 ПО Т2.Сотрудник = Т.Ссылка", "",
"Организации","Т2.Организация","и",
"ГруппыФизическихЛиц","Т.ФизическоеЛицо","",
"","","","","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли
Меняем его на следующий:
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениямРасширенный("Справочник.Сотрудники","Чтение","",
"ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОрганизацииВКоторыхРаботалиСотрудники КАК Т2 ПО Т2.Сотрудник = Т.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК Т4
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т3
ПО Т3.Подразделение = Т4.Подразделение И Т4.ДатаОкончания = ДАТАВРЕМЯ(3999,12,31,23,59,59)
ПО Т.Ссылка = Т4.Сотрудник", "",
"Организации","Т2.Организация","и",
"ГруппыФизическихЛиц","Т.ФизическоеЛицо","и",
"ПодразделенияОрганизаций","ЕстьNull(Т3.ВышестоящееПодразделение,Значение(Справочник.ПодразделенияОрганизаций.Пустаяссылка))","",
"","","",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","" )
#КонецЕсли
После настройки разграничения доступа по подразделениям у пользователя вступят в силу ограничения по подразделениям.
Для того чтобы пользователь мог создавать сотрудников ему необходимо в доступные подразделения добавить пустое подразделение.
Для того чтобы пользователь видел сотрудника работавшего когда либо в доступном ему подразделении надо убрать условие: "И Т4.ДатаОкончания = ДАТАВРЕМЯ(3999,12,31,23,59,59)".
Имейте ввиду, сотрудники временно переведенные в другое подразделение будут доступны только тем пользователям у которых есть доступ к его основному подразделению. Для того чтобы убрать этот нюанс, вместо условия по Дате окончания необходимо поставить условие: "И &ПараметрСеансаСТекущейДатой между Т4.ДатаНачала И Т4.ДатаОкончания". Соответственно надо позаботиться о заполнении параметра сеанса.
Данная корректировка применима для обычной(не оптимизированного) варианта работы RLS.
Вырезка с ИТС:
Полноценное ограничение доступа по подразделениям в программе не поддерживается. Согласно законодательству расчет НДФЛ и взносов следует вести в целом по физ. лицу, независимо от его перемещений между подразделениями.
Примечание
По этой же причине не имеет смысла давать доступ только к определенному филиалу (обособленному подразделению, выделенному на отдельный баланс), не дав при этом доступа к головной организации. С точки зрения учета НДФЛ и взносов такое обособленное подразделение не отличается от «обычного» подразделения организации.
Для реализации в программе таких ограничений следует использовать доступ с точностью до физических лиц. В качестве групп доступа физических лиц следует использовать группы вида «Сотрудники подразделения 1», «Сотрудники подразделения 2» и т. п. При этом для возможности работы с сотрудниками, перемещающимися между подразделениями, может потребоваться включать их в группы вида «Сотрудники подразделений 1 и 2». Права на такие группы придется обеспечить для групп доступа, пользователи которых работают с каждым из этих подразделений.