Перейти к содержанию

О проекте

1С: Адаптер Kafka — встраиваемая подсистема для построения надёжных, масштабируемых и управляемых интеграционных потоков между 1С:Предприятие и брокером сообщений Apache Kafka на основе событийной архитектуры.

Подсистема берёт на себя всю техническую часть интеграции:

  • постановку данных в очереди;
  • обработку, выгрузку и загрузку сообщений;
  • контроль ошибок и логирование.

Прикладное решение использует адаптер как готовый инфраструктурный слой — без собственной реализации работы с Kafka.

Варианты использования

Подсистема может применяться как:

  • инфраструктурный слой интеграции — единый стандарт обмена внутри прикладного решения;
  • транспорт для межсистемного обмена — надёжная доставка данных между системами;
  • механизм событийной синхронизации — автоматическая публикация событий об изменениях данных.

Возможности

Регистрация и отправка данных (1С → Kafka)

  • Автоматическая постановка объектов и наборов записей в очередь при записи.
  • Ручная регистрация через пользовательский интерфейс или программный API.
  • Формирование сообщений произвольными обработчиками или через 1С:Конвертация данных 3.1.
  • Сериализация и валидация исходящих сообщений на основе XDTO.
  • Параллельная отправка сообщений через фоновые задания 1С.

Получение и обработка данных (Kafka → 1С)

  • Автоматическая загрузка сообщений из Kafka.
  • Обработка произвольными обработчиками или через 1С:Конвертация данных 3.1.
  • Десериализация и валидация входящих сообщений на основе XDTO.
  • Параллельная обработка входящих сообщений через фоновые задания 1С.

Интеграция и API

  • Высокоуровневый API, абстрагирующий работу с Kafka и внешним компонентом Simple Kafka Connector 1C.
  • Прямой (синхронный) API для нестандартных сценариев без фоновых заданий.

Мониторинг и операционность

  • Хранение истории обмена и диагностической информации.
  • Алерты с уведомлениями в Telegram.
  • Выгрузка журнала обмена в Elasticsearch / Logstash / Kibana.

Варианты внедрения

Расширение конфигурации Часть основной конфигурации
Рекомендуется для Типовых конфигураций с регулярными обновлениями Глубоко кастомизированных решений
Плюсы Минимальное вмешательство в основную конфигурацию; простое отключение и удаление Полный контроль над точками встраивания; глубокая интеграция в прикладную логику
Минусы Ограничения механизма расширений 1С Сложность обновления зависит от режима поддержки

Подробное описание — в Установка и подключение.

Благодарности

Компоненты и библиотеки:

  • Simple Kafka Connector 1C — внешний компонент (DLL) для работы с Kafka из 1С, на базе librdkafka.
  • Kafka1CExtension — базовый проект, послуживший основой для адаптера.
  • JSONEditor — встроенный UI-редактор JSON.

Инструменты разработки:

  • RDT1C — подсистема «Инструменты разработчика».
  • tools_ui_1c — универсальные инструменты для управляемых форм 1С.

Тестирование:

  • YAxUnit — фреймворк для юнит-тестирования на платформе 1С.

Инфраструктура:

  • onec-docker — использовался как пример при создании Docker-образов для CI/CD.

Участие в разработке

Приветствуются предложения, сообщения об ошибках и pull request'ы в репозитории на GitHub.

При создании issue:

  • для ошибки — укажите версию платформы 1С, описание проблемы и шаги воспроизведения;
  • для предложения — опишите задачу и ожидаемое поведение;
  • для вопроса — постарайтесь предоставить минимальный воспроизводимый пример.

При создании pull request'а:

  • опишите суть изменения и мотивацию;
  • убедитесь, что изменения не нарушают работу существующей функциональности;
  • для значительных изменений — сначала откройте issue для обсуждения.