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

Администрирование · 11 мин

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

Как обратиться к веб-сервису 1С из браузера: публикация HTTP-сервисов и OData, формирование URL, авторизация, проверка ответа, типичные ошибки 401 и 404.

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

Практически любая проверка начинается с простого GET-запроса: вы вводите URL вида https://server/base/hs/api/method или https://server/base/odata/standard.odata/Catalog_Товары, браузер запрашивает логин и пароль пользователя 1С, и в ответ приходит XML, JSON или текст ошибки. Если вместо данных вы видите 404, 401 или 500 — проблема в публикации, правах или шаблоне URL, а не в браузере.

Ниже разобраны: чем отличаются типы сервисов, как опубликовать базу, как сформировать правильный URL, как пройти авторизацию и как проверить, что сервис отвечает корректно.

Какие веб-сервисы 1С можно вызвать из браузера

В платформе 1С:Предприятие есть три механизма доступа извне по веб-протоколам, и не все они подходят для вызова из браузера.

HTTP-сервисы — объекты конфигурации, где разработчик сам задаёт корневой URL, шаблоны URL и шаблоны методов (GET, POST и другие). Это самый гибкий и самый удобный вариант для браузера: GET-метод вызывается простым переходом по ссылке.

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

SOAP web-сервисы — классические сервисы с WSDL-описанием. Из браузера можно только открыть само описание (URL с параметром wsdl), но выполнить операцию через адресную строку нельзя: для вызова нужен SOAP-клиент, формирующий XML-конверт.

Сравнение вариантов доступа

HTTP-сервис

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

OData

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

SOAP-сервис

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

Публикация базы на веб-сервере

Без публикации никакой URL работать не будет. Публикация выполняется из конфигуратора: меню Администрирование → Публикация на веб-сервере. Предварительно на сервере должен быть установлен IIS (Windows) или Apache, а также модуль расширения веб-сервера 1С — он ставится вместе с платформой (компонент «Модули расширения веб-сервера»).

В диалоге публикации укажите имя публикации (оно станет частью URL), каталог и отметьте флажки нужных механизмов: «Публиковать HTTP-сервисы», «Публиковать стандартный интерфейс OData» или «Публиковать Web-сервисы». После нажатия «Опубликовать» платформа создаст в каталоге файл default.vrd — именно он описывает, какие сервисы доступны.

Для OData дополнительно нужно включить механизм в самой базе: в конфигураторе через «Администрирование → Параметры информационной базы» либо программно установить признак использования стандартного интерфейса OData. Без этого запросы к odata/standard.odata будут возвращать ошибку даже при корректной публикации.

Порядок публикации
  1. 1
    Установите веб-сервер (IIS или Apache) и модули расширения веб-сервера 1С
  2. 2
    Откройте конфигуратор под пользователем с правами администратора
  3. 3
    Выберите Администрирование → Публикация на веб-сервере, задайте имя и каталог
  4. 4
    Отметьте флажки публикации HTTP-сервисов и/или OData, нажмите «Опубликовать»
  5. 5
    Перезапустите веб-сервер и проверьте доступность базы по URL в браузере

Формирование URL для обращения к сервису

Структура адреса зависит от типа сервиса. Общий вид: протокол://сервер/имя_публикации/маркер/путь.

Для HTTP-сервиса маркер — hs, далее идёт корневой URL сервиса (задаётся в свойствах объекта в конфигураторе) и шаблон URL метода. Например, если корневой URL — api, а шаблон метода — /goods/{id}, полный адрес будет https://server/trade/hs/api/goods/123. Параметры из шаблона подставляются прямо в путь, дополнительные параметры — через вопросительный знак: ?date=2026-01-01.

Для OData адрес выглядит так: https://server/trade/odata/standard.odata/Catalog_Номенклатура?$format=json. Имя объекта строится по шаблону: тип метаданных на английском (Catalog, Document, InformationRegister), подчёркивание и имя объекта. Параметр $format=json заставляет вернуть JSON вместо XML, а $top и $filter позволяют ограничить выборку.

Для просмотра WSDL SOAP-сервиса: https://server/trade/ws/ИмяСервиса?wsdl — браузер покажет XML-описание операций.

text
https://server/trade/hs/api/ping
https://server/trade/odata/standard.odata/Catalog_Номенклатура?$format=json&$top=5
https://server/trade/ws/Exchange?wsdl

Авторизация при обращении из браузера

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

Браузер использует Basic-аутентификацию: после ввода он кэширует учётные данные и подставляет их автоматически до закрытия. Если нужно обратиться без интерактивного окна (например, из скрипта), логин и пароль передаются в заголовке Authorization или в URL в формате https://user:password@server/... — но последний способ большинство современных браузеров блокирует из соображений безопасности.

У пользователя, под которым выполняется вход, должны быть права: для HTTP-сервиса — право использования на объект HTTP-сервис, для OData — права на чтение (или изменение) соответствующих таблиц. Частая ситуация: сервис отвечает 403 или возвращает пустые данные именно из-за недостатка прав, а не из-за ошибки в URL.

Проверка ответа и диагностика ошибок

Корректный ответ HTTP-сервиса — код 200 и тело в том формате, который вернул обработчик (JSON, XML, текст). Для OData успешный ответ — XML-документ Atom или JSON со структурой {"value": [...]}. Если в ответе видны знакомые данные базы — цепочка «браузер → веб-сервер → 1С» работает полностью.

Ошибки имеют характерные коды. 404 — не найден путь: неверное имя публикации, корневой URL или шаблон; также 404 возникает, если флажок публикации сервиса не установлен. 401 — требуется аутентификация или неверный пароль. 403 — вход выполнен, но прав не хватает. 500 — ошибка в коде обработчика 1С; текст исключения ищите в журнале регистрации базы.

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

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

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

Код ответа во вкладке Network
Норма

200 и тело с ожидаемыми данными

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

401, 403, 404 или 500 — искать причину по коду

Содержимое ответа OData
Норма

JSON/XML со списком записей объекта

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

Пустой массив при точно непустой таблице — проверьте права

Журнал регистрации 1С
Норма

Нет ошибок в момент запроса

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

Записи об ошибках HTTP-сервиса — смотреть текст исключения

Типичные ошибки и ограничения

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

Вторая группа проблем — кириллица и спецсимволы в URL. Имена объектов метаданных в OData пишутся русскими буквами, и браузер кодирует их автоматически, но при копировании ссылки из сторонних источников кодировка может ломаться. Если получаете 404 при визуально правильном адресе — введите URL вручную.

Ещё одно ограничение: из браузера удобно выполнять только GET-запросы. POST, PUT, PATCH и DELETE для записи данных через OData или HTTP-сервис из адресной строки не отправить — понадобится расширение браузера для REST-запросов, curl или скрипт. Также помните, что OData по умолчанию может ограничивать объём выдачи, поэтому для больших таблиц используйте $top и постраничное чтение.

Типичные ошибки
01
Использование имени базы вместо имени публикации — получаете 404 при работающем сервере
02
Вызов OData без включения механизма в параметрах базы — сервис опубликован, но отвечает ошибкой
03
Проверка под администратором, а реальная работа под ограниченным пользователем — у него нет прав, и интеграция падает
04
Попытка вызвать SOAP-операцию через адресную строку — из браузера доступен только просмотр WSDL
05
Публикация без HTTPS при доступе извне — пароль пользователя 1С передаётся открытым текстом

Когда браузера недостаточно

Браузер — инструмент проверки и простого чтения данных. Для реальных интеграций, где нужно отправлять данные в 1С, передавать сложные структуры или работать по расписанию, используют HTTP-клиенты: curl, Postman, скрипты на Python или PowerShell, либо встроенный объект HTTPСоединение в самой 1С для обратных вызовов.

Если требуется вызывать SOAP-сервисы, подойдут SoapUI или генерация прокси-классов по WSDL в используемом языке программирования. А для массового обмена данными вместо ручных запросов лучше рассмотреть штатные планы обмена или очереди сообщений — они надёжнее при сбоях сети.

Итог

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

Из браузера к 1С обращаются через HTTP-сервисы (URL вида /hs/корень/шаблон) и OData (/odata/standard.odata/Объект) после публикации базы на веб-сервере. Авторизация — под пользователем 1С с нужными правами; коды 401/403/404/500 точно указывают на причину сбоя. Для записи данных и SOAP-вызовов браузера недостаточно — нужен HTTP-клиент.

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

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

Нет. Тонкий и толстый клиенты работают напрямую с сервером 1С или файловой базой, но браузеру нужен HTTP-интерфейс, который создаётся только публикацией через IIS или Apache. Альтернатива — веб-клиент 1С, но это доступ к интерфейсу базы, а не к сервисам.

Почему браузер постоянно запрашивает логин и пароль?

Так работает Basic-аутентификация: браузер запрашивает данные один раз и дальше подставляет их сам. Если окно появляется на каждый запрос, возможно, сервер отвечает 401 из-за неверного пароля, либо запросы идут на разные пути с разными областями аутентификации. Проверьте учётные данные и не смешивайте http и https.

Как получить данные OData в формате JSON вместо XML?

Добавьте в URL параметр $format=json, например: .../odata/standard.odata/Catalog_Контрагенты?$format=json. Без него платформа по умолчанию возвращает Atom/XML, который в браузере выглядит как малочитаемый документ.

Что делать, если HTTP-сервис возвращает 500?

Код 500 означает исключение в коде обработчика на стороне 1С. Откройте журнал регистрации базы (Конфигуратор → Администрирование → Журнал регистрации), отфильтруйте по моменту запроса и найдите текст ошибки. Чаще всего это обращение к несуществующему параметру шаблона или ошибка в запросе к данным.

Безопасно ли открывать веб-сервисы 1С в интернет?

Только при соблюдении минимальных мер: обязательный HTTPS, отдельный пользователь с минимальными правами, сложный пароль, желательно ограничение по IP или размещение за reverse proxy. Публиковать базу с OData «как есть» в открытый интернет небезопасно — через неё можно читать все объекты, на которые у пользователя есть права.

Можно ли вызвать из браузера произвольную функцию конфигурации?

Напрямую — нет. Нужно создать в конфигураторе HTTP-сервис с шаблоном URL и в обработчике вызвать требуемую функцию, вернув результат в HTTPСервисОтвет. Это стандартный и контролируемый способ открыть наружу отдельные операции, не раскрывая всю базу.