HTTP-сервисы 1С
Что такое HTTP-сервис
HTTP-сервис — объект метаданных, с помощью которого прикладное решение 1С:Предприятие 8.3 публикует собственный REST-подобный интерфейс. Внешняя система обращается по URL и HTTP-методу; платформа сопоставляет запрос с шаблоном URL и вызывает обработчик на BSL.
Это альтернатива OData (131.md), когда нужен узкий контракт «под задачу», а не универсальный доступ ко всем объектам конфигурации. Web-сервис (SOAP) — отдельный механизм для XML и WSDL — 132.md.
| Критерий | HTTP-сервис | OData |
|---|---|---|
| Настройка | Шаблоны URL + код обработчика | Публикация объектов конфигурации |
| Гибкость контракта | Высокая | Стандартизированная модель ресурсов |
| Типичное применение | Маркетплейс, мобильное приложение, свой микросервис | Витрина данных, отчётность, интеграция «как к таблицам» |
Структура URL
Общий вид адреса:
http://host/base/hs/<КорневойURL>/<относительныйURL>?параметры
| Часть | Значение |
|---|---|
http://host/base | URL публикации информационной базы (как у веб-клиента) |
hs | Обращение к HTTP-сервису (ws — к Web-сервису SOAP) |
<КорневойURL> | Свойство Корневой URL объекта HTTP-сервис (например, orders) |
<относительныйURL> | Совпадает с одним из шаблонов URL сервиса |
Пример: сервис с корневым URL employees и шаблоном /code/{Код}:
https://server.example/erp/hs/employees/code/00001
При разделении данных разделители указывают только в URL базы; параметр Z в query для HTTP-сервисов не поддерживается.
Создание в конфигураторе
- Общие → HTTP-сервисы — новый сервис, задать Корневой URL.
- Шаблоны URL — один или несколько шаблонов.
Символы в шаблоне:
- обычные сегменты пути (
/prices,/date); {ИмяПараметра}— параметризованный сегмент (доступен вЗапрос.ПараметрыURL);*— «хвост» URL (например, отбор в/*);/— разделитель сегментов.
Примеры шаблонов: /list, /item/{Код}, /documents/{id}/props/{PropertyName}/*.
- Для каждого шаблона — объекты Метод с выбором HTTP-метода:
GET,POST,PUT,PATCH,DELETEили Любой. - У метода — обработчик (функция в модуле HTTP-сервиса).
Если URL не сопоставился ни с одним шаблоном и методом, платформа вернёт 404 Not Found.
Обработчик запроса
Сигнатура обработчика:
Функция СписокGET(Запрос) Экспорт
Ответ = Новый HTTPСервисОтвет(200);
// ...
Возврат Ответ;
КонецФункции
Вход: HTTPСервисЗапрос — метод (HTTPМетод), ПараметрыURL, ПараметрыЗапроса (после ?), заголовки, тело (строка или двоичные данные).
Выход: HTTPСервисОтвет — код состояния, заголовки, тело (строка JSON/XML, двоичные данные или файл).
Пример — список с JSON
Функция СписокGET(Запрос) Экспорт
Ответ = Новый HTTPСервисОтвет(200);
Выборка = Справочники.Номенклатура.Выбрать();
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Запись.ЗаписатьНачалоМассива();
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьНачалоОбъекта();
Запись.ЗаписатьИмяСвойства("Код");
Запись.ЗаписатьЗначение(Выборка.Код);
Запись.ЗаписатьИмяСвойства("Наименование");
Запись.ЗаписатьЗначение(Выборка.Наименование);
Запись.ЗаписатьКонецОбъекта();
КонецЦикла;
Запись.ЗаписатьКонецМассива();
Тело = Запись.Закрыть();
Ответ.УстановитьТелоИзСтроки(Тело);
Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Возврат Ответ;
КонецФункции
Подробнее про формирование JSON — 128.md.
Коды ответа в обработчике
| Код | Когда |
|---|---|
| 200 | Успех, тело с данными |
| 204 | Успех без тела (например, DELETE) |
| 400 | Неверные параметры запроса |
| 404 | Объект не найден |
| 500 | Исключение на сервере — лучше логировать и возвращать безопасное сообщение |
Оборачивайте бизнес-логику в Попытка ... Исключение и не отдавайте клиенту внутренний стек — см. 119.md.
Публикация
HTTP-сервис работает только после публикации на веб-сервере (IIS, Apache и др.) через стандартный мастер публикации 1С. Включите флажок публикации HTTP-сервисов и укажите те сервисы, которые должны быть доступны снаружи.
Права: доступ проверяется по пользователю, под которым выполняется сеанс сервиса (Basic, Windows или настройки публикации). Валидируйте входные данные в коде обработчика.
Расширения конфигурации
HTTP-сервисы можно добавлять в расширение без снятия конфигурации с поддержки. Флажок «Публиковать HTTP-сервисы расширений» по умолчанию публикует все сервисы расширения. Чтобы опубликовать только часть, отредактируйте файл default.vrd и удалите лишние записи.
HTTP-сервис и REST
Действие определяется HTTP-методом: GET — чтение, POST — создание или команда, PUT/PATCH — изменение, DELETE — удаление. Соглашения REST соблюдаете вы в коде обработчика — платформа лишь маршрутизирует запрос.
Связанные материалы
- HTTP-запросы из 1С — вызов опубликованного сервиса
- OData в 1С — автоматический REST-интерфейс
- Интеграция — хаб
- HTTP как основа веб-интеграций
Проверка себя
- Из чего складывается URL
.../hs/prices/date/20240101? - Где в обработчике взять значение сегмента
{Код}? - Чем HTTP-сервис отличается от OData в вашем проекте?
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Платформа 1С - архитектура среды исполнения, назначение и место в автоматизации бизнес-процессов. История 1С - развитие платформы, ключевые этапы роста и влияние на цифровизацию бизнеса и госсектора. Экосистема 1С - продукты платформы, инструменты разработки, внедрение и сопровождение корпоративных решений. Архитектура платформы 1С, объекты метаданных, регистры, модули и исполнение прикладного кода. Пошаговое создание учебной конфигурации: справочники, документ, регистры, проведение, подсистемы и роли. Синтаксис и пунктуация 1С - базовые правила записи кода, операторы и структура выражений. Типизация, набор правил определения типа данных значений языка. Управление потоком выполнения в 1С - последовательность операций, ветвления и контроль выполнения сценариев. Функции и процедуры 1С - различия, правила использования и организация переиспользуемой бизнес-логики. Объекты и классы 1С - модель метаданных, экземпляры объектов и работа с прикладными сущностями. Данные — это конкретные записи, созданные пользователями или автоматически системой в рамках определённых объектов. Каждая запись имеет уникальный идентификатор и соответствует описанию в метаданных. Обработка ошибок в 1С - перехват исключений, диагностика сбоев и устойчивые сценарии обработки.Платформа 1С
История 1С
Экосистема 1С
Архитектура и мета-объекты 1С
Конфигурирование — мини-склад
Синтаксис и пунктуация 1С
Переменные и типы данных 1С
Управление потоком выполнения 1С
Функции и процедуры 1С
Объекты и классы 1С
Работа с базами данных 1С
Обработка ошибок 1С