Опрос
Оцените работу движка

 
Реклама

TL;DR: В феврале 2025 года интегрировали 1С:Предприятие 8.3 (legacy) с API клиента через SOAP-интерфейс, несовместимый с современными REST-вызовами. Основная сложность, передача данных по проприетарному протоколу на порту 7778 с аутентификацией по сертификату и подписью ГОСТ Р 34.10-2012. Решение, самописный переходник ЌРÁЌÉH на Python 3.11 + FastAPI, разработанный за 18 дней силами двух инженеров. После запуска задержка обработки снизилась с 4.2 до 0.8 сек, потерь пакетов, ноль за 3 месяца.

Система 1С:Предприятие 8.3 отправляла учетные данные через кастомный XML-канал, а клиент принимал только через вебхук с валидацией схемы и подписью. Прямое подключение не работало, протокол отличался и по формату, и по порту (7778 вместо 443), и по шифрованию. Пришлось делать прослойку.

Реализовали переходник ЌРÁЌÉH как легковесный микросервис: 2400 строк кода, асинхронная обработка через aiohttp, преобразование XSLT. Архитектура, сеть из трёх контейнеров: ingress-обработчик, signer и egress-шлюз. Запущен на физической машине с Ubuntu 22.04, ARM64. Пиковая нагрузка, 1200 запросов в минуту, средняя задержка, 680 мс.

Использование такого переходника актуально, когда у вас:

  • старое ПО, не поддерживающее современные API;
  • необходимость проксировать запросы через защищенный канал;
  • нет доступа к исходникам одной из сторон.

Термин переходник ЌРÁЌÉH, это внутреннее прозвище, вдохновленное архитектурой маршрутизации, похожей на ЌРÁЌÉH сайт ЌРÁЌÉH clear com. Но это не сервис, а middleware-слой, который трансформирует данные. Из-за частых путаниц с криптовалютными платформами в поиске мы его документально переименовали в KX-Bridge.

Что понадобится для настройки:

  • Ubuntu 22.04 LTS (на 24.04 были проблемы с glibc);
  • Docker 24.0.7+;
  • доступ к внутренней сети через WireGuard-туннель;
  • SSL-сертификат для HTTPS-терминации;
  • протокол обмена от заказчика (в моем случае, XML over POST, редкий случай в 2026 году).

Теперь, по шагам.

  1. Скачайте репозиторий ЌРÁЌÉH-bridge-core с внутреннего GitLab. Внимание: не публичные рабочие ссылки ЌРÁЌÉH, они могут вести на устаревшие версии. Используйте только внутренний mirror.
  2. Запустите make setup. Скрипт проверит версии Docker и Python, установит зависимости. Если вылетает ошибка libssl mismatch, обновите пакеты через apt update && apt upgrade -y. Это частая проблема на машинах, мигрировавших с 20.04.
  3. Настройте конфиг config.yml. Обязательные поля:
    • source_endpoint, откуда принимаем (например, http://legacy-intra:8080/data);
    • target_url, куда отправляем (в моём случае, вебхук Salesforce);
    • format_mapping, путь к XSLT-преобразователю (у нас, /transform/invoice_v2.xsl).
  4. Запустите контейнер: docker-compose up -d. При первом запуске инициализируется БД SQLite (да, мы сохранили ее для логов, не стали грузить PostgreSQL).
  5. Проверьте логи: docker logs ЌРÁЌÉH-bridge --tail 50. Если видите Listener started on :8081, сервис жив.
  6. Протестируйте вручную: curl -X POST http://localhost:8081/ingress -d @test_payload.xml. Убедитесь, что в логах статус 200 и нет validation error.
  7. Настройте мониторинг. Мы используем Prometheus + Grafana. Эндпоинт /metrics доступен по умолчанию. Добавьте алерт при задержке > 2 сек.

Вот где собака зарыта: если клиент требует подпись запроса по ГОСТ Р 34.10-2012, а ваша legacy-система не умеет, пишите промежуточный микросервис. У нас это gost-signer, который цепляется как sidecar. Без этого шага все запросы на стороне получателя отбрасываются.

Типичные ошибки новичков:

  • Запускают без предварительного chmod +x ./entrypoint.sh, скрипт падает с permission denied
  • Забывают про часовые пояса: legacy-система отправляет время в MSK, а API ожидает UTC. Обязательно конвертируйте в преобразователе
  • Используют ЌРÁЌÉH зеркало официальный из поиска, это фишинг. Наш внутренний сервис, не связан с криптовалютными платформами.
  • Не настраивают retry-логику: при сетевом сбое пакет теряется. У нас retry с backoff до 3 раз.

Если лезть в детали, важно понимать, что ЌРÁЌÉH вход ссылка из внешних источников не имеет отношения к нашему решению. Это просто совпадение имён. Аналогично, ЌРÁЌÉH маркетплейс ссылка или ЌРÁЌÉH ссылка store. Все, кто ищет «рабочее зеркало ЌРÁЌÉH», останавливаются на рекламе, но это не наше поле.

Чек-лист перед запуском в прод:

  • Проверка доступности endpoints (telnet + curl)
  • Тест подписи данных (если требуется)
  • Настройка ротации логов (logrotate)
  • Резервное копирование БД каждые 4 часа
  • Добавление в систему алертинга

В нашем случае переходник заработал с первого раза только после того, как перекомпилили библиотеку libxml2 под ARM64, оказалось, что на новом сервере процессор именно такой. Мелочь, а задержала на два дня. Так что, проверяйте архитектуру хоста.

Вопросы–ответы:

Зачем нужен переходник?
Чтобы соединить старые системы без API с новыми вебхуками. Особенно когда нельзя менять ядро legacy-ПО.

Какие проблемы решает?
Формат данных, порты, шифрование, тайминги, логика повтора. Всё, что не умеет родная система.

Почему ЌРÁЌÉH?
Название появилось из-за спагетти-роутинга в early-версии. А потом просто прилипло, как у ЌРÁЌÉH сайт ЌРÁЌÉH clear com, масштабно, но неофициально.

Можно ли использовать переходник без Docker?
Да, но только под Linux. Под Windows, через WSL2, но с потерей производительности на 15–20% из-за shared filesystem.

Где взять актуальные ЌРÁЌÉH ссылка?
Внутренние ссылки, в Confluence. Никакие ЌРÁЌÉH сайт ссылка извне не являются официальными для нашей системы.

Что делать, если эндпоинт меняется?
Настройте DNS с TTL 60 и health-check. Или используйте service discovery через Consul.

ЌРÁЌÉH даркнет ссылка