Согласование 1С:документооборот

1. cps83 04.04.19 17:35 Сейчас в теме
Коллеги, подскажите пжл.
Запускаем комплексный процесс на согласование договора. Падают задачи параллельно на исполнительного директора и на финансового. Автор запущенного процесса на вкладке "Процессы и задачи", может выбрать задачу например Исполнительного директора и нажать кнопку Согласовано, при этом в на вкладке "Визы" появляется:

Согласующее лицо - Исполнительный директор, и ФИО того кто согласовал.

Как сделать, что бы согласовывать мог только человек с ролью "Исполнительный директор".
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. arsen_botashev 04.04.19 18:06 Сейчас в теме
(1) В процедуре перед выполнением, Проверяешь
Если НЕ РольДоступна("ИсполнительныйДиректор") Тогда 
Отказ = истина;
Сообщить("У Вас недостаточно прав")
КонецЕсли


Если такая роль конечно есть)
3. cps83 05.04.19 07:27 Сейчас в теме
Спасибо огромное, я думал можно какими-либо внутренними инструментами 1С
4. melenaspb 208 05.04.19 11:40 Сейчас в теме
Если автор может исполнять задачи за других пользователей - у него , скорее всего, есть на это права, а так такой возможности быть не должно.
Посмотрите у этого пользователя в "Группах и полномочиях" - нет ли у него полномочия "Контроль задач и бизнес-процессов" ( или в назначенных полномочиях пользователя, не выбрана ли такая роль). Эта роль дает неограниченные права на все задачи и процессы. Или может у пользователя есть права администратора?
И если уж проверять программно - надо проверять не РольДоступна(это проверяются роли доступа) , а есть ли у пользователя нужная роль исполнителя
Как-то так:
Роль_ИсполнительныйДиректор = Справочники.РолиИсполнителей.НайтиПоНаименованию("Исполнительный директор");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИсполнителиРолейИДелегаты.ИсполнительДелегат
|ИЗ
| РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК РолиИсполнителей
| ПО ИсполнителиРолейИДелегаты.РольПользователь.Владелец = РолиИсполнителей.Ссылка
| И (ИсполнителиРолейИДелегаты.РольПользователь.Владелец =&РолиПользователя)
|ГДЕ
| ИсполнителиРолейИДелегаты.ИсполнительДелегат = &ИсполнительДелегат" ;
Запрос.УстановитьПараметр("ИсполнительДелегат",Пользователь);
Запрос.УстановитьПараметр("РолиПользователя",Роль_ИсполнительныйДиректор );

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() тогда
Отказ = истина;
Сообщить("У Вас недостаточно прав")
Иначе
Отказ = Ложь;
КонецЕсли;
user705522_constantin_h; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот