Как ограничить доступ к некоторым реквизитам документа для определённой роли исполнителя?
Документооборот 8 КОРП, платформа 8.3.
Как ограничить доступ к некоторым реквизитам документа для определённой роли исполнителя?
Почитала форум, сделала так, но не работает конечно же.
Как ограничить доступ к некоторым реквизитам документа для определённой роли исполнителя?
Почитала форум, сделала так, но не работает конечно же.
Если РольДоступна ("НачальникОтделаСбыта") Тогда
Элементы.Элемент1.Видимость = Ложь;
Элементы.Элемент2.Видимость = Ложь;
иначе
Элементы.Элемент1.Видимость = Истина;
Элементы.Элемент2.Видимость = Истина;
КонецЕсли;
Найденные решения
Роль_НачальникОтделаСбыта = Справочники.РолиИсполнителей.НайтиПоНаименованию("Начальник отдела сбыта");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИсполнителиРолейИДелегаты.ИсполнительДелегат
|ИЗ
| РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК РолиИсполнителей
| ПО ИсполнителиРолейИДелегаты.РольПользователь.Владелец = РолиИсполнителей.Ссылка
| И (ИсполнителиРолейИДелегаты.РольПользователь.Владелец =&РолиПользователя)
|ГДЕ
| ИсполнителиРолейИДелегаты.ИсполнительДелегат = &ИсполнительДелегат" ;
Запрос.УстановитьПараметр("ИсполнительДелегат",Пользователь); //Тут Пользователь - для кого проверяем доступ
Запрос.УстановитьПараметр("РолиПользователя",Роль_НачальникОтделаСбыта );
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() тогда //Роли исполнителя нет
Элементы.Элемент1.Видимость = Ложь;
Элементы.Элемент2.Видимость = Ложь;
Иначе
Элементы.Элемент1.Видимость = Истина;
Элементы.Элемент2.Видимость = Истина;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Роль_НачальникОтделаСбыта = Справочники.РолиИсполнителей.НайтиПоНаименованию("Начальник отдела сбыта");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИсполнителиРолейИДелегаты.ИсполнительДелегат
|ИЗ
| РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК РолиИсполнителей
| ПО ИсполнителиРолейИДелегаты.РольПользователь.Владелец = РолиИсполнителей.Ссылка
| И (ИсполнителиРолейИДелегаты.РольПользователь.Владелец =&РолиПользователя)
|ГДЕ
| ИсполнителиРолейИДелегаты.ИсполнительДелегат = &ИсполнительДелегат" ;
Запрос.УстановитьПараметр("ИсполнительДелегат",Пользователь); //Тут Пользователь - для кого проверяем доступ
Запрос.УстановитьПараметр("РолиПользователя",Роль_НачальникОтделаСбыта );
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() тогда //Роли исполнителя нет
Элементы.Элемент1.Видимость = Ложь;
Элементы.Элемент2.Видимость = Ложь;
Иначе
Элементы.Элемент1.Видимость = Истина;
Элементы.Элемент2.Видимость = Истина;
КонецЕсли;
Показать
Код в целом правильный, если имена корректные. Проблема может быть в другом, видимость/доступность элементов определяется типовым кодом и тут надо выполнять Ваш код, после типового, если до, то просто видимость переопределяется типовым кодом.
UPD не внимательно прочитал, в документообороте, действительно все сложно с ролями.
UPD не внимательно прочитал, в документообороте, действительно все сложно с ролями.
Если и проверять роль доступна - то только на права администратора, чтобы админ видел все.
Если Не РольДоступна("ПолныеПрава") тогда
тут проверяем уже роли исполнителя и ограничиваем видимость/доступность
КонецЕсли;
Вотакуот делать не надо: "Роль_НачальникОтделаСбыта = Справочники.РолиИсполнителей.НайтиПоНаименованию("Начальник отдела сбыта"); ". Если очень хочется такое наколбасить, можно предопределённым элементом роль сделать и обращаться через точку. А вообще в коде условия по конкретным значениям справочника ставить очень не комильфо.
(11)
Это 7 ролей в итоге.
Всем спасибо за участие.
Подумали и решили, проще скрыть реквизиты в настройках формы этих пользователей и запретить им менять настройки форм.
Чтобы конфигуратор сильно не колхозить.
Если очень хочется такое наколбасить, можно предопределённым элементом роль сделать и обращаться через точку.
Это 7 ролей в итоге.
Всем спасибо за участие.
Подумали и решили, проще скрыть реквизиты в настройках формы этих пользователей и запретить им менять настройки форм.
Чтобы конфигуратор сильно не колхозить.
(15) не вариант совсем.
Документ имеет несколько реквизитов. Эти реквизиты, по ходу рассмотрения документа, заполняют адресаты.
Например, реквизит 1 заполняет адресат 1, далее реквизит 2 заполняет адресат 2. Причем адресат 2 не должен иметь возможности редактировать реквизит 1. В стандартных настройках доступа дополнительных реквизитов нет возможности ограничить доступ к реквизиту по роли или пользователю. Поэтому приходится извращаться.
Документ имеет несколько реквизитов. Эти реквизиты, по ходу рассмотрения документа, заполняют адресаты.
Например, реквизит 1 заполняет адресат 1, далее реквизит 2 заполняет адресат 2. Причем адресат 2 не должен иметь возможности редактировать реквизит 1. В стандартных настройках доступа дополнительных реквизитов нет возможности ограничить доступ к реквизиту по роли или пользователю. Поэтому приходится извращаться.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот