Заготовка функционала интеграции 1С со сторонним приложением

Опубликовано 25 сентября 2023
Кейсы Наработки
...

выгрузка базы База с примером реализации обмена со сторонним приложением

Пример реализации обмена между 1С и сторонним приложением через HTTP-сервис с запросами/ответами в формате JSON. План обмена для регистрации изменений и валидация/разбор входящих запросов с помощью XDTO.

К публикации приложена выгрузка небольшой базы (dt), в которой реализован полноценный обмен со сторонним приложением через HTTP-сервис и JSON. Чем конфигурация может быть полезна:

  • Предложенный механизм обмена можно взять целиком, если он “ложится” на вашу задачу (см. описание механизма ниже).

  • Можно надергать примеры точно рабочего кода.

  • Посмотреть/пощупать работу с отдельными механизмами 1С (JSON, XDTO, планы обмена, HTTP-сервисы).

В конфигурации два справочника «Номенклатура», «Контрагенты», и один документ «Заказ клиента». Это простые объекты, набросок логики учета.

Механизм обмена реализуется с помощью:

  • Плана обмена «мойОбмен» – регистрирует изменения по справочникам и документу.

  • HTTP-сервиса «мойСервисОбмена» – выдает зарегистрированные изменения, позволяет создавать в базе объекты по запросам в формате JSON.

  • Пакет XDTO «моиСтруктурыДанныхОбмена» – описывает формат входящих запросов JSON для HTTP-сервиса. Позволяет проверять их правильность.

  • Обработка «мояОбработкаОбменаJSON». В модуле объекта обработки реализована работа с планом обмена, JSON и т.д. в виде API. Отдельные операции этого API можно протестировать, открыв форму обработки. HTTP-сервис использует эту обработку для разбора запросов, формирования ответов.

API HTTP-сервиса

Конфигурация 1С умеет выдавать все зарегистрированные изменения и удалять регистрацию изменений (если изменения успешно загружены в приложение, с которым интегрируемся). Также есть возможность создавать/изменять отдельные элементы справочников и документы.

  • GET /hs/my_exch/changes
    Получение всех измененных объектов, а также номера сообщения обмена.

  • GET /hs/my_exch/clear/{msg}
    Удаление регистрации изменений по принятому сообщению с номером {msg}.

  • POST /hs/my_exch/product
    Создание/изменение элемента спр-ка Номенклатура.

  • POST /hs/my_exch/client
    Создание/изменение элемента спр-ка Контрагенты.

  • POST /hs/my_exch/order
    Создание/изменение документа Заказ клиента.

Объекты синхронизируются по УИД. Примеры запросов и ответов можно увидеть, развернув базу и открыв обработку (можно даже не публиковать HTTP-сервис).

| История о проекте, на котором появилась эта заготовка.

На канале делюсь своим опытом и наработками.