Как программно создать документ в другой базе 1С без использования COM-соединения?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Задача интеграции между двумя информационными базами 1С часто встречается в практике автоматизации. Использование COM-соединения, хотя и является классическим подходом, имеет ряд недостатков: зависимость от установленной платформы на сервере, проблемы с памятью и сложность настройки прав доступа. Рассмотрим современные методы, позволяющие реализовать обмен данными эффективно и безопасно.

Использование механизма OData (REST интерфейс)

Одним из самых оптимальных решений для связи двух баз 1С является встроенный механизм OData. Его преимущество заключается в том, что разработчику не требуется вносить изменения в структуру целевой конфигурации.

  1. Опубликуйте базу-приемник на веб-сервере (Apache или IIS).
  2. Включите в настройках публикации поддержку OData.
  3. Используйте стандартные HTTP-методы POST для создания документов и PATCH для их изменения.

Рассмотрим, как выглядит отправка запроса на создание объекта через HTTP-запрос в коде 1С:


Соединение = Новый HTTPСоединение(АдресСервера, , Пользователь, Пароль);
Запрос = Новый HTTPЗапрос("/odata/standard.odata/Document_РеализацияТоваровУслуг");
Запрос.УстановитьТелоИзСтроки(ДанныеJSON);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Ответ = Соединение.ОтправитьДляОбработки(Запрос);

Этот метод позволяет работать с объектами метаданных напрямую, используя стандартный интерфейс платформы, что значительно упрощает архитектуру взаимодействия.

Разработка собственных HTTP-сервисов

Если конфигурации баз существенно различаются (например, разные версии БСП или разные типы учета), стандартный OData может оказаться недостаточно гибким. В этом случае мы рекомендуем создать собственный HTTP-сервис.

Алгоритм действий:

  1. Создайте в принимающей базе HTTP-сервис с нужными методами (например, CreateDocument).
  2. В основной базе формируйте JSON-структуру, содержащую все необходимые данные для создания документа.
  3. Передавайте этот файл методом POST на ваш сервис.
  4. На принимающей стороне организуйте парсинг JSON с последующим заполнением и проведением документа.

Использование планов обмена и очередей сообщений

Для обеспечения надежности передачи данных, особенно при работе с разными конфигурациями, рекомендуется внедрить промежуточный слой:

Создание регистра сведений для сопоставления данных. Поскольку GUID документов в разных базах будут отличаться, вам потребуется справочник или регистр сведений, где вы будете хранить соответствие UID объекта-источника и UID объекта-приемника.

Асинхронная обработка. Чтобы не блокировать работу пользователя в основной базе, рекомендуем реализовать очередь сообщений. Передавайте данные в принимающую базу не напрямую, а через промежуточный регистр, который будет обрабатываться регламентным заданием. Это позволит избежать таймаутов и обеспечит возможность повторной отправки при возникновении ошибок.

Рекомендации по реализации

Приступая к разработке, помните о следующих важных аспектах:

Подводя итог, можно сказать, что переход на HTTP-интеграцию — это верный путь к созданию масштабируемой системы. Выбирайте OData, если структуры метаданных позволяют, или HTTP-сервисы, если требуется сложная логика обработки данных.

← На главную