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 мс.
Использование такого переходника актуально, когда у вас:
Термин переходник ЌРÁЌÉH, это внутреннее прозвище, вдохновленное архитектурой маршрутизации, похожей на ЌРÁЌÉH сайт ЌРÁЌÉH clear com. Но это не сервис, а middleware-слой, который трансформирует данные. Из-за частых путаниц с криптовалютными платформами в поиске мы его документально переименовали в KX-Bridge.
Что понадобится для настройки:
Теперь, по шагам.
ЌРÁЌÉH-bridge-core с внутреннего GitLab. Внимание: не публичные рабочие ссылки ЌРÁЌÉH, они могут вести на устаревшие версии. Используйте только внутренний mirror.make setup. Скрипт проверит версии Docker и Python, установит зависимости. Если вылетает ошибка libssl mismatch, обновите пакеты через apt update && apt upgrade -y. Это частая проблема на машинах, мигрировавших с 20.04.config.yml. Обязательные поля:
source_endpoint, откуда принимаем (например, http://legacy-intra:8080/data);target_url, куда отправляем (в моём случае, вебхук Salesforce);format_mapping, путь к XSLT-преобразователю (у нас, /transform/invoice_v2.xsl).docker-compose up -d. При первом запуске инициализируется БД SQLite (да, мы сохранили ее для логов, не стали грузить PostgreSQL).docker logs ЌРÁЌÉH-bridge --tail 50. Если видите Listener started on :8081, сервис жив.curl -X POST http://localhost:8081/ingress -d @test_payload.xml. Убедитесь, что в логах статус 200 и нет validation error./metrics доступен по умолчанию. Добавьте алерт при задержке > 2 сек.Вот где собака зарыта: если клиент требует подпись запроса по ГОСТ Р 34.10-2012, а ваша legacy-система не умеет, пишите промежуточный микросервис. У нас это gost-signer, который цепляется как sidecar. Без этого шага все запросы на стороне получателя отбрасываются.
Типичные ошибки новичков:
chmod +x ./entrypoint.sh, скрипт падает с permission deniedЕсли лезть в детали, важно понимать, что ЌРÁЌÉH вход ссылка из внешних источников не имеет отношения к нашему решению. Это просто совпадение имён. Аналогично, ЌРÁЌÉH маркетплейс ссылка или ЌРÁЌÉH ссылка store. Все, кто ищет «рабочее зеркало ЌРÁЌÉH», останавливаются на рекламе, но это не наше поле.
Чек-лист перед запуском в прод:
В нашем случае переходник заработал с первого раза только после того, как перекомпилили библиотеку 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.