Web-сервисы 1С (SOAP)
Web-сервис и HTTP-сервис
HTTP‑сервис в 1С — это механизм публикации прикладных функций в виде URL‑эндпоинтов, доступных по протоколу HTTP/HTTPS. Он позволяет вызывать серверные процедуры и функции из внешних систем, мобильных приложений и скриптов, передавая параметры в теле запроса или в query‑строке и получая ответ в JSON либо XML. HTTP‑сервисы строятся декларативно: разработчик описывает маршруты, методы (GET, POST и др.), параметры и обработчики, а платформа берёт на себя маршрутизацию, сериализацию и обработку ошибок. Это основной способ «открыть» логику 1С наружу без необходимости прямого доступа к базе.
Web‑сервис в терминологии 1С (часто подразумеваются SOAP‑сервисы) — это интерфейс, соответствующий стандартам веб‑сервисов с WSDL‑описанием и строгой типизацией. В отличие от HTTP‑сервисов, Web‑сервисы ориентированы на корпоративные интеграции с жёсткими контрактами: они используют XML‑сообщения, SOAP‑обёртки и WSDL для автоматической генерации клиентов в других системах. Платформа поддерживает публикацию и вызов таких сервисов, обеспечивая валидацию схем, обработку заголовков и транзакционную целостность. Web‑сервисы удобны, когда партнёры ожидают стандартный SOAP‑интерфейс, а не REST.
На платформе 8.3 два механизма "веб-сервисов" в широком смысле:
| Web-сервис (SOAP) | HTTP-сервис (REST) | |
|---|---|---|
| Протокол | SOAP, XML, WSDL | HTTP + JSON/XML |
| URL | .../ws/<ИмяСервиса> | .../hs/<КорневойURL>/... |
| Контракт | Операции + XDTO-пакеты | Шаблоны URL + BSL |
| Типичный контрагент | Банк, гос. шлюз, legacy ERP | Маркетплейс, мобильное приложение |
SOAP (Simple Object Access Protocol) в контексте 1С — это протокол обмена структурированными сообщениями, преимущественно в формате XML, который применяется для вызова удалённых процедур и взаимодействия приложений. В экосистеме 1С он служит основой для построения веб‑сервисов, где запрос и ответ строго типизированы, а передача данных сопровождается формализованной обёрткой сообщения, включающей заголовки и тело; при этом в ответе может присутствовать элемент Fault, фиксирующий ошибку выполнения — он содержит сведения о природе сбоя и позволяет клиенту корректно обработать исключительную ситуацию.
REST (Representational State Transfer) в 1С трактуется как архитектурный стиль построения распределённых систем, ориентированный на ресурсно‑ориентированный подход: каждый ресурс адресуется через URI, а операции над ним выражаются стандартными HTTP‑методами (GET, POST, PUT, DELETE). В платформе 1С такой стиль реализуется через HTTP‑сервисы, где логика обработки привязывается к URL‑маршрутам, а обмен данными чаще всего ведётся в JSON или XML; REST‑подход здесь ценят за простоту интеграции и хорошую совместимость с современными веб‑технологиями.
Протокол в общем смысле — это набор правил и форматов, определяющих, как приложения устанавливают соединение, передают и принимают данные, а также как обрабатывают ошибки и завершают сеанс. В 1С протоколы задают «язык взаимодействия» между компонентами системы: например, HTTP/HTTPS для веб‑сервисов и HTTP‑сервисов, SOAP для строго типизированных вызовов, FTP для файлового обмена, а также внутренние транспортные механизмы кластера серверов 1С.
URL (Uniform Resource Locator) — это адрес ресурса в сети, который однозначно указывает, где и как получить доступ к определённому сервису, странице или файлу. В 1С URL играет ключевую роль при обращении к HTTP‑сервисам и веб‑сервисам: он задаёт хост, порт, путь к сервису и, при необходимости, параметры запроса; корректное формирование URL определяет, будет ли запрос маршрутизирован к нужному обработчику в информационной базе или в кластере серверов.
Контракт в интеграционных сценариях 1С понимается как формальное описание правил взаимодействия между системами: он фиксирует, какие операции доступны, какие данные ожидаются на входе и что возвращается на выходе, а также какие ошибки могут возникнуть и как они кодируются. В SOAP‑сервисах контракт выражается через WSDL и схемы XSD, в REST‑сервисах — через документацию маршрутов, форматов JSON/XML и кодов состояния HTTP; в прикладном решении 1С контракт обеспечивает предсказуемость поведения сервиса и упрощает разработку клиентов.
WSDL (Web Services Description Language) — это XML‑документ, описывающий интерфейс SOAP‑веб‑сервиса: в нём перечислены доступные операции, типы входных и выходных параметров, привязки к протоколам и адреса точек доступа. В 1С WSDL используется для публикации и потребления веб‑сервисов: на его основе платформа генерирует клиентские прокси‑объекты, а внешние системы получают исчерпывающее описание сервиса для интеграции; WSDL тесно связан с XDTO‑схемами, которые задают структуру типов данных.
Теория SOAP — Протокол SOAP. Здесь — реализация в 1С.
Роли
Кластер в 1С — это группа серверов, объединённых для совместной работы с информационными базами, обеспечивающая масштабируемость, отказоустойчивость и балансировку нагрузки. В кластере выделяются центральный сервер, рабочие процессы, менеджеры кластера и сервисы лицензирования; управление кластером позволяет распределять сеансы пользователей, изолировать ресурсоёмкие задачи и обеспечивать непрерывность работы даже при выходе отдельных узлов из строя.
Файловая база в 1С — это вариант хранения данных информационной базы, при котором все объекты и метаданные располагаются в одном файле (или наборе файлов) на диске, а доступ к ним осуществляется напрямую без использования СУБД. Такой режим удобен для небольших команд, разработки и тестирования, поскольку не требует установки и администрирования отдельной системы управления базами данных; вместе с тем файловая база имеет ограничения по параллелизму и масштабируемости, а также требует аккуратного управления блокировками и резервным копированием.
WS‑ссылка в 1С — это объект конфигурации, который описывает внешний веб‑сервис и позволяет вызывать его операции из встроенного языка как обычные методы. На основе WS‑ссылки платформа автоматически формирует клиентский код, сериализует параметры в XML согласно WSDL и XDTO‑схемам, отправляет запрос по протоколу SOAP и десериализует ответ; WS‑ссылка упрощает интеграцию с внешними сервисами, скрывая низкоуровневые детали сетевого взаимодействия.
Динамическое подключение через встроенный язык в 1С даёт возможность обращаться к внешним сервисам без предварительного описания в метаданных: это реализуется через объекты, работающие с HTTP‑запросами, или через программную работу с веб‑сервисами, когда WSDL загружается и обрабатывается во время выполнения. Такой подход востребован, когда адрес сервиса или его структура могут меняться, либо когда интеграция носит эпизодический характер; при этом разработчик берёт на себя ответственность за валидацию форматов и обработку ошибок, поскольку автоматическая генерация прокси отсутствует.
Поставщик — объект метаданных Web-сервис в конфигурации, модуль с операциями, публикация на веб-сервере. Запрос идёт через модуль расширения веб-сервера; код выполняется в кластере (клиент-сервер) или в расширении (файловая база).
Потребитель — обращение к чужому WSDL:
- WS-ссылка в конфигурации (статическая);
- динамическое подключение через встроенный язык.
При вызове стороннего сервиса клиентское приложение 1С выполняет операцию и обрабатывает ответ.
URL публикации
http://host/base/ws/<ИмяWebСервиса>
http://host/base/ws/<АдресWebСервиса>
| Часть | Значение |
|---|---|
ws | Обращение к Web-сервису (hs — к HTTP-сервису) |
<ИмяWebСервиса> | Имя объекта метаданных |
<АдресWebСервиса> | Свойство Имя файла публикации (можно изменить при публикации) |
Оба варианта адреса равносильны. При разделении данных разделители — только в URL базы.
Создание Web-сервиса
- Общие → Web-сервисы — новый сервис.
- Свойства:
- URI пространства имён — идентификация в WSDL;
- Пакеты XDTO — типы параметров и возвращаемых значений;
- Имя файла публикации — альтернативный сегмент URL.
- Операции — имя, тип возврата (XDTO), параметры (Входной / Выходной / Входной-выходной).
- Модуль Web-сервиса — процедуры операций; сигнатуры согласованы с XDTO.
Типы параметров — значения XDTO или объекты XDTO из пакетов конфигурации. Подробнее — XML и XDTO в интеграции 1С.
- Администрирование → Публикация на веб-сервере — включить нужные Web-сервисы.
Web-сервисы можно добавлять в расширениях; для выборочной публикации правят default.vrd, как у HTTP-сервисов.
URI пространства имён — это уникальный идентификатор, используемый в XML‑документах и XDTO‑схемах для однозначного определения типов и элементов, исключая конфликты имён при обмене данными. В 1С URI пространства имён задаётся при описании XDTO‑пакетов и веб‑сервисов; он гарантирует, что типы с одинаковыми именами, но из разных контекстов, будут восприниматься как разные сущности, что особенно важно при интеграции с разнородными системами и при публикации сервисов с широкой аудиторией.
Сегмент URL — это часть адреса, разделённая символом «/», которая несёт смысловую нагрузку при маршрутизации запроса. В HTTP‑сервисах 1С сегменты URL используются для привязки обработчиков к конкретным ресурсам и операциям: например, сегмент может кодировать идентификатор объекта, тип действия или версию API; правильная структура сегментов позволяет строить понятные, предсказуемые и удобные для клиентов маршруты, а также упрощает версионирование и расширение функционала.
XDTO (XML Data Transfer Objects) в 1С — это механизм описания и работы со структурированными данными, предназначенный для обмена информацией в XML‑формате. XDTO‑схемы задают типы, их свойства, ограничения и связи, а платформа предоставляет средства для сериализации объектов в XML и обратного восстановления. В интеграции XDTO обеспечивает строгую типизацию, валидацию и контроль структуры сообщений, а также служит основой для описания контрактов веб‑сервисов и преобразования данных между разными форматами.
default.vrd — это конфигурационный файл, используемый в веб‑публикациях 1С для настройки доступа к информационной базе через веб‑сервер. В нём указываются параметры подключения к ИБ, режимы аутентификации, разрешённые клиенты и другие настройки, определяющие, как внешние запросы будут маршрутизироваться к нужной базе и как будут обрабатываться сеансы. Файл default.vrd играет роль связующего звена между веб‑сервером и кластером 1С, обеспечивая корректную передачу контекста и безопасность доступа.
Вызов из 1С (клиент)
Через WS-ссылку или прокси, сгенерированный по WSDL контрагента. Ошибки SOAP — элемент Fault в ответе; обрабатывайте через Обработка ошибок 1С.
Элемент Fault в ответе SOAP‑сообщения — это стандартный способ сигнализации об ошибке, определённый спецификацией SOAP. В 1С при обработке веб‑сервиса возникновение исключительной ситуации может приводить к формированию ответа с элементом Fault, содержащим код ошибки, её описание и, при необходимости, детали для диагностики. Такой механизм позволяет клиенту отличать бизнес‑ошибки от технических сбоев и реагировать на них соответствующим образом, сохраняя при этом целостность и предсказуемость протокола обмена.
Для новых интеграций чаще выбирают HTTP-сервисы или OData. SOAP остаётся там, где контракт зафиксирован WSDL и требует формальной XSD-схемы.