Клиент событий в «бесконечном» HTTP-соединении для 1С: Предприятие 8
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Пригодится для прослушивания событий серверов видеонаблюдения, СКУД и др. которые предоставляют доступ к событиям по 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
Вступайте в нашу телеграмм-группу Инфостарт