OneSniffer: как мы устали ловить HTTP в 1С через ЖР и написали свой сниффер

07.08.26

База данных - Журнал регистрации

Долго отлаживали интеграции через сообщения, журнал регистрации и чужие прокси. На проде это не взлетело. Собрали простой инструмент внутри платформы — смотришь запрос/ответ, повторяешь, выгружаешь curl.

Файлы

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

Наименование Скачано Купить файл
OneSniffer: Версия 0.0.0.7
.cfe 1,85Mb
2 2 500 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

P.S. Код писали руками — с болью, мемами и парой «почему оно так». ИИ помог чуть отшлифовать формулировки и эту статью. Инструмент от этого ничуть не «сгенерированный»: если что-то работает криво — виноваты мы, не нейросеть 🙂

 

Интеграция вчера отвечала 200. Сегодня - 400, таймаут или пустое тело. Пользователь уже пишет в чат. Ты в Конфигураторе. Классика.

Прод. Интеграция. Всё нормально.

 

Сначала делали «как все»,  "Сообщить()", куски JSON в журнал регистрации, временная "ЗаписьJSON" «на пять минут».

Через неделю база орёт логами, а нужного тела ответа всё равно нет. Или есть но не в том сеансе, не в том событии и без заголовков.

 

Это фиаско, братан

Когда в ЖР нашёл всё, кроме тела ответа

 

Потом поставили что то на подобии Fiddler. На своей машине красота.

На сервере 1С - «нельзя ставить стороннее ПО», сертификаты, и всё равно непонятно, какой прикладной вызов это был. Прокси видит пакеты. Бизнес-контекст живёт в коде.

 

Drake: внешний сниффер vs лог в базе

 

Нужен был не «ещё один Postman», а журнал трафика там, где живёт код: включил - увидел запрос и ответ - повторил - выгрузил в файл, curl.

Без магии «перехватим всю базу сами». Честный контракт: логируются только вызовы, которые вы сами перевели на API расширения.

 

Ожидание: перехватит всё сам. Реальность: одна обёртка - и спишь спокойно

Ожидание: перехватит всё сам. Реальность: одна обёртка - и спишь спокойно

 

Так появился **OneSniffer** - расширение сниффер HTTP внутри 1С:Предприятие 8.

Список логов — входящие и исходящие рядом

 

Что умеет, коротко:

1. Исходящий HTTP через `_HTTPСоединение._ВызватьHTTPМетод`, входящий - через `_HTTPСервис`.

2. Список логов, настройки РС/ЖР, Monaco-редактор, повтор запроса с формы.

3. Экспорт markdown / curl / код 1С, маскирует Authorization / Cookie / X-API-Key при записи.

 

Включил логирование - выбрал, куда писать и прочее...

 

Поправил запрос - отправил снова - сравнил ответ

 

Важно: это не волшебная кнопка «сниффить всю конфигурацию».

Заменил вызов на обёртку - получил лог. На проде не пишем лишнее, если не включили.

 

Исходящий трафик было:

Ответ = HTTPСоединение.ВызватьHTTPМетод(HTTPМетод, HTTPЗапрос, ИмяВыходногоФайла);

Исходящий трафик стало:

Ответ = _HTTPСоединение._ВызватьHTTPМетод(HTTPСоединение, HTTPМетод, HTTPЗапрос, ИмяВыходногоФайла, ИмяСобытия);

 

Входящий трафик:

_HTTPСервис.ЗаписатьВходящийЛог(Запрос, ИмяСобытия, Ответ, , ВремяНачалаЗамера);

 

Когда после одной замены вызова в списке наконец появился POST

Когда после одной замены вызова в списке наконец появился POST

 

Хватит читать ЖР как детектив.

Скачай OneSniffer, подключи, включи логирование, кинь тестовый запрос с формы списка - и посмотри, что ушло и что вернулось.

 

 
 Технические требования

  Режим совместимости платформы 8.3.14

 
 Описание версий

 

 
 Версия 0.0.0.7

 - настройки вынесены в РС OneSniffer_Настройки (без константы курсора ЖР);

- доработаны форма списка и Monaco;

- убраны просмотр картинок и усечение base64;

- обновлены справка и README;

- строгая типизация и стабилизация релиза.

 
 Версия 0.0.0.3

 

Как получить OneSniffer?

Можно скачать проект абсолютно бесплатно, поставив звездочку на GitHub

Или же отблагодарить автора (донатом), скачав расширение с этой страницы!

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.283

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

HTTP интеграция отладка расширение логирование сниффер

См. также

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

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

60000 руб.

07.05.2019    44005    76    45    

32

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

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

42700 руб.

03.08.2020    25105    39    26    

29

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

Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStars разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.

20740 руб.

13.05.2025    2617    4    0    

7

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

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

24000 руб.

02.02.2021    23776    72    52    

44

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

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

17568 руб.

20.12.2024    7071    30    4    

31
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. war41k 1087 07.08.26 09:39 Сейчас в теме
2. Viktor_Ermakov 416 07.08.26 11:06 Сейчас в теме
(1) Спасибо! Сам уже пользуюсь несколько лет, вот только руки дошли до шлифовки и выпуска релиза))
3. Vasvas05 27 07.08.26 11:18 Сейчас в теме
исходящий вы сами выполняется на форме, это понятно, но когда вам из другой систему приходит запрос на http, как вы его ловите для отображения данных?
4. Viktor_Ermakov 416 07.08.26 21:06 Сейчас в теме
(3) форма тут не при чем. В статье описан метод обертки для исходящих, это просто подмена платформенного метода.
Ответ = _HTTPСоединение._ВызватьHTTPМетод(Соединение, Строка(ПротоколЗапроса.Метод), Запрос, , ПротоколЗапроса.Событие);

А для входящих вы в HTTP-сервисе просто в конце делаете вызов, например:
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
ТелоJSON = "{""service"":""OneSniffer"",""ping"":""ok""}";
Ответ.УстановитьТелоИзСтроки(ТелоJSON, КодировкаТекста.UTF8);
		
_HTTPСервис.ЗаписатьВходящийЛог(Запрос, ИмяСобытия, Ответ, , ВремяНачалаЗамера);
5. Vasvas05 27 07.08.26 23:13 Сейчас в теме
(4) теперь понятно, значит надо редактивать конфу и везде где используется заменять на ваш код чтобы было логирование?
как идеи для развития еще можно посмотреть бесплатный инструмент от рарус
https://github.com/rarus/safe-rest-api-1c
https://rarus.ru/instruments/kontrol-http-servisov/
6. Viktor_Ermakov 416 09.08.26 20:02 Сейчас в теме
(5) Да, нужно обернуть механизм платформы, это можно сделать в расширении, что бы не редактировать конфигурацию.
Спасибо за ссылки, обязательно ознакомлюсь!
7. Viktor_Ermakov 416 09.08.26 20:32 Сейчас в теме
(5) Посмотрел, у них только входящие логи, у меня же и входящие и исходящие. В целом инструменты похожие, разная реализация. Каждый выберет то, что ему больше подходит. Спасибо, если еще что есть кидайте.
Для отправки сообщения требуется регистрация/авторизация