|   |   | 
| 
 | 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) почитайте про БП - много статей написано, там все разжевано     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |