Пригодится для прослушивания событий серверов видеонаблюдения, СКУД и др. которые предоставляют доступ к событиям по http протоколу, в "бесконечном" соединении.
Для подключения к серверу, компоненте передаём строку запроса типа
МояКомпонента.Connect("http://192.168.60.11:8080/event?login=misha&password=383D802A4C84AF5AC3719276218CC918&filter=c9d6d086-c965-4cf8-aef6-85b3894e3a4a&responsetype=json"), компонента передаёт её на сервер событий и ожидает собственно события от него, получив его в 1С обработке генерирует ВнешнееСобытие куда передаёт данные принятые от сервера.
1. Подключаем внешнюю компоненту к обработке:
АдресВоВременномХранилище = неопределено;
МояКомпонента = Неопределено;
ПодключениеВыполнено = Ложь;
МакетОбработки = ПолучитьМакет("ВнешняяКомпонента");
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(МакетОбработки, Новый УникальныйИдентификатор);
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту(АдресВоВременномХранилище,"VIDEO" ,ТипВнешнейКомпоненты.Native);
Если ПодключениеВыполнено Тогда
МояКомпонента = Новый ("AddIn.VIDEO.AddInNativeEvents");
Иначе
КонецЕсли;
2. Передаём строку адреса сервера с параметрами (HTTP API сервера к которому подключаемся):
МояКомпонента.Connect("http://192.168.60.11:8080/event?login=misha&password=383D802A4C84AF5AC3719276218BB918&filter=c9d6d086-c965-4cf8-aef6-85b3894e3a4a&responsetype=json");
3. Описываем обработку внешнего события:
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "AddInNativeEvents" Тогда
Попытка
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Данные);
Событие = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Если Событие.EventId <> "e9e7a69c-7ee2-3fee-a530-9f8a88124fcc" Тогда
Сообщить(Событие.Timestamp+" "+Событие.ChannelId+" "+Событие.ChannelName+" "+Событие.Numberplate+" "+Событие.direction[0]);
КонецЕсли;
Исключение
Сообщить("Ошибка чтения JSON");
КонецПопытки;
КонецЕсли;
КонецПроцедуры
4. При закрытии завершаем работу компоненты:
МояКомпонента.Disable();
Протестировано на:
1С Предприятие 8.3.10