Как эффективно работать с веб-сервисами в 1С:Предприятии 8.3 для интеграции с внешними системами?

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

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

Мы рассмотрим основные принципы, шаги по созданию и публикации веб-сервисов, а также выясним, какие инструменты помогут нам в этом, включая XDTO-пакеты и различные подходы к реализации.

Что такое веб-сервисы и зачем они нужны в 1С?

Веб-сервисы в 1С:Предприятии 8.3 представляют собой механизм платформы, предназначенный для интеграции с другими информационными системами. Они являются фундаментом для построения сервис-ориентированной архитектуры (SOA), которая позволяет различным программам и платформам обмениваться данными, независимо от их внутренней структуры и используемых технологий.

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

Создание и публикация собственного веб-сервиса в 1С

Рассмотрим по шагам, как превратить функциональность вашей конфигурации 1С в доступный извне веб-сервис.

  1. Добавление объекта "Web-сервис" в конфигурацию: Первым делом нам необходимо добавить новый объект конфигурации с типом Web-сервис. Это будет контейнер для всех операций, которые мы хотим предоставить внешнему миру.

  2. Описание операций и их параметров: В модуле созданного веб-сервиса мы описываем все необходимые операции (методы) на встроенном языке 1С. Для каждой операции указываем ее параметры (входящие и исходящие данные), которые будут использоваться при обмене. Эти параметры могут быть как примитивными типами (строка, число, дата), так и более сложными структурами, о которых мы поговорим чуть позже при рассмотрении XDTO-пакетов.

    Давайте посмотрим на простой пример создания операции WEBPing(), как было предложено в одном из сообщений, чтобы проверить доступность сервиса:

    
    // В модуле объекта Web-сервис
    Функция WEBPing() Экспорт
        Возврат "Pong " + Строка(ТекущаяДата());
    КонецФункции
    

    Этот метод возвращает простую строку, подтверждающую работоспособность сервиса и текущее время.

  3. Публикация веб-сервиса на веб-сервере: После определения операций нам необходимо опубликовать веб-сервис. Этот процесс выполняется через диалог "Публикация на веб-сервере", который доступен в Конфигураторе через меню Администрирование -> Публикация на веб-сервере.

    При публикации происходит следующее:

    • Создается специальный каталог на диске, где размещаются файлы для взаимодействия веб-сервиса.
    • Настраивается выбранный веб-сервер (например, IIS или Apache) для работы с приложением 1С:Предприятие.
    • Важно правильно настроить права доступа к папкам 1С и веб-сервера, а также добавить необходимые MIME-типы 1С для корректной обработки запросов.

    Веб-сервисы могут быть опубликованы как по имени, так и с использованием псевдонима, который мы можем редактировать для удобства.

Механизм веб-сервисов 1С поддерживает общепринятые стандарты, такие как SOAP, WSDL (Web Services Description Language), HTTP, SSL/TLS и WS-I BP (Web Services Interoperability Basic Profile), что обеспечивает широкую совместимость с другими системами.

Работа со структурой данных: XDTO-пакеты – ваш универсальный инструмент

Когда речь заходит об обмене сложными структурами данных через веб-сервисы, на помощь приходят XDTO-пакеты. Это универсальный механизм платформы 1С для представления и обмена данными, особенно с внешними источниками и программными системами.

XDTO позволяют нам создать модель типов и значений, которая значительно облегчает манипулирование данными в 1С и их прозрачное преобразование в другие форматы, в первую очередь XML. В контексте веб-сервисов XDTO-пакеты используются для описания структуры данных (типов и свойств), которыми оперируют операции веб-сервиса. Это позволяет нам обращаться к данным XML-файлов как к обычным объектам 1С "через точку", без необходимости напрямую работать с тегами и атрибутами XML.

Рассмотрим, как это работает:

  1. Создание или импорт XDTO-пакетов: Мы можем создавать XDTO-пакеты самостоятельно в конфигурации, импортировать существующие XSD-схемы (XML Schema Definition) или использовать их из отдельных XSD-файлов. Это дает большую гибкость при работе с уже существующими внешними сервисами.

  2. Использование XDTO в коде: После того как структура данных описана в XDTO-пакете, мы можем легко получать XML или JSON из этих объектов и передавать их через веб-сервис. Как было отмечено, для этого потребуется всего пара строчек кода. Это делает процесс универсальным: хотим ли мы использовать Web-сервис (SOAP) или HTTP-сервис, работа с данными через XDTO будет схожей.

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

Выбор подхода: Web-сервисы (SOAP) или HTTP-сервисы (REST/JSON)?

Платформа 1С:Предприятие предлагает два основных механизма для взаимодействия через веб: традиционные Web-сервисы (на базе SOAP) и более современные HTTP-сервисы (для реализации REST API).

Web-сервисы (SOAP)

Эти сервисы появились в 1С раньше (как минимум, в версии 8.1). Они используют более сложную организацию URL-пространства имен и ориентированы на действия (методы, выполняющие определенные операции). Обмен данными происходит в формате XML.

Преимущества SOAP:

Когда использовать SOAP: Если внешняя система уже использует SOAP, или если требуется строгая контрактация и высокая надежность обмена данными.

HTTP-сервисы (REST/JSON)

HTTP-сервисы появились в платформе 1С с версии 8.3.5. Они более гибкие, ориентированы на ресурсы и могут использовать различные форматы передачи данных, такие как JSON, XML и простой текст.

Преимущества HTTP-сервисов:

REST API и OData:

Платформа 1С:Предприятие также может автоматически формировать REST интерфейс для всего прикладного решения. Этот интерфейс является основным инструментом для интеграции со сторонними системами благодаря своей универсальности и кроссплатформенности. Он позволяет читать, изменять, создавать и удалять объекты данных 1С с помощью стандартных HTTP-запросов. В качестве протокола доступа используется OData версии 3.0, который позволяет оперировать данными, используя HTTP-команды, а получать ответы можно в форматах Atom/XML или JSON.

Когда использовать HTTP-сервисы: Для интеграции с современными веб-приложениями, мобильными клиентами, микросервисами, где важна скорость разработки, гибкость и легкость использования JSON.

Использование Библиотеки стандартных подсистем (БСП) при работе с веб-сервисами

Библиотека стандартных подсистем (БСП) — это набор универсальных функциональных подсистем, предназначенных для использования в прикладных решениях на платформе 1С:Предприятие 8.3. Хотя в явном виде БСП не содержит отдельных подсистем для работы непосредственно с веб-сервисами, она предоставляет базовую функциональность и программные интерфейсы, которые могут быть чрезвычайно полезны при реализации интеграций.

Мы можем использовать БСП для:

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

Обеспечение безопасности и отладка

При работе с веб-сервисами, особенно через интернет, безопасность данных является критически важным аспектом. Мы настоятельно рекомендуем использовать протокол HTTPS для шифрования данных, передаваемых между 1С и внешними системами. Платформа 1С:Предприятие постоянно развивается, и в новых версиях (например, 8.3.28) усиливаются меры безопасности за счет добавления новых функций для защиты данных пользователей.

Для отладки веб-сервисов 1С предоставляет встроенные инструменты, которые позволяют нам эффективно выявлять и устранять ошибки. Мы можем отлаживать как веб-сервисы, которые 1С предоставляет (в роли поставщика), так и те, которые 1С потребляет (в роли клиента). Это позволяет нам шаг за шагом проследить выполнение кода, анализировать значения переменных и запросов, что значительно ускоряет процесс разработки и внедрения.

Работа с веб-сервисами в 1С:Предприятии 8.3 — это мощный инструмент для построения интегрированных решений. Надеемся, что этот подробный разбор поможет вам успешно внедрять и использовать веб-сервисы в вашей работе.

← К списку