Задача интеграции между двумя информационными базами 1С часто встречается в практике автоматизации. Использование COM-соединения, хотя и является классическим подходом, имеет ряд недостатков: зависимость от установленной платформы на сервере, проблемы с памятью и сложность настройки прав доступа. Рассмотрим современные методы, позволяющие реализовать обмен данными эффективно и безопасно.
Одним из самых оптимальных решений для связи двух баз 1С является встроенный механизм OData. Его преимущество заключается в том, что разработчику не требуется вносить изменения в структуру целевой конфигурации.
OData.POST для создания документов и PATCH для их изменения.Рассмотрим, как выглядит отправка запроса на создание объекта через HTTP-запрос в коде 1С:
Соединение = Новый HTTPСоединение(АдресСервера, , Пользователь, Пароль);
Запрос = Новый HTTPЗапрос("/odata/standard.odata/Document_РеализацияТоваровУслуг");
Запрос.УстановитьТелоИзСтроки(ДанныеJSON);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Этот метод позволяет работать с объектами метаданных напрямую, используя стандартный интерфейс платформы, что значительно упрощает архитектуру взаимодействия.
Если конфигурации баз существенно различаются (например, разные версии БСП или разные типы учета), стандартный OData может оказаться недостаточно гибким. В этом случае мы рекомендуем создать собственный HTTP-сервис.
Алгоритм действий:
HTTP-сервис с нужными методами (например, CreateDocument).JSON-структуру, содержащую все необходимые данные для создания документа.POST на ваш сервис.JSON с последующим заполнением и проведением документа.Для обеспечения надежности передачи данных, особенно при работе с разными конфигурациями, рекомендуется внедрить промежуточный слой:
Создание регистра сведений для сопоставления данных. Поскольку GUID документов в разных базах будут отличаться, вам потребуется справочник или регистр сведений, где вы будете хранить соответствие UID объекта-источника и UID объекта-приемника.
Асинхронная обработка. Чтобы не блокировать работу пользователя в основной базе, рекомендуем реализовать очередь сообщений. Передавайте данные в принимающую базу не напрямую, а через промежуточный регистр, который будет обрабатываться регламентным заданием. Это позволит избежать таймаутов и обеспечит возможность повторной отправки при возникновении ошибок.
Приступая к разработке, помните о следующих важных аспектах:
ИНН для контрагентов и Артикул или Код для товаров.HTTPS при публикации баз. Не передавайте данные под административными учетными записями — создайте отдельного пользователя с ограниченными правами, предназначенного только для интеграционного обмена.HTTP-сервис должен возвращать коды состояния HTTP (например, 200 при успехе, 400 при ошибке данных, 500 при серверной ошибке). Это позволит базе-источнику корректно обрабатывать ситуацию сбоя.Подводя итог, можно сказать, что переход на HTTP-интеграцию — это верный путь к созданию масштабируемой системы. Выбирайте OData, если структуры метаданных позволяют, или HTTP-сервисы, если требуется сложная логика обработки данных.