SNMP TrapV2/REST API To WebSocket прокси сервис для 1С Предприятие

15.09.25

Интеграция - WEB-интеграция

SNMP TrapV2/REST API To WebSocket позволяет получать оповещения SNMP Trap2 (заглушки) и запросы REST API на клиента Web Socket (1С:Предприятие).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
SNMP TrapV2/REST API To WebSocket прокси
.zip 2,29Kb
0 3 050 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

 

  SNMP TrapV2/REST API To WebSocket это прокси сервис (SNMPTrap_REST_To_WS), позволяющий перенаправлять оповещения SNMP Trap2 (заглушки) и запросы REST API на клиента Web Socket.

    SNMP Trap – обычно это push оповещения о критических событиях от сетевых и других устройств и различного вида датчиков по протоколу SNMP.

    В данном случае клиентом Web Socket может выступать 1С:Предприятие 8.3.27. Web Socket клиент поддерживается как на клиентской стороне, так и на серверной стороне 1С.

    Использование SNMPTrap_REST_To_WS позволяет 1С принимать данные SNMP TrapV2, так и запросы REST API. Это также удобно в случае, если по каким-то причинам не используется веб-публикация базы 1С и нет возможности использовать публикацию HTTP-сервиса.

    На основе SNMPTrap_REST_To_WS и 1С можно создать «Агрегатор событий и сервис оповещения». По SNMP можно собирать данные о критичных событиях от устройств (превышение температуры выше нормы в серверной), по REST API собирать данные (необработанные исключения в базах 1С ОбработкаОтображенияОшибки () ) и события других приложений, логи журнала событий операционной системы (скрипт PowerShell в Планировщике заданий).

    В связке SNMPTrap_REST_To_WS и 1С можно реализовать онлайн-систему мониторинга за критичными событиями с оповещением в реальном времени на экране монитора и на мобильные устройства пользователей (по каким событиям кому и в каком виде отправлять оповещение), аналитические отчеты.

На стороне 1С:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ОбработчикиСокета = Новый ОбработчикиWebSocketКлиентСоединения;
	ОбработчикиСокета.Модуль = ЭтотОбъект;
	ОбработчикиСокета.ОбработчикОткрытияСоединения = "ВебСокет_ОбработчикОткрытия";
	ОбработчикиСокета.ОбработчикЗакрытияСоединения= "ВебСокет_ОбработчикЗакрытия";
	ОбработчикиСокета.ОбработчикПолученияСообщения = "ВебСокет_ОбработчикПолученияСообщения";
	ОбработчикиСокета.ОбработчикОшибки = "ВебСокет_ОбработчикОшибки";
	
	WebSocketКлиентСоединения.ОткрытьСоединение("ws_localhost_3001", "ws://localhost:3001", ОбработчикиСокета,,"Администратор");
	
КонецПроцедуры

&НаКлиенте
Процедура ВебСокет_ОбработчикОткрытия(Соединение) Экспорт 
	
	СтруктураСоединение = ПараметрыСоединения(Соединение);   
	
	
КонецПроцедуры  

&НаКлиенте
Процедура ВебСокет_ОбработчикПолученияСообщения(Соединение, Сообщение) Экспорт
	
	НоваяСтрока = Общение.Добавить();
	НоваяСтрока.ТекстСообщения = Сообщение;
	
КонецПроцедуры 


&НаКлиенте
Процедура ВебСокет_ОбработчикЗакрытия(Соединение, КодЗакрытия) Экспорт
	
	
	ВидимостьДоступностьЭлементов(Ложь);
	
КонецПроцедуры  

&НаКлиенте
Процедура Зарегистрироваться(Команда)
	
	
	ВебСокет = WebSocketКлиентСоединения.ПолучитьСоединение("ws_localhost_3001");
	
	СтруктураРегистрации = Новый Структура("type,id","register",ИмяКлиента);
	ТекстСообщения = ЗаписатьДанныеВJSON(,СтруктураРегистрации).Результат;
	
	СостояниеСоединения = ВебСокет.ПолучитьСостояние();
	СостояниеОткрыто = (СостояниеСоединения = СостояниеWebSocketСоединения.Открыто);	
	
	Если СостояниеОткрыто Тогда 
		// отправка данных в WebSocket
		ВебСокет.ОтправитьСообщение(ТекстСообщения);
	КонецЕсли;
	
	ПараметрыЗаписи = Новый Структура;	
	ПараметрыЗаписи.Вставить("Сообщение", ТекстСообщения);  
	//
	
	ВидимостьДоступностьЭлементов(СостояниеОткрыто);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьСообщение(Команда)
	
	ВебСокет = WebSocketКлиентСоединения.ПолучитьСоединение("ws_localhost_3001");
	
	СтруктураСообщения = Новый Структура("type,from,to,message","message",ИмяКлиента,ИмяПолучателя,ТекстОтправки);
	ТекстСообщения = ЗаписатьДанныеВJSON(,СтруктураСообщения).Результат;	
	
	СостояниеСоединения = ВебСокет.ПолучитьСостояние();
	СостояниеОткрыто = (СостояниеСоединения = СостояниеWebSocketСоединения.Открыто); 
	
	Если СостояниеОткрыто Тогда 
		// отправка данных в WebSocket
		ВебСокет.ОтправитьСообщение(ТекстСообщения);   
		
		НоваяСтрока = Общение.Добавить();
		НоваяСтрока.ТекстСообщения = ?(ПустаяСтрока(ИмяПолучателя),"you U94; all: ", "you U94; "+ИмяПолучателя+": ") + ТекстОтправки;
		
	КонецЕсли;
	
	ПараметрыЗаписи = Новый Структура;	
	ПараметрыЗаписи.Вставить("Сообщение", ТекстСообщения);  
	
	ВидимостьДоступностьЭлементов(СостояниеОткрыто);
	
КонецПроцедуры 

Процедура ВидимостьДоступностьЭлементов(СостояниеОткрыто)
	Элементы.Группа1.Видимость = Не СостояниеОткрыто;
	Элементы.ИмяПолучателя.Видимость = СостояниеОткрыто;
	Элементы.ТекстОтправки.Видимость = СостояниеОткрыто;
	Элементы.ОтправитьСообщение.Видимость = СостояниеОткрыто;
	Элементы.Общение.Видимость = СостояниеОткрыто;
КонецПроцедуры	
///////////////////////////////////

&НаКлиенте
Функция ПараметрыСоединения(Соединение) Экспорт 
	
	СтруктураСоединение = Новый Структура;
	СтруктураСоединение.Вставить("URLСервера", Соединение.URLСервера);
	СтруктураСоединение.Вставить("ИмяПользователяИнформационнойБазы", Соединение.ИмяПользователяИнформационнойБазы);  
	
	СтруктураСоединение.Вставить("ОбработчикЗакрытияСоединения", Соединение.Обработчики.ОбработчикЗакрытияСоединения); 
	СтруктураСоединение.Вставить("ОбработчикОткрытияСоединения", Соединение.Обработчики.ОбработчикОткрытияСоединения); 
	СтруктураСоединение.Вставить("ОбработчикОшибки", Соединение.Обработчики.ОбработчикОшибки); 
	СтруктураСоединение.Вставить("ОбработчикПолученияСообщения", Соединение.Обработчики.ОбработчикПолученияСообщения); 
	СтруктураСоединение.Вставить("Заголовки", Соединение.Параметры.Заголовки);
	
	Возврат СтруктураСоединение; 
	
КонецФункции 

&НаКлиенте 
Функция ПараметрыКлиента(Клиент) Экспорт 
	
	СтруктураКлиент = Новый Структура;
	СтруктураКлиент.Вставить("URLСервера", Клиент.URLСервера);
	СтруктураКлиент.Вставить("ИмяПользователяИнформационнойБазы", Клиент.ИмяПользователяИнформационнойБазы);
	СтруктураКлиент.Вставить("Заголовки", Клиент.ПараметрыСоединения.Заголовки);
	СтруктураКлиент.Вставить("МетаданныеИмя", Клиент.Метаданные.Имя);
	
	СтруктураКлиент.Вставить("МетаданныеURLСервера", Клиент.Метаданные.URLСервера);
	
	Возврат СтруктураКлиент; 
	
КонецФункции


#Область СериализацияДесериализацияДанных 

// Возвращает чаще всего используемые ПараметрыЗаписиJSON (JSONWriterSettings)
// 
// Возвращаемое значение:
//  Результат - Структура - Стандартное заполнение
// 
&НаСервере
Функция СтандартныеПараметрыJSON() Экспорт
	
	Результат = Новый Структура;
	Результат.Вставить("ПереносСтрок",					ПереносСтрокJSON.Авто);
	Результат.Вставить("СимволОтступа",					" ");
	Результат.Вставить("ИспользоватьДвойныеКавычки",	Истина);
	Результат.Вставить("ЭкранированиеСимволов",			ЭкранированиеСимволовJSON.Нет);
	Результат.Вставить("ЭкранироватьАмперсанд",			Ложь);
	Результат.Вставить("ЭкранироватьОдинарныеКавычки",	Ложь);
	Результат.Вставить("ЭкранироватьРазделителиСтрок",	Ложь);
	Результат.Вставить("ЭкранироватьУгловыеСкобки",		Ложь);
	Результат.Вставить("ЭкранироватьСлеш",				Ложь);	
	
	Возврат Результат;		
	
КонецФункции

// Преобразует данные в формат JSON
//
// Параметры:
//  ВходящиеПараметры	 - Структура - Параметры формирование JSON
//  ВходныеДанные		 - ЛюбоеЗначение - Данные которые нужно перевести в JSON
// 
// Возвращаемое значение:
//  Результат - Структура
//  	Отработал - Булево - Выполнено или нет
//  	ТекстОшибки - Строка - Текст ошибки если функция отработала с ошибкой
//  	Результат - Строка - JSON
//
&НаСервере
Функция ЗаписатьДанныеВJSON(Знач ВходящиеПараметры = Неопределено, Знач ВходныеДанные = "") Экспорт
	
	Результат = Новый Структура("Результат, Отработал, ТекстОшибки", "", Истина, "");
	
	Если ВходящиеПараметры = Неопределено Тогда 
		ВходящиеПараметры = СтандартныеПараметрыJSON(); 	
	КонецЕсли;	
	
	ПараметрыJSON	= Новый ПараметрыЗаписиJSON(ВходящиеПараметры.ПереносСтрок,
	ВходящиеПараметры.СимволОтступа,
	ВходящиеПараметры.ИспользоватьДвойныеКавычки,
	ВходящиеПараметры.ЭкранированиеСимволов,
	ВходящиеПараметры.ЭкранироватьУгловыеСкобки,
	ВходящиеПараметры.ЭкранироватьРазделителиСтрок,
	ВходящиеПараметры.ЭкранироватьАмперсанд,
	ВходящиеПараметры.ЭкранироватьОдинарныеКавычки,
	ВходящиеПараметры.ЭкранироватьСлеш);
	
	
	Попытка
		ЗаписьJSON						= Новый ЗаписьJSON;
		ЗаписьJSON.ПроверятьСтруктуру 	= Истина;
		ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);	
		ЗаписатьJSON(ЗаписьJSON, ВходныеДанные,,"ФункцияПреобразованияЗаписи",ЭтотОбъект);
		Результат.Вставить("Результат",	ЗаписьJSON.Закрыть());
	Исключение
		Результат.Отработал 			= Ложь;
		Результат.ТекстОшибки 			= ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
	КонецПопытки;
	
	Возврат Результат;
	
КонецФункции	

&НаСервере
Функция ФункцияПреобразованияЗаписи(Свойство, Значение, ДополнительныеПараметры, Отказ) Экспорт
	Если ТипЗнч(Значение) = Тип("СписокЗначений") Тогда  
		МассивЗначений = Значение.ВыгрузитьЗначения();
		Значение = МассивЗначений;
	КонецЕсли;	
КонецФункции

#КонецОбласти

код 1С взят из обработки: //infostart.ru/1c/articles/2293957/

    Публикация сопровождается файлом для загрузки:

- скрипт Python сервис SNMPTrap_REST_To_WS

Тестирование: Postman, SnmpTrapGen (https://ezfive.com/snmpsoft-tools/snmp-trap-gen).

Примечание:

SNMPTrap_REST_To_WS – это демонстрация возможностей использования WebSocket в 1С в целях интеграции. Для рабочей схемы необходимо доработать вопросы: безопасности и производительности.

 

Вступайте в нашу телеграмм-группу Инфостарт

Логи События Оповещения SNMPTrap RESTAPI WebSocket Агрегатор

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    6447    4    3    

7

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21545    30    24    

24

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    3768    18    2    

20

WEB-интеграция Программист Руководитель проекта 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8271    7    5    

9

WEB-интеграция 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

В расширении реализован механизм интеграции между системой поставщика и Личным кабинетом СДТ. Реализован обмен заказами и реализациями (накладными), предусмотрено отслеживание статусов документов. Расширение предназначено для 1С:УТ 11.4.

35856 руб.

27.11.2024    2028    1    0    

1
Для отправки сообщения требуется регистрация/авторизация