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    5847    4    3    

7

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

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

14400 руб.

20.12.2024    3249    17    2    

18

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

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

60000 руб.

07.05.2019    38441    73    45    

31

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

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    20152    58    52    

36

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

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

35856 руб.

27.11.2024    1741    1    0    

1

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

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

5196 руб.

28.04.2016    97210    109    218    

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