Обмен контрагентами через Apache Kafka для Бухгалтерии РФ и Казахстана
Интеграция - Внешние источники данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Расширение ИнтеграцияApacheKafka (префикс KFK_, версия 1.0.0) ставится поверх типовой бухгалтерии и не правит конфигурацию на поддержке.
Две отдельные поставки: для Бухгалтерии предприятия (РФ) и для Бухгалтерии для Казахстана. Один .cfe в обе базы не подойдёт - у заимствованных объектов разные UUID.
Что делает
Портал (или другая система) шлёт в топик contragents события contragent_created / contragent_updated. Каждое сообщение - полный актуальный снимок: карточка, контакты, адреса, банковские счета, договоры.
Контур читает своей consumer group, сохраняет Inbox, фиксирует offset, публикует Started в contragents.exchange, применяет снимок и пишет ровно один конечный статус: Completed или Failed.
Маршрутизация по заголовку organization-id:
1- только РФ5- только КЗ- нет заголовка - оба контура независимо
- чужой код - offset подтверждается, бизнес-статуса нет
Технические решения
- подключение к Kafka напрямую через компоненту Simple Kafka Adapter (макет
KFK_Компонента) - Inbox до commit offset
- идемпотентность по паре (контур, message id)
- статусы через Outbox (сначала Started, потом terminal)
- до трёх попыток на технический сбой и на отсутствующую голову контрагента
- каталог ошибок: REQUIRED_FIELD_MISSING, INVALID_FORMAT, UNSUPPORTED_VERSION, REFERENCE_NOT_FOUND, HEAD_CONTRAGENT_NOT_FOUND, DUPLICATE_CONFLICT, INTERNAL_ERROR
- роли KFK_СервисОбмена и KFK_ДиагностикаОбмена
- пароль брокера не в коде: переменная среды, файл или безопасное хранилище БСП
Важно про полный снимок
Банковские счета и договоры, которых нет в новом сообщении, удаляются, в том числе созданные вручную. Перед включением на рабочей базе сделайте резервную копию.
На каких релизах проверяли
- платформа 8.3.27
- совместимость расширения: 8.3.24+
- Бухгалтерия предприятия КОРП 3.0.195.40 (контур РФ)
- Бухгалтерия для Казахстана 3.0.74.2 (контур КЗ)
Как подключить (кратко)
- Загрузить свою поставку .cfe (РФ или КЗ).
- Создать топики contragents и contragents.exchange.
- Заполнить KFK_Брокеры, KFK_НастройкиКонтуров, KFK_МаршрутизацияОрганизаций.
- Положить секрет Kafka вне исходников.
- Включить KFK_ЗаданиеМониторингаКонсьюмеров и активный элемент KFK_Консьюмеры.
- Проверить готовность подключения и состояние consumer.
Подробные шаги - в инструкциях администратора из поставки.
Состав файлов
- IntegratsiyaApacheKafka-rf.cfe - поставка РФ
- IntegratsiyaApacheKafka-kz.cfe - поставка КЗ
- исходники и JSON Schema контракта 1.0.0 - в выгрузке расширения
- документация: концепция, задание порталу, инструкции РФ и КЗ
Зависимости
Внешняя компонента: Simple Kafka Adapter (NuclearAPK/Simple-Kafka_Adapter). Лицензии компоненты смотрите в её репозитории. Типовые конфигурации фирмы "1С" в поставку не входят.
Лицензия кода расширения: MIT.
Ограничения релиза 1.0.0
В этот релиз входят только контрагенты. Счета, реализации, поступления и исходящие топики планируются в отдельных релизах, отдельными поставками.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.195.40
Вступайте в нашу телеграмм-группу Инфостарт