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