1С Документооборот. Отправка уведомлений при определённых условиях
Необычная задачка: присылать уведомлять пользователю по электронной почте с комментарием руководителя к задаче в том случае, если задача не согласована или согласована с замечаниями. Интересуют только те процессы, в которых участвует этот пользователь и уведомлять только о решении одного из двух человек. Задачу можно решить, не внося изменения во все процессы, в которых они участвуют, используя обработчик бизнес событий
Событие: выполнение задачи
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ЗадачаИсполнителя.Ссылка КАК Ссылка, | ЗадачаИсполнителя.ТочкаМаршрута КАК ТочкаМаршрута, | ЗадачаИсполнителя.Исполнитель КАК Исполнитель, | ВизыСогласования.РезультатСогласования КАК РезультатСогласования, | ВизыСогласования.Документ КАК Документ |ПОМЕСТИТЬ ВТ |ИЗ | Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВизыСогласования КАК ВизыСогласования | ПО (ВизыСогласования.Источник = ЗадачаИсполнителя.Ссылка) |ГДЕ | ЗадачаИсполнителя.Ссылка = &Ссылка | И ВизыСогласования.Удалена = ЛОЖЬ | И ВизыСогласования.ПомещенаВИсторию = ЛОЖЬ | И ВизыСогласования.ПометкаУдаления = ЛОЖЬ | И ЗадачаИсполнителя.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.Согласование.ТочкаМаршрута.Согласовать) | И ЗадачаИсполнителя.Исполнитель В(&Исполнители) | И ВизыСогласования.РезультатСогласования <> ЗНАЧЕНИЕ(Перечисление.РезультатыСогласования.Согласовано) | ; |ВЫБРАТЬ | ВТ.Документ КАК Документ, | ВизыСогласования.Исполнитель КАК Исполнитель, | ВизыСогласования.РезультатСогласования КАК РезультатСогласования |ИЗ | ВТ КАК ВТ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВизыСогласования КАК ВизыСогласования | ПО (ВТ.Документ = ВизыСогласования.Документ) |ГДЕ | ВизыСогласования.Исполнитель = &КогоУведомить | И ВизыСогласования.Удалена = ЛОЖЬ | И ВизыСогласования.ПомещенаВИсторию = ЛОЖЬ | И ВизыСогласования.ПометкаУдаления = ЛОЖЬ"; Задача = Событие.Источник; КогоУведомить = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("432ac6b4-c0cf-11ee-b927-005056ab15")); Исполнители = Новый Массив; Исполнители.Добавить(Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("34b1ae10-5abf-11e9-80dc-00155d1415"))); Исполнители.Добавить(Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("74510ec9-9bbe-11eb-8112-005056ab48"))); // Установка параметров. Запрос.УстановитьПараметр("Ссылка", Задача.Ссылка); Запрос.УстановитьПараметр("Исполнители", Исполнители); Запрос.УстановитьПараметр("КогоУведомить", КогоУведомить); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Описание = "Замечания к согласованию: "+Задача.Наименование+Символы.ПС+ "Роль:"+ Задача.РольИсполнителя+", "+Задача.Исполнитель+" "+Событие.ВидСобытия; //ВидСобытияУведомления = Справочники.ВидыБизнесСобытий.НайтиПоНаименованию("Создание задачи",Истина); ВидСобытияУведомления = Перечисления.СобытияУведомлений.ВыполнениеМоейЗадачи; РегистрыСведений.ОчередьУведомлений.ДобавитьУведомлениеПоСобытию( КогоУведомить, ВидСобытияУведомления, Задача, Задача, Описание); КонецЦикла; |
Для отправки уведомления необходимо включить настройку пользовательской УЗ
Персональные настройки – Уведомления
Включить просмотр задач
Уведомления сперва добавляются в регистр сведений «Очередь уведомлений», далее фоновым процессом производится рассылка на почту
Комментарии закрыты