В обработчике события указываем следующий код:
Источник = Событие.Источник;
ТребуетсяЗапись = Ложь;
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
| ПредметыПроцесса.Предмет КАК Предмет
|ИЗ
| &ИмяПроцесса КАК ПредметыПроцесса
|ГДЕ
| ПредметыПроцесса.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Источник);
ИсточникМетаданные = Источник.Метаданные();
ПроцессИмя = ИсточникМетаданные.ПолноеИмя();
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&ИмяПроцесса",ПроцессИмя + ".Предметы");
Запрос.Текст = ТекстЗапроса;
ВыборкаПредмет = Запрос.Выполнить().Выбрать();
Пока ВыборкаПредмет.Следующий() Цикл
УчастникиПоПредмету = РегистрыСведений.РабочиеГруппы.ПолучитьУчастниковПоОбъекту(ВыборкаПредмет.Предмет);
УчастникиПроцесса = РегистрыСведений.УчастникиПроцессов.ПолучитьУчастников(Источник);
Для Каждого УчастникПоПредмету Из УчастникиПоПредмету Цикл
Если ТипЗнч(УчастникПоПредмету.Участник) = Тип("СправочникСсылка.Пользователи")
ИЛИ ТипЗнч(УчастникПоПредмету.Участник) = Тип("СправочникСсылка.ПолныеРоли") Тогда
Если УчастникиПроцесса.Найти(УчастникПоПредмету.Участник,"Участник") = Неопределено Тогда
НовСтрокаУчастник = УчастникиПроцесса.Добавить();
НовСтрокаУчастник.Участник = УчастникПоПредмету.Участник;
НовСтрокаУчастник.Процесс = Источник;
ТребуетсяЗапись = Истина;
КонецЕсли;
КонецЕсли;
Если ТипЗнч(УчастникПоПредмету.Участник) = Тип("СправочникСсылка.РабочиеГруппы") Тогда
РабГруппа = УчастникПоПредмету.Участник;
СоставРабГруппы = Справочники.РабочиеГруппы.СоставКонтейнераПользователей(РабГруппа);
Для Каждого УчастникРабГруппы Из СоставРабГруппы Цикл
Если УчастникиПроцесса.Найти(УчастникРабГруппы,"Участник") = Неопределено Тогда
НовСтрокаУчастник = УчастникиПроцесса.Добавить();
НовСтрокаУчастник.Участник = УчастникРабГруппы;
НовСтрокаУчастник.Процесс = Источник;
ТребуетсяЗапись = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если ТребуетсяЗапись Тогда
РегистрыСведений.УчастникиПроцессов.ЗаписатьНаборПоПроцессу(Источник, УчастникиПроцесса, Истина);
КонецЕсли;
Принцип работы такой: по процессу, который стартует ("Источник") мы ищем все предметы. Затем каждый предмет обходим в выборке и смотрим, есть ли участники рабочей группы этого предмета в регистре, в котором хранятся участники процессов (в конфигурации он так и называется "УчастникиПроцессов").
Еще нужно учесть, что в рабочую группу документа может входить в качестве участника "Рабочая группа" (отдельный справочник), в отличие от регистра, в котором могут быть заданы только или пользователи, или полные роли. Поэтому если в составе участников по документу есть рабочая группа, тогда просматриваем участников рабочей группы и, если они еще не добавлены в регистр, то добавляем.