ВОт описание от 1с : "Команда Детекторы предназначена для создания пользовательских бизнес - событий. Например, можно зарегистрировать новое бизнес-событие, когда число активных пользователей превышает 50, или когда в определенном каталоге на диске появились новые файлы. " Но самой обработки в описании нет. Подскажите может кто сталкивался, где можно почитать об этом?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Может кому то будет полезно. (1С:Документооборот релиз 1.2.8.1)
"Детектор" бизнес события добавляет новый элемент в справочник "Произошедшие бизнес события".
При создании детектора нужно ввести наименование, выбрать вид события и добавить программный код.
В выполняемом коде доступны следующие переменные:
Результат (Истина или Ложь) - добавляет элемент в справочник если истина и не добавляет если ложь.
ПараметрыВозврата (Структура)
*Автор (пользователь - необязательный, берется текущий)
*Источник (любая ссылка)
В "Дополнительные обработчики бизнес событий" можно добавить свой обработчик событий который регистрируются в справочнике "Произошедшие бизнес события".
В подписках обработчика нужно указать "Вид события" (например "Регистрация внутреннего документа") и написать код обработки к примеру вызов процедуры общего модуля ОбщийМодульНаСервере.ДополнительныйОбработчикРегистрацииДокумента(Событие.Источник);
Событие.Источник - в данном случае это ссылка на документ который был зарегистрирован.
Через точку Событие.* в коде обработчика доступны следующие свойства:
Автор, ВидСобытия, Дата, Источник, КонтекстСобытия, Ссылка, ЧислоПопытокОбработки.
"Детектор" бизнес события добавляет новый элемент в справочник "Произошедшие бизнес события".
При создании детектора нужно ввести наименование, выбрать вид события и добавить программный код.
В выполняемом коде доступны следующие переменные:
Результат (Истина или Ложь) - добавляет элемент в справочник если истина и не добавляет если ложь.
ПараметрыВозврата (Структура)
*Автор (пользователь - необязательный, берется текущий)
*Источник (любая ссылка)
В "Дополнительные обработчики бизнес событий" можно добавить свой обработчик событий который регистрируются в справочнике "Произошедшие бизнес события".
В подписках обработчика нужно указать "Вид события" (например "Регистрация внутреннего документа") и написать код обработки к примеру вызов процедуры общего модуля ОбщийМодульНаСервере.ДополнительныйОбработчикРегистрацииДокумента(Событие.Источник);
Событие.Источник - в данном случае это ссылка на документ который был зарегистрирован.
Через точку Событие.* в коде обработчика доступны следующие свойства:
Автор, ВидСобытия, Дата, Источник, КонтекстСобытия, Ссылка, ЧислоПопытокОбработки.
Чтобы реализовать отсроченный запуск процесса (+уведомления), в зависимости от того какая дата будет установлена в Доп. реквизите внутреннего документа...
можно воспользоваться Детектором бизнес-события, я правильно понимаю?
можно воспользоваться Детектором бизнес-события, я правильно понимаю?
Не проверял, но думаю что да.
1. Открыть справочник виды событий
2. Создать свой вид события.
3. Добавить правило автоматического запуска процессов (выбрать шаблон процесса)
4. Создать детектор на созданный вид события.
1. Открыть справочник виды событий
2. Создать свой вид события.
3. Добавить правило автоматического запуска процессов (выбрать шаблон процесса)
4. Создать детектор на созданный вид события.
(9)
Прекрасно сработало.
Код детектора бизнес-событий
БизнесСобытияВызовСервера.ЗарегистрироватьСобытие(Ссылка, Справочники.ВидыБизнесСобытий.СозданиеСообщения);
Прекрасно сработало.
Код детектора бизнес-событий
Результат = Ложь;
ВидСобытия = Справочники.ВидыБизнесСобытий.НайтиПоНаименованию ("Подошел срок выкупа объекта лизинга",Истина);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВнутренниеДокументыДополнительныеРеквизиты.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_ДокументыДляОбработки
|ИЗ
| Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты
|ГДЕ
| ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ВнутренниеДокументыДополнительныеРеквизиты.Значение = &Значение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПроизошедшиеБизнесСобытияСрезПоследних.Обработано КАК Обработано,
| ПроизошедшиеБизнесСобытияСрезПоследних.Источник КАК Источник
|ПОМЕСТИТЬ ВТ_ОбработанныеДокументы
|ИЗ
| РегистрСведений.ПроизошедшиеБизнесСобытия.СрезПоследних(
| ,
| Источник В
| (ВЫБРАТЬ
| ВТ_ДокументыДляОбработки.Ссылка КАК Ссылка
| ИЗ
| ВТ_ДокументыДляОбработки КАК ВТ_ДокументыДляОбработки)
| И Обработано
| И ВидСобытия = &ВидСобытия) КАК ПроизошедшиеБизнесСобытияСрезПоследних
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ДокументыДляОбработки.Ссылка КАК Ссылка
|ИЗ
| ВТ_ДокументыДляОбработки КАК ВТ_ДокументыДляОбработки
|ГДЕ
| НЕ ВТ_ДокументыДляОбработки.Ссылка В
| (ВЫБРАТЬ
| ВТ_ОбработанныеДокументы.Источник КАК Источник
| ИЗ
| ВТ_ОбработанныеДокументы КАК ВТ_ОбработанныеДокументы)";
Запрос.УстановитьПараметр("Имя", "ДатаВыкупаОбъектаЛизинга");
Запрос.УстановитьПараметр("Значение", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ВидСобытия", ВидСобытия);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
БизнесСобытияВызовСервера.ЗарегистрироватьСобытие(Выборка.Ссылка, ВидСобытия);
// Результат = Истина;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот