Разработка и Конфигурация · 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 и другие аналитические инструменты.
Сравнение вариантов
Подходят для строгих корпоративных интеграций с формальным контрактом WSDL; сложнее в отладке и требуют больше кода на стороне клиента.
Оптимальны для сайтов, мобильных приложений и быстрых интеграций; гибкий формат ответа, но контракт придётся документировать вручную.
Подходит для чтения данных в аналитику и отчёты без программирования; ограничен стандартными операциями и требует аккуратной настройки прав.
Как работает вызов веб-сервиса: от запроса к ответу
Схема обработки запроса выглядит так: внешняя система отправляет 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. Так реализуются обмены с курьерскими службами, платёжными шлюзами, сервисами проверки контрагентов.
При вызове внешних сервисов всегда задавайте таймаут соединения — по умолчанию ожидание может оказаться слишком долгим, и зависший внешний сервис заблокирует сеанс пользователя или фоновое задание. Обрабатывайте исключения: сеть недоступна, сервер вернул ошибку, ответ не разобрался — каждый случай должен логироваться, а не приводить к падению обработки.
HTTPСоединение = Новый HTTPСоединение("api.example.ru", 443,,,, 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/stock");
Ответ = HTTPСоединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Данные = Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;Безопасность и права доступа
Опубликованный веб-сервис — это открытая точка входа в базу, и её защита критична. Минимальный набор мер: использование HTTPS вместо открытого HTTP, отдельная учётная запись 1С для каждой внешней системы и назначение ей только тех ролей, которые реально нужны для операций сервиса. Никогда не публикуйте сервисы под пользователем с полными правами.
Аутентификация настраивается на уровне веб-сервера и платформы: базовая аутентификация по логину и паролю 1С, аутентификация операционной системы или сертификаты. Для HTTP-сервисов дополнительно применяют токены в заголовках, которые проверяются в коде обработчика. Ограничение по IP-адресам на уровне веб-сервера или межсетевого экрана заметно снижает риск несанкционированного доступа.
Типичные сценарии применения
На практике чаще всего веб-сервисы 1С используются для интеграции с интернет-магазином: сайт запрашивает актуальные цены и остатки, а в ответ на оформление заказа создаёт документ в базе через вызов операции сервиса. Такой обмен заменяет периодические файловые выгрузки и убирает рассинхронизацию данных.
Второй распространённый сценарий — мобильные приложения для сотрудников: торговые представители и курьеры получают списки заданий и отправляют результаты через HTTP-сервисы. Третий — взаимодействие с государственными и банковскими системами, где стандартом остаётся SOAP, а также связка нескольких баз 1С между собой, когда обмен через планы обмена избыточен.
Как проверить работу и найти причину сбоя
Диагностику начинайте с простого: выполните запрос к сервису из браузера или curl с теми же учётными данными, что использует внешняя система. Код ответа сразу сужает круг причин: 401 и 403 указывают на аутентификацию и права, 404 — на публикацию и шаблон URL, 500 — на ошибку в коде обработчика, которую видно в журнале регистрации.
Журнал регистрации — основной инструмент анализа: в нём фиксируются ошибки выполнения обработчиков с именем пользователя и текстом исключения. Для нагрузочных проблем полезен технологический журнал, показывающий длительные вызовы. Если сервис работает медленно, проверьте, не выполняет ли обработчик запросы к большим таблицам без индексов и не создаёт ли он лишние соединения в цикле.
Как проверить результат
Возвращается 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 — они устойчивее к разрывам связи и не держат сеанс открытым.