Сегодня интеграция информационных систем является ключевым фактором успеха любого предприятия. Платформа 1С:Предприятие 8.3 предоставляет мощные механизмы для взаимодействия с внешними системами, и одним из наиболее универсальных и распространенных является работа с веб-сервисами. Давайте подробно разберем, как использовать этот функционал, чтобы ваша система 1С могла эффективно обмениваться данными с другими приложениями.
Мы рассмотрим основные принципы, шаги по созданию и публикации веб-сервисов, а также выясним, какие инструменты помогут нам в этом, включая XDTO-пакеты и различные подходы к реализации.
Веб-сервисы в 1С:Предприятии 8.3 представляют собой механизм платформы, предназначенный для интеграции с другими информационными системами. Они являются фундаментом для построения сервис-ориентированной архитектуры (SOA), которая позволяет различным программам и платформам обмениваться данными, независимо от их внутренней структуры и используемых технологий.
Важно понимать, что 1С может выступать как в роли поставщика веб-сервисов, предоставляя доступ к своей функциональности и данным для внешних систем, так и в роли потребителя, используя веб-сервисы, предоставляемые сторонними поставщиками. Основная цель этого механизма — это упрощение интеграции между разнородными системами, автоматизация рутинных процессов, а также обеспечение независимости от платформы и автономности взаимодействующих систем.
Рассмотрим по шагам, как превратить функциональность вашей конфигурации 1С в доступный извне веб-сервис.
Добавление объекта "Web-сервис" в конфигурацию: Первым делом нам необходимо добавить новый объект конфигурации с типом Web-сервис. Это будет контейнер для всех операций, которые мы хотим предоставить внешнему миру.
Описание операций и их параметров: В модуле созданного веб-сервиса мы описываем все необходимые операции (методы) на встроенном языке 1С. Для каждой операции указываем ее параметры (входящие и исходящие данные), которые будут использоваться при обмене. Эти параметры могут быть как примитивными типами (строка, число, дата), так и более сложными структурами, о которых мы поговорим чуть позже при рассмотрении XDTO-пакетов.
Давайте посмотрим на простой пример создания операции WEBPing(), как было предложено в одном из сообщений, чтобы проверить доступность сервиса:
// В модуле объекта Web-сервис
Функция WEBPing() Экспорт
Возврат "Pong " + Строка(ТекущаяДата());
КонецФункции
Этот метод возвращает простую строку, подтверждающую работоспособность сервиса и текущее время.
Публикация веб-сервиса на веб-сервере: После определения операций нам необходимо опубликовать веб-сервис. Этот процесс выполняется через диалог "Публикация на веб-сервере", который доступен в Конфигураторе через меню Администрирование -> Публикация на веб-сервере.
При публикации происходит следующее:
IIS или Apache) для работы с приложением 1С:Предприятие.MIME-типы 1С для корректной обработки запросов.Веб-сервисы могут быть опубликованы как по имени, так и с использованием псевдонима, который мы можем редактировать для удобства.
Механизм веб-сервисов 1С поддерживает общепринятые стандарты, такие как SOAP, WSDL (Web Services Description Language), HTTP, SSL/TLS и WS-I BP (Web Services Interoperability Basic Profile), что обеспечивает широкую совместимость с другими системами.
Когда речь заходит об обмене сложными структурами данных через веб-сервисы, на помощь приходят XDTO-пакеты. Это универсальный механизм платформы 1С для представления и обмена данными, особенно с внешними источниками и программными системами.
XDTO позволяют нам создать модель типов и значений, которая значительно облегчает манипулирование данными в 1С и их прозрачное преобразование в другие форматы, в первую очередь XML. В контексте веб-сервисов XDTO-пакеты используются для описания структуры данных (типов и свойств), которыми оперируют операции веб-сервиса. Это позволяет нам обращаться к данным XML-файлов как к обычным объектам 1С "через точку", без необходимости напрямую работать с тегами и атрибутами XML.
Рассмотрим, как это работает:
Создание или импорт XDTO-пакетов: Мы можем создавать XDTO-пакеты самостоятельно в конфигурации, импортировать существующие XSD-схемы (XML Schema Definition) или использовать их из отдельных XSD-файлов. Это дает большую гибкость при работе с уже существующими внешними сервисами.
Использование XDTO в коде: После того как структура данных описана в XDTO-пакете, мы можем легко получать XML или JSON из этих объектов и передавать их через веб-сервис. Как было отмечено, для этого потребуется всего пара строчек кода. Это делает процесс универсальным: хотим ли мы использовать Web-сервис (SOAP) или HTTP-сервис, работа с данными через XDTO будет схожей.
XDTO-пакеты значительно упрощают внесение изменений в структуру сервиса, если методы меняются или добавляются, так как мы работаем с высокоуровневым описанием данных, а не с низкоуровневой обработкой XML.
Платформа 1С:Предприятие предлагает два основных механизма для взаимодействия через веб: традиционные Web-сервисы (на базе SOAP) и более современные HTTP-сервисы (для реализации REST API).
Эти сервисы появились в 1С раньше (как минимум, в версии 8.1). Они используют более сложную организацию URL-пространства имен и ориентированы на действия (методы, выполняющие определенные операции). Обмен данными происходит в формате XML.
Преимущества SOAP:
SOAP имеет строгую структуру описания данных и контрактов, что важно для формализованного обмена, например, в банковских и государственных системах.Когда использовать SOAP: Если внешняя система уже использует SOAP, или если требуется строгая контрактация и высокая надежность обмена данными.
HTTP-сервисы появились в платформе 1С с версии 8.3.5. Они более гибкие, ориентированы на ресурсы и могут использовать различные форматы передачи данных, такие как JSON, XML и простой текст.
Преимущества HTTP-сервисов:
REST API прямо внутри конфигурации 1С, что делает их простыми в настройке и использовании.JSON является де-факто стандартом.REST API и OData:
Платформа 1С:Предприятие также может автоматически формировать REST интерфейс для всего прикладного решения. Этот интерфейс является основным инструментом для интеграции со сторонними системами благодаря своей универсальности и кроссплатформенности. Он позволяет читать, изменять, создавать и удалять объекты данных 1С с помощью стандартных HTTP-запросов. В качестве протокола доступа используется OData версии 3.0, который позволяет оперировать данными, используя HTTP-команды, а получать ответы можно в форматах Atom/XML или JSON.
Когда использовать HTTP-сервисы: Для интеграции с современными веб-приложениями, мобильными клиентами, микросервисами, где важна скорость разработки, гибкость и легкость использования JSON.
Библиотека стандартных подсистем (БСП) — это набор универсальных функциональных подсистем, предназначенных для использования в прикладных решениях на платформе 1С:Предприятие 8.3. Хотя в явном виде БСП не содержит отдельных подсистем для работы непосредственно с веб-сервисами, она предоставляет базовую функциональность и программные интерфейсы, которые могут быть чрезвычайно полезны при реализации интеграций.
Мы можем использовать БСП для:
БСП может использовать веб-сервисы, например, для загрузки адресных сведений, что позволяет не загружать классификатор и всегда иметь актуальные данные. Это показывает хороший пример того, как внешние сервисы могут быть интегрированы в функционал 1С.Таким образом, хотя БСП не научит нас создавать веб-сервисы с нуля, она значительно ускорит и упростит разработку логики, связанной с обработкой данных для этих сервисов.
При работе с веб-сервисами, особенно через интернет, безопасность данных является критически важным аспектом. Мы настоятельно рекомендуем использовать протокол HTTPS для шифрования данных, передаваемых между 1С и внешними системами. Платформа 1С:Предприятие постоянно развивается, и в новых версиях (например, 8.3.28) усиливаются меры безопасности за счет добавления новых функций для защиты данных пользователей.
Для отладки веб-сервисов 1С предоставляет встроенные инструменты, которые позволяют нам эффективно выявлять и устранять ошибки. Мы можем отлаживать как веб-сервисы, которые 1С предоставляет (в роли поставщика), так и те, которые 1С потребляет (в роли клиента). Это позволяет нам шаг за шагом проследить выполнение кода, анализировать значения переменных и запросов, что значительно ускоряет процесс разработки и внедрения.
Работа с веб-сервисами в 1С:Предприятии 8.3 — это мощный инструмент для построения интегрированных решений. Надеемся, что этот подробный разбор поможет вам успешно внедрять и использовать веб-сервисы в вашей работе.
← К списку