GetEventFactory

Объект для работы с лентами событий

Добавлено в версии 5.57.0.

Методы

GetEventFactory.CreateMessageEventFilter()

Возвращает фильтр событий сообщений

GetEventFactory.GetEventsChunk(Filter)
Filter:

Произвольный тип, чтение — фильтр событий

Принимает фильтр событий и возвращает первый блок событий. На данный момент для MessageEventFilter возвращает MessageEventsChunk

Дополнительная информация

Пример кода
Перем КоличествоЧанков;
Перем КоличествоСобытий;
Перем КоличествоИзменений;


Процедура АнализЧанкаСобытий(dd_Chunk)
    dd_Repflector = ПолучитьReflector(); // см. https://developer.kontur.ru/Docs/Diadoc/COM/HowTo/HowTo_reflect_object.html
    КоличествоЧанков = КоличествоЧанков + 1;
    Для Каждого dd_Event Из dd_Chunk.Events Цикл
        КоличествоСобытий = КоличествоСобытий + 1;
        dd_TypeDesc_Event = dd_Reflector.Describe(dd_Event);
        Если "INewMessage" = dd_TypeDesc_Event.GetInterfaceName() Тогда
            Сообщить("Новые документы!");
            КоличествоИзменений = КоличествоИзменений + 1;
        Иначе
            Для Каждого dd_EventItem Из dd_Event.Items Цикл
                dd_TypeDesc_EventDetails = dd_Reflector.Describe(dd_EventItem.Details);
                Сообщить(dd_TypeDesc_EventDetails.GetInterfaceName());
                КоличествоИзменений = КоличествоИзменений + 1;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры


Процедура ЧитатьЛентуСобытий(dd_Box)
    dd_EventFactory = dd_Box.GetEventFactory;

    КоличествоЧанков = 0;
    КоличествоСобытий = 0;
    КоличествоИзменений = 0;

    dd_Filter = dd_EventFactory.CreateMessageEventFilter();
    dd_Filter.AfterIndexKey = ПолучитьЗапомненныйIndexKey(); // предполагается, что пользователь где-то хранит последний полученный IndexKey
    dd_Filter.Directions.Inbound = True;

    НачалоЧтения = ТекущаяДата();

    dd_Chunk = dd_EventFactory.GetEventsChunk(dd_Filter);
    АнализЧанкаСобытий(dd_Chunk);

    Пока Не dd_Chunk.IsLast Цикл
        LastIndexKey = dd_Chunk.IndexKey;

        dd_Chunk = dd_Chunk.Next();
        АнализЧанкаСобытий(dd_Chunk);
    КонецЦикла;

    КонецЧтения = ТекущаяДата();

    Сообщить("Лента прочитана за: " + Строка(КонецЧтения - НачалоЧтения));
    Сообщить("Прочитано чанков: " + КоличествоЧанков);
    Сообщить("Прочитано событий: " + КоличествоСобытий);
    Сообщить("Прочитано изменений: " + КоличествоИзменений);
КонецПроцедуры