|
1с Документообороот Детекторы событий | ☑ | ||
---|---|---|---|---|
0
Strelolga
20.04.16
✎
13:17
|
Добрый день!
Занимаюсь внедрением документооборота. Реализован старт БП по получению электронного письма. У БП есть до. реквизит - почта отправителя. БП состоит из одной задачи "Ознакомление", в которой пользователь заводит нового контрагента. Теперь возникает закономерное желание при выполнении задачи оповещать заказчика (отправителя электронного письма) о результате ознакомления. Стандартными средствами не получается реализовать: если сосздать вторую задачу "Ознакомление с результатами", тогда нужно будет указывать исполнителя..А У нас такого пользователя может в БД и не быть. Хочу см помощью детектора событий отследить момент, когда выполняется задача "Ознакомление" и формировать исх электронное сообщение. Возникает проблема, как написать детектор событий? |
|||
1
Лефмихалыч
20.04.16
✎
13:21
|
>как написать детектор событий
Раздел Нормативно-справочная информация...детекторы бизнес событий...новый и в текстовое поле пиши код. Но, думаю, на самом деле вопрос у тебя не в этом |
|||
2
lubitelxml
20.04.16
✎
13:22
|
ну при завершении БП ознакомления ты можешь выполнять произвольный код, что мешает там написать формирование эл. письма? п.с.: у нас на самописке именно так.
|
|||
3
Strelolga
20.04.16
✎
13:23
|
Конечно не в этом. Меня интересует, как отобрать задачу "Ознакомление" у нужного мне БП, которая только что выполнилась. И как не обрабатывать одни и те же, задачи
|
|||
4
Strelolga
20.04.16
✎
13:24
|
(2) расскажи подробнее, как выполнять произвольный код?
|
|||
5
Strelolga
20.04.16
✎
13:25
|
(2)т.е. сделать в конфигураторе подписку на событие "БППри записи".. и если статус = завершен, тогда формировать письмо?
Это я и делаю. Но хотелось бы научиться пользоваться детекторами событий. |
|||
6
lubitelxml
20.04.16
✎
13:25
|
(4) в карте маршрута есть точка завершения, у нее можно указать событие
|
|||
7
lubitelxml
20.04.16
✎
13:26
|
с детекторами из бсп не работал
|
|||
8
Strelolga
20.04.16
✎
13:27
|
(6) подробнее можно?
|
|||
9
lubitelxml
20.04.16
✎
13:31
|
(8) правой по бизнес процессу - открыть карту маршрута, там в самом низу голубенький блок, у него в свойствах есть событие, будет отрабатывать при закрытии БП. Вот мой код из этой процедуры
ДатаЗавершения = ТекущаяДатаСеанса(); Если ТипЗнч(ОбъектСогласования) = Тип("ДокументСсылка.УстановкаЦенНоменклатуры") Тогда // РассылкаУведомлений.ВыполнитьРассылку(ЭтотОбъект.Ссылка, Справочники.ВидыУведомлений.НайтиПоКоду("000000033")); ИначеЕсли ТипЗнч(ОбъектСогласования) = Тип("СправочникСсылка.Конкурсы") Тогда // РассылкаУведомлений.ВыполнитьРассылку(ЭтотОбъект.Ссылка, Справочники.ВидыУведомлений.НайтиПоКоду("000000035")); КонецЕсли; |
|||
10
Лефмихалыч
20.04.16
✎
13:32
|
(9) только это к сабжу не имеет отношения
|
|||
11
lubitelxml
20.04.16
✎
13:33
|
(10) я в (7) написал что решение без детекторов
|
|||
12
Strelolga
20.04.16
✎
13:36
|
(9) нет события. все посмотрела на 3 раза. а так идея хорошая
|
|||
13
Strelolga
20.04.16
✎
13:37
|
Документооборот 8 КОРП, редакция 2.0 (2.0.9.6)
|
|||
14
Strelolga
20.04.16
✎
13:38
|
что является объектом согласования?
|
|||
15
Лефмихалыч
20.04.16
✎
13:41
|
Надо создать вид события. С этим видом события связать детектор. В детекторе написать код, который будет возвращать истину, когда есть в даже необработанные завершенные ознакомления нужного вида. Далее создать польовательский обработчик бизнес-события, который связать с этим событием и в коде обработчика написать код, который будет отправлять в нужном количестве письма.
|
|||
16
Лефмихалыч
20.04.16
✎
13:41
|
это - если кратко.
|
|||
17
Strelolga
20.04.16
✎
13:42
|
(15) Эти общие фразы я и так понимаю.
Я не понимаю что написать в код детектора. Как отследить событие, задача завершена. |
|||
18
Strelolga
20.04.16
✎
13:46
|
АА. нужно наверное так.. Выбирать все выполненные задачи например за предыдущий час по нужному мне БП. Если хоть одна задача найдена, результат = истина; ТОгда запустится обработка и должна сработать подписка. В которой я опять же буду выбирать все задачи, которые ввыполнены за предыдущий час и которые еще не были обработаны (вот как это отследить???) и отправлять по ним письма. я на верном пути?
|
|||
19
Лефмихалыч
20.04.16
✎
13:53
|
(17) ну, задавай тогда конкретные вопросы
(18) тебе как-то надо мочь отличать именно твои процессы или задачи программно. Например это по шаблону процесса делать. Или сама придумай способ. Кроме того, тебе надо и в коде детектора, и в коде обработчика отличать процессы/задачи, по которым уже все отправлено, от таких же, по которым не отправлено. Иначе заспамишь дублями. |
|||
20
lubitelxml
20.04.16
✎
14:00
|
(18) почитайте про БП - много статей написано, там все разжевано
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |