К статье
Практический материал

Разработка и Конфигурация · 12 мин

Что такое веб-сервисы 1С и как их использовать

Что такое веб-сервисы 1С простыми словами: SOAP и HTTP-сервисы, публикация на веб-сервере, настройка, типичные ошибки и безопасная интеграция с внешними системами.

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

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

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

Какие виды веб-сервисов поддерживает платформа 1С

Платформа предлагает два основных типа сервисов, которые можно создать в ветке «Общие» дерева конфигурации. Первый — классические веб-сервисы (Web-сервисы), работающие по протоколу SOAP. Они описываются файлом WSDL, строго типизированы и подходят для интеграции с системами, где требуется формальный контракт: банковскими приложениями, ERP, корпоративными шинами данных.

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

Кроме того, типовые конфигурации включают автоматический интерфейс OData — он публикует данные базы без написания кода и позволяет выполнять запросы к справочникам и документам прямо через URL. Это удобно для выгрузок в Excel, Power BI и другие аналитические инструменты.

Сравнение вариантов

SOAP-веб-сервисы

Подходят для строгих корпоративных интеграций с формальным контрактом WSDL; сложнее в отладке и требуют больше кода на стороне клиента.

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

Оптимальны для сайтов, мобильных приложений и быстрых интеграций; гибкий формат ответа, но контракт придётся документировать вручную.

OData-интерфейс

Подходит для чтения данных в аналитику и отчёты без программирования; ограничен стандартными операциями и требует аккуратной настройки прав.

Как работает вызов веб-сервиса: от запроса к ответу

Схема обработки запроса выглядит так: внешняя система отправляет HTTP-запрос на адрес веб-сервера, тот передаёт его расширению веб-сервера 1С, которое обращается к серверу 1С:Предприятия или к файловой базе. Внутри базы выполняется код операции или шаблона URL, написанный на встроенном языке, и результат возвращается вызывающей стороне.

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

Каждый вызов выполняется в контексте сеанса конкретного пользователя 1С с его правами. Если у пользователя, под которым приходит запрос, нет прав на чтение справочника, сервис вернёт ошибку доступа — это встроенный механизм защиты, который нельзя отключить «для удобства» без последствий.

Как создать и опубликовать веб-сервис в 1С

Создание начинается в конфигураторе: в ветке «Общие → Web-сервисы» (или «HTTP-сервисы») добавляется новый объект, в котором описываются операции, параметры и обработчики на встроенном языке. Для HTTP-сервиса задаётся шаблон URL — например, /hs/orders/get — и метод (GET, POST), а в модуле пишется функция, формирующая ответ.

После обновления конфигурации базы данных сервис нужно опубликовать. В конфигураторе выбирается пункт «Администрирование → Публикация на веб-сервере», указывается имя публикации, каталог и отмечаются флажки публикации веб-сервисов или HTTP-сервисов. На веб-сервере должно быть установлено расширение веб-сервера 1С, а пул приложений — работать с той же разрядностью, что и компоненты платформы.

Проверка выполняется простым запросом: для SOAP-сервиса открывается адрес вида http://сервер/база/ws/ИмяСервиса?wsdl — если в ответ приходит XML-описание, публикация работает. Для HTTP-сервиса выполняется тестовый GET-запрос к шаблону URL. Ошибка 404 обычно означает, что публикация не выполнена или сервис не отмечен флажком, ошибка 401 — проблему с аутентификацией.

Как 1С обращается к внешним веб-сервисам

Обратное направление — вызов чужих сервисов из кода 1С. Для SOAP-сервисов используются WS-ссылки: в конфигурацию добавляется ссылка на WSDL-описание, и платформа автоматически создаёт прокси-объект, через который вызываются операции удалённого сервиса как обычные методы. Альтернатива — динамическое создание WS-прокси прямо в коде без изменения конфигурации.

Для REST-сервисов применяется объект HTTPСоединение и HTTPЗапрос: код формирует запрос с заголовками и телом, отправляет его методом GET или POST и разбирает ответ, например через ПрочитатьJSON. Так реализуются обмены с курьерскими службами, платёжными шлюзами, сервисами проверки контрагентов.

При вызове внешних сервисов всегда задавайте таймаут соединения — по умолчанию ожидание может оказаться слишком долгим, и зависший внешний сервис заблокирует сеанс пользователя или фоновое задание. Обрабатывайте исключения: сеть недоступна, сервер вернул ошибку, ответ не разобрался — каждый случай должен логироваться, а не приводить к падению обработки.

bsl
HTTPСоединение = Новый HTTPСоединение("api.example.ru", 443,,,, 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/stock");
Ответ = HTTPСоединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    Данные = Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;

Безопасность и права доступа

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

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

Типичные сценарии применения

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

Второй распространённый сценарий — мобильные приложения для сотрудников: торговые представители и курьеры получают списки заданий и отправляют результаты через HTTP-сервисы. Третий — взаимодействие с государственными и банковскими системами, где стандартом остаётся SOAP, а также связка нескольких баз 1С между собой, когда обмен через планы обмена избыточен.

Типичные ошибки
01
Публикация сервиса под пользователем с полными правами — компрометация одного пароля открывает всю базу.
02
Отсутствие таймаутов при вызове внешних сервисов — зависший ответ блокирует сеансы и фоновые задания.
03
Возврат внутренних ошибок 1С наружу без обработки — в тексте исключения могут быть сведения о структуре базы.
04
Выполнение тяжёлых запросов прямо в обработчике сервиса — под нагрузкой база начинает тормозить для всех пользователей.
05
Отсутствие логирования вызовов — при сбое невозможно понять, какой запрос пришёл и где произошла ошибка.

Как проверить работу и найти причину сбоя

Диагностику начинайте с простого: выполните запрос к сервису из браузера или curl с теми же учётными данными, что использует внешняя система. Код ответа сразу сужает круг причин: 401 и 403 указывают на аутентификацию и права, 404 — на публикацию и шаблон URL, 500 — на ошибку в коде обработчика, которую видно в журнале регистрации.

Журнал регистрации — основной инструмент анализа: в нём фиксируются ошибки выполнения обработчиков с именем пользователя и текстом исключения. Для нагрузочных проблем полезен технологический журнал, показывающий длительные вызовы. Если сервис работает медленно, проверьте, не выполняет ли обработчик запросы к большим таблицам без индексов и не создаёт ли он лишние соединения в цикле.

Контрольные точки

Как проверить результат

Запрос WSDL или тестовый URL сервиса
Норма

Возвращается XML-описание или корректный JSON с кодом 200

Тревожный признак

404 — сервис не опубликован, 401/403 — проблема с доступом

Права пользователя интеграции
Норма

Пользователь видит только нужные объекты, операции выполняются без ошибок доступа

Тревожный признак

Ошибки «Нарушение прав доступа» в журнале регистрации

Время ответа сервиса
Норма

Ответ приходит за секунды, нагрузка на сервер не растёт

Тревожный признак

Длительные вызовы в технологическом журнале, рост числа зависших сеансов

Ограничения и альтернативы

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

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

Итог

Что важно запомнить

Веб-сервисы 1С — это стандартный способ интеграции базы с внешними системами через HTTP: SOAP для строгих корпоративных обменов, HTTP-сервисы для сайтов и мобильных приложений. Публикация требует веб-сервера с расширением 1С, обязательной отдельной учётной записи с минимальными правами и HTTPS. Для массовых и длительных обменов выбирайте асинхронные механизмы.

Частые вопросы

Чем HTTP-сервис отличается от веб-сервиса SOAP в 1С?

SOAP-сервис работает по формальному контракту WSDL с жёсткой типизацией и подходит для корпоративных систем, а HTTP-сервис принимает произвольные запросы к шаблону URL и возвращает данные в любом формате, обычно JSON. Для новых интеграций с сайтами и мобильными приложениями чаще выбирают HTTP-сервисы — они проще в разработке и отладке.

Можно ли опубликовать веб-сервис без веб-сервера?

Нет, для приёма входящих HTTP-запросов обязательно нужен веб-сервер (IIS или Apache) с установленным расширением веб-сервера 1С. Без него база не может принимать внешние вызовы. Вызывать чужие сервисы из кода 1С веб-сервер не требуется.

Расходуется ли лицензия 1С при вызове веб-сервиса?

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

Как защитить опубликованный веб-сервис?

Используйте HTTPS, заведите отдельного пользователя 1С с минимально необходимыми правами для каждой внешней системы, по возможности ограничьте доступ по IP-адресам на веб-сервере и не возвращайте наружу внутренние тексты ошибок. Для HTTP-сервисов дополнительно применяйте проверку токена в заголовке запроса.

Почему запрос к сервису возвращает ошибку 404?

Чаще всего сервис не опубликован или при публикации не отмечен нужный флажок, либо неверно указан шаблон URL или имя базы в адресе. Проверьте публикацию в конфигураторе, файл default.vrd в каталоге публикации и точный адрес запроса, включая регистр символов.

Что выбрать для обмена между двумя базами 1С?

Для разовых оперативных запросов между базами подойдут HTTP-сервисы. Если нужен регулярный обмен большими объёмами данных с гарантией доставки, надёжнее использовать планы обмена или формат EnterpriseData — они устойчивее к разрывам связи и не держат сеанс открытым.