Имя: Пароль:
1C
 
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) почитайте про БП - много статей написано, там все разжевано