Доступность процессов и задач по предмету всем участникам рабочей группы документа
Простой способ сделать задачи и процессы доступными всем участникам рабочей группы документа. Для этого нужно добавить дополнительный обработчик бизнес-события, который будет срабатывать по виду события "Старт процесса". Актуально, если используете комплексные процессы, и не все участники видят задачи друг друга.
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Посмотрев как работает обработчик, решил немного ограничить запись. Дело в том что в таком виде для каждого процесса (и основного комплексного и вложенных в него) создаются достаточно много записей в регистре. Поскольку потребность видеть все процессы была у отдела кадров, решил сделать фильтр именно по ним.
В самом начале определил массив в котором собрал роли, группы и пользователей ОК,
Затем проверяю входит ли участник рабочей группы основного предмета в этот массив.
В самом начале определил массив в котором собрал роли, группы и пользователей ОК,
ПользовательИванова = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("3a219092-f819-11ea-b67d-0cc47a283a95"));
ПользовательПетрова = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("0420e2c1-7522-11e8-994d-0cc47a283a95"));
ПользовательСидорова = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("f54cf259-7517-11e8-994d-0cc47a283a95"));
РабочаяГруппаРГ_Кадры = Справочники.РабочиеГруппы.ПолучитьСсылку(Новый УникальныйИдентификатор("f7aa1aca-0455-11e9-81cd-0cc47a283a95"));
РольКадровик = Справочники.ПолныеРоли.ПолучитьСсылку(Новый УникальныйИдентификатор("fc485390-56d0-11e9-9fa3-0cc47a283a95"));
МассивКадры = Новый Массив;
МассивКадры.Добавить(ПользовательИванова);
МассивКадры.Добавить(ПользовательПетрова);
МассивКадры.Добавить(ПользовательСидорова);
МассивКадры.Добавить(РабочаяГруппаРГ_Кадры);
МассивКадры.Добавить(РольКадровик);
ПоказатьЗатем проверяю входит ли участник рабочей группы основного предмета в этот массив.
Для Каждого УчастникПоПредмету Из УчастникиПоПредмету Цикл
Если МассивКадры.Найти(УчастникПоПредмету.Участник) = Неопределено Тогда //Если не кадровик - не добавляем участника
Продолжить;
КонецЕсли;
(3) Дополню для читающих, в данном примере если заменить МассивКадры на одну роль (можно создать служебную полную роль чтобы использовать ее только для предоставления доступа) и добавить туда всех пользователей, перечисленных в массиве, тогда в случае добавления новых сотрудников не придется обработкой перезаполнять регистр Участники Процессов, чтобы предоставить доступ к старым процессам и задачам для новых сотрудников, достаточно будет их добавить в полную роль и они сразу увидят все процессы и задачи как прочие участники этой роли.