Администрирование · 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-конверт.
Сравнение вариантов доступа
Подходит для произвольных операций и интеграций; из браузера легко вызываются GET-методы. Требует разработки в конфигураторе.
Подходит для чтения и простой записи данных без программирования. Ограничение — работает только со стандартными объектами, бизнес-логику не вызвать.
Подходит для интеграций с корпоративными системами; из браузера доступен только просмотр WSDL, вызов операций требует специального клиента.
Публикация базы на веб-сервере
Без публикации никакой URL работать не будет. Публикация выполняется из конфигуратора: меню Администрирование → Публикация на веб-сервере. Предварительно на сервере должен быть установлен IIS (Windows) или Apache, а также модуль расширения веб-сервера 1С — он ставится вместе с платформой (компонент «Модули расширения веб-сервера»).
В диалоге публикации укажите имя публикации (оно станет частью URL), каталог и отметьте флажки нужных механизмов: «Публиковать HTTP-сервисы», «Публиковать стандартный интерфейс OData» или «Публиковать Web-сервисы». После нажатия «Опубликовать» платформа создаст в каталоге файл default.vrd — именно он описывает, какие сервисы доступны.
Для OData дополнительно нужно включить механизм в самой базе: в конфигураторе через «Администрирование → Параметры информационной базы» либо программно установить признак использования стандартного интерфейса OData. Без этого запросы к odata/standard.odata будут возвращать ошибку даже при корректной публикации.
- 1Установите веб-сервер (IIS или Apache) и модули расширения веб-сервера 1С
- 2Откройте конфигуратор под пользователем с правами администратора
- 3Выберите Администрирование → Публикация на веб-сервере, задайте имя и каталог
- 4Отметьте флажки публикации HTTP-сервисов и/или OData, нажмите «Опубликовать»
- 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-описание операций.
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): там виден реальный код ответа, заголовки и тело ошибки, которое браузер иногда не отображает на странице.
Как проверить результат
200 и тело с ожидаемыми данными
401, 403, 404 или 500 — искать причину по коду
JSON/XML со списком записей объекта
Пустой массив при точно непустой таблице — проверьте права
Нет ошибок в момент запроса
Записи об ошибках HTTP-сервиса — смотреть текст исключения
Типичные ошибки и ограничения
Самая частая ошибка — обращение к имени базы вместо имени публикации. В URL используется именно имя, заданное при публикации, а оно может отличаться от имени информационной базы в списке запуска 1С.
Вторая группа проблем — кириллица и спецсимволы в URL. Имена объектов метаданных в OData пишутся русскими буквами, и браузер кодирует их автоматически, но при копировании ссылки из сторонних источников кодировка может ломаться. Если получаете 404 при визуально правильном адресе — введите URL вручную.
Ещё одно ограничение: из браузера удобно выполнять только GET-запросы. POST, PUT, PATCH и DELETE для записи данных через OData или HTTP-сервис из адресной строки не отправить — понадобится расширение браузера для REST-запросов, curl или скрипт. Также помните, что OData по умолчанию может ограничивать объём выдачи, поэтому для больших таблиц используйте $top и постраничное чтение.
Когда браузера недостаточно
Браузер — инструмент проверки и простого чтения данных. Для реальных интеграций, где нужно отправлять данные в 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СервисОтвет. Это стандартный и контролируемый способ открыть наружу отдельные операции, не раскрывая всю базу.