Доброго времени суток. Есть типовая ЗУП 3.1.16.134. Думаю тип конфигурации тут не сиграет значение, ибо все работает на БСП.

Необходимо реализовать разграничение прав пользователей по подразделениям. В типовой ЗУП этого к сожалению не предусмотрено.
Подскажите каким образом отредактировать типовой шаблон RLS у роли ЧтениеПодразделенийОрганизации

```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "Организации","Владелец",
    ",",",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "," )
    #КонецЕсли
```

чтобы пользователю были видны только те подразделения, которые указаны в разрешенных значениях.

Также интересует как наложить RLS на все кадровые документы по разрешенным подразделениям, а также чтобы пользователь мог видеть только тех сотрудников, подразделение которых совпадает с подразделением из настроек.
---
Правильным решением является разделение по физ лицам.

При делении по подразделениям возникают проблемы при переводе из подразделения а подразделение. Например в этом случае не видно общего расчета сотрудника и есть проблемы с соц налогами и НДФЛ и со средним.

 Поэтому настраивается типовой РЛС по физлицу и продумывается как коррекно назначать физлицу группу. Можно это програмно делать, в зависимости от подразделения.
---
```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениямРасширенный( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2
    ПО Т2.Подразделение = Т.Ссылка",
    ",
    "ПодразделенияОрганизаций","Т2.ВышестоящееПодразделение","И",
    "Организации","Т.Владелец",",
    ",",",",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ","," )
    #КонецЕсли
```
---
```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениямРасширенный( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2
    ПО Т2.Подразделение = Т.Ссылка",
    ",
    "ПодразделенияОрганизаций","Т2.ВышестоящееПодразделение","И",
    "Организации","Т.Владелец",",
    ",",",",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ","," )
    #КонецЕсли
```
---
Спасибо. Но такой запрос также не работает корректно. Я зохожу под пользователем, у которого разрешены все организации, разрешены все подразделени, кроме 1.
В итоге под ним видны все организации, но не видно ниодного подразделения(. Также RLS не наклдывается на список кадровых документов. Все выводятся.....
Я так понимаю тут нужно менять сам текст шаблона, который нереально большой и сложнвый.....
---
Нет должно отрабатывать корректно, у меня получалось. Возможно у пользователя на форме стоит отбор, которые противоречит его правам.
---
А вы можете прислать скрин настроек вашей группы доступа и профиля группы доступа. Я сравню со своими.
Также какие роли у вас назначены в профиле группы доступа, если у вас типовая ЗУП)
---
Нет, я разрабатывал свою роль: задаче была, чтобы пользователь видел только определенные организации и подразделения, без структуры.
---
Я тоже сделал отдельную роль. Назначил ее в новой группе доступа. Включил пользователя в эту группу. Но, вот не работает.
А вы получается не используете механизм групп доступа?
---
использую.
---
В вашем примере ВИДНЫ иерархически вложенные подразделения, когда мы НЕ даем на них права.

Я составил мой вариант.
Моя цель - дать "табельщикам" права видеть ТОЛЬКО те подразделения, которые им разрешены (для ведения табелей). И она достигнута.

```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениямРасширенный( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2
    ПО Т2.Подразделение = Т.Ссылка",
    ",
    "ПодразделенияОрганизаций","Т2.Подразделение","И",
    "Организации","Т.Владелец",",
    ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ",",", ","," )
    #КонецЕсли
```
---
Выявился негативный момент. Если до конца табелируемого периода сотрудник умчал в закат перевёлся в недоступное подразделение, то заполнение табеля даёт сбой.
Один из методов (заполнения ТЧ часами) смотрит подразделение сотрудника на конец периода....
В общем, на "табелировании" я пользакам вернул право чтения подразделений (без RLS)
Но оставляю мой RLS тем, кто вводит "данные для расчёта зарплаты".
---
чтобы пользователю были видны только те подразделения, которые указаны в разрешенных значениях.
чтобы пользователь мог видеть только тех сотрудников, подразделение которых совпадает с подразделением из настроек
Когда задача сформулирована столь кратко, создается иллюзия что решить ее просто, например, немного подкрутив RLS.
Просто подкину пару кейсов. Допустим есть два региональных подразделения, в каждом свой кадровик, и есть логичное в общем требование чтобы каждый кадровик видел документы по своим сотрудникам. И тут случился перевод сотрудника из города А в город Б. Должны ли у кадровика из А пропасть из видимости все документы, введенные им на сотрудника? Должен ли кадровик из Б увидеть документы по сотруднику из А? Кто вообще имеет право завести такой перевод, если кадровик А не видит подразделения Б, а кадровик Б не видит сотрудников А?
---
```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "Организации","Владелец",
    "И","ПодразделенияОрганизации","Ссылка",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "," )
    #КонецЕсли
```

Ну как то так примерно, параметр ПодразделенияОрганизации может не совсем так называться
---
Не совсем так, насколько я понимаю. Начиная с 4-го параметра, указываются пары "вид доступа" - "проверяемый реквизит объекта". Для доступности объекта, разрешение должно быть найдено хотя бы в одной группе доступа, в которую включен пользователь, для всех указанных пар одновременно. Соответственно, предположив наличие соответствующей группы доступа, 6-й "И" лишний.
---
Для доступности объекта, разрешение должно быть найдено хотя бы в одной группе доступа, в которую включен пользователь, для всех указанных пар одновременно. Соответственно, предположив наличие соответствующей группы доступа, 6-й "И" лишний.
Да не посмотрел сразу что шаблон
```1c
    #ПоЗначениям
```
 привык обычно ПоЗначениямРасширенный делать
Тогда да "И" Убрать надо

```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "Организации","Владелец",
    "ПодразделенияОрганизации","Ссылка",",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "," )
    #КонецЕсли
```
---
#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение","",
"Организации","Владелец",
"ПодразделенияОрганизации","Ссылка","","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли

Выдает ошибку:

```1c
    Ошибка при выполнении запроса.
    по причине:
    Ошибка получения данных
    по причине:
    Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
    по причине:
    Ошибка при исполнении запроса набора данных
    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка в ограничении доступа к данным.
    объект: 'Справочник.ПодразделенияОрганизаций'; право: 'Чтение'
    {(98, 3)}: Ожидается выражение ")"
    <<?>>НеверныйВидДоступа: "ПодразделенияОрганизации" - "Имя вида доступа не найдено"
    по причине:
    {(98, 3)}: Ожидается выражение ")"
    <<?>>НеверныйВидДоступа: "ПодразделенияОрганизации" - "Имя вида доступа не найдено"
```

Пробовал по разному добавлять параметры ПодразделенияОрганизации и Ссылка, что то не принимает(
---
>НеверныйВидДоступа: "ПодразделенияОрганизации
Ну вот я про это и писал, вид доступа значит по другому называется...надо смотреть
---
Попробуйте вместо "ПодразделенияОрганизации" поставить "СтруктураПредприятия" Или просто "подразделения", вообще вид доступа должен называться так же как и справочник в конфигурации у вас Типа "ПодразделенияОрганизаций" т.е. в конце и краткое..
---
СтруктураПредприятия
Смотрю текст шаблона. Параметр 6 вроде как проверяется на строку "". В общем если ставлю в 6 ПравоЧтения

```1c
    #Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
    #ДляОбъекта(")
    #Иначе
    #ПоЗначениям( "Справочник.ПодразделенияОрганизаций","Чтение",",
    "Организации","Владелец",
    "ПравоЧтения","Ссылка",",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "," )
    #КонецЕсли
```

то список подр. формируется без ошибок но и без наложения RLS.
---
стопэ. а почему Вы решили что это не реализовано???
Нужно включить настройку "Ограничивать доступ на уровне записей".

В справочнике Профили групп доступа появляется доп. закладка.
Вид доступа нужно указать Структура предприятия.

Городить велосипед точно не надо. Сначала стоит почитать статьи на эту тему.
---
я так и пробовал сделать с самого начала. См скрин прикрепил. Но вот только судя по статье из ИТС
полноценное ограничение доступа по подразделениям в программе не поддерживается. Согласно законодательству расчет НДФЛ и взносов следует вести в целом по физ. лицу, независимо от его перемещений между подразделениями.

Данная настройка ограничения работает ТОЛЬКО для спр. штатное расписание.
---
Кстати РЛС по организациям Вам не требуется. Справочник Подразделения является подчиненным Организации. Никаким образом суммы из другой организации не прилетят, а работа будет заторможена!
Выбирается обычно один из вариантов, а не комбинация
---
и что не устраивает? Правильное замечание. Зарплату и кадровые документы видят только по своим подразделениям, но база для расчета налогов единая по физлицу.

Не изобретайте велосипед! Если надо делить по подразделениям, есть ещё механизм территорий. Но опять же при начислении никаких отборов не делается. Когда мне нужен был такой отбор, я его дописывал во все документы начислений. Это довольно сложно!

РЛС глубже, чем по подразделениям крайне не рекомендую использовать, т.к. быстродействие падает раза в 3-4 в зависимости от мощности сервера

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

Дальше не стану с Вами припираться... бессмысленно.
---
Ответил на Ваш вопрос?
---
Тоже что-то не верится, что такого разграничения нет "из коробки".
---
Попробуйте для разделения вместо Вида доступа по Подразделениям использовать Вид доступа по Группам доступа физ. лиц
---
ужасная идея! всё жутко тормозит. а главное смысла нет.
---
В 2.5 долго обдумывала эту тему. Ограничилась группами доступа физ.лиц. Если ограничивать по подразделениями, то возникают проблемы при формировании свода по зарплате по подразделениям в случае, если перевод из подразделения в другое подразделение был выполнен в течение периода.
---
Правильным решением является разделение по физ лицам.

При делении по подразделениям возникают проблемы при переводе из подразделения а подразделение. Например в этом случае не видно общего расчета сотрудника и есть проблемы с соц налогами и НДФЛ и со средним.

 Поэтому настраивается типовой РЛС по физлицу и продумывается как коррекно назначать физлицу группу. Можно это програмно делать, в зависимости от подразделения.
---
так при переводе нужно 1 физлицо будет включать в разные группы. кто это будет контролировать?
при такой настройке ЗУП жутко тормозит.