- В этой теме 1 ответ, 2 участника, последнее обновление 2 часа, 52 минуты назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как написать выражение на 1С для детектора события «Старт процесса»?
ДетекторыБизнесСобытий вид события Старт процесса какое прописать выражение на встроенном языке, чтобы определить результат
В детекторе бизнес-событий для события «Старт процесса» на встроенном языке 1С нужно написать запрос к регистру сведений ПроизошедшиеБизнесСобытия, который отфильтрует записи по виду события «Старт процесса» и по времени. Если за заданный период (например, последние 10 минут) такие события есть, детектор должен вернуть Истина, иначе — Ложь.
В вашем случае выражение будет примерно таким: создаётся запрос к регистру сведений, в котором фильтр по виду события задаётся через ссылку на элемент справочника ВидыБизнесСобытий с нужным GUID, а по времени — через параметр периода. Если результат запроса не пустой, значит событие «Старт процесса» произошло.
Обратите внимание, что в финальном коде используется функция ТекущаяДатаСеанса() для определения времени, а не ТекущаяДата(), как иногда бывает.
Пример кода детектора для события «Старт процесса»:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Запрос = Новый Запрос; КонстантаПериод = 600; Запрос.Текст = "ВЫБРАТЬ | ПроизошедшиеБизнесСобытия.Источник КАК Источник |ИЗ | РегистрСведений.ПроизошедшиеБизнесСобытия КАК ПроизошедшиеБизнесСобытия |ГДЕ | ПроизошедшиеБизнесСобытия.ВидСобытия = &ВидСобытияСтартПроцесса | И ПроизошедшиеБизнесСобытия.Период >= &Период"; Запрос.УстановитьПараметр( "ВидСобытияСтартПроцесса", Справочники.ВидыБизнесСобытий.ПолучитьСсылку(Новый УникальныйИдентификатор("GUID_старт_процесса")) ); // последние 10 минут Запрос.УстановитьПараметр("Период", ТекущаяДатаСеанса() - КонстантаПериод); Если НЕ Запрос.Выполнить().Пустой() Тогда КонецЕсли; |