Открыть сервис

HTTP-сервисы 1С

HTTP-сервисы 1С — это механизм платформы «1С:Предприятие», предназначенный для создания и публикации веб-сервисов, которые обмениваются данными с внешними системами (мобильными приложениями, сайтами, сторонними программами) по протоколу HTTP. Данный механизм позволяет реализовать серверную логику прикладного решения и предоставить к ней доступ в виде RESTful API (интерфейса, следующего принципам архитектуры REST). HTTP-сервисы являются альтернативой более старому механизму веб-сервисов на основе SOAP и ориентированы на современные стандарты веб-разработки.

История и предпосылки появления

До появления HTTP-сервисов в платформе «1С:Предприятие» основным способом интеграции с внешними системами были:

  • COM-соединение — для взаимодействия между приложениями на одном компьютере или в локальной сети.
  • Веб-сервисы (SOAP) — для обмена данными по сети с использованием XML-формата и сложных протоколов.

С ростом популярности REST-архитектуры и упрощённых форматов данных (JSON) возникла потребность в более лёгком и производительном способе интеграции. Механизм HTTP-сервисов был впервые реализован в версии платформы 8.3.6 (выпуск 2015 года). Он позволил разработчикам создавать методы, которые вызываются через обычные HTTP-запросы (GET, POST, PUT, DELETE), и возвращать данные в формате JSON, XML или любом другом текстовом формате.

Архитектура и принцип работы

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

Для работы HTTP-сервисов необходимо опубликовать информационную базу 1С на веб-сервере (Apache, IIS, Nginx). При публикации создаётся файл default.vrd, в котором описываются все HTTP-сервисы, их URL-шаблоны и права доступа. Веб-сервер перенаправляет запросы к этим URL в платформу 1С, где они обрабатываются.

Структура HTTP-сервиса

В конфигураторе 1С HTTP-сервис описывается как объект метаданных, который включает:

  • Корневой URL — базовый путь, по которому доступен сервис (например, /hs/myService).
  • Шаблоны URL — более конкретные пути, которые могут содержать параметры (например, /hs/myService/{id}).
  • Методы — процедуры, написанные на встроенном языке 1С, которые обрабатывают запросы. Каждый метод привязан к определённому HTTP-методу (GET, POST, PUT, DELETE) и шаблону URL.

Обработка запроса

  1. Внешняя система отправляет HTTP-запрос на адрес опубликованного сервиса.
  2. Веб-сервер передаёт запрос платформе 1С.
  3. Платформа определяет, какой HTTP-сервис и какой метод должен обработать запрос, на основе URL и HTTP-метода.
  4. Выполняется код на встроенном языке. В этом коде разработчик может:
  • Прочитать параметры запроса (из URL, заголовков, тела запроса).
  • Выполнить любые действия в базе данных (чтение, запись, вызов отчётов, проведение документов).
  • Сформировать ответ (обычно в формате JSON или XML) и установить HTTP-статус (200 OK, 404 Not Found, 500 Internal Server Error и т.д.).
  1. Ответ возвращается внешней системе.

Классификация и типы

HTTP-сервисы 1С можно классифицировать по нескольким признакам:

По назначению

  • Сервисы для чтения данных — предоставляют данные из базы 1С (справочники, документы, отчёты) без их изменения. Обычно используют метод GET.
  • Сервисы для записи данных — позволяют создавать, изменять или удалять объекты базы данных. Используют методы POST, PUT, DELETE.
  • Сервисы для выполнения бизнес-логики — запускают сложные алгоритмы (например, расчёт себестоимости, проверка остатков, формирование заказов).

По формату обмена

  • JSON-сервисы — наиболее распространённый тип. Данные передаются в лёгком и читаемом формате.
  • XML-сервисы — используются в системах, где требуется строгая структура данных или интеграция с legacy-системами.
  • Сервисы с произвольным форматом — могут возвращать HTML, CSV, изображения или любые бинарные данные.

По уровню доступа

  • Открытые сервисы — доступны без аутентификации (например, для публичных каталогов товаров).
  • Сервисы с базовой аутентификацией — требуют имя пользователя и пароль, передаваемые в заголовке HTTP.
  • Сервисы с OAuth 2.0 — используют токены доступа, что более безопасно и гибко.

Применение

HTTP-сервисы 1С широко используются в различных сценариях интеграции:

Интеграция с веб-сайтами и интернет-магазинами

  • Выгрузка каталога товаров — сайт получает актуальные цены, остатки и описания из 1С по запросу.
  • Приём заказов — заказ, оформленный на сайте, передаётся в 1С через POST-запрос, где создаётся документ «Заказ клиента».
  • Синхронизация статусов — сайт может узнавать статус выполнения заказа (собран, отгружен, оплачен).

Мобильные приложения

  • Мобильные приложения для менеджеров, курьеров или складских работников получают данные из 1С и отправляют обратно (например, отчёт о доставке, фото товара).
  • Используется лёгкий формат JSON, что экономит трафик.

Интеграция с CRM и ERP-системами

  • Обмен данными о клиентах, контрагентах, сделках между 1С и сторонними CRM (например, Bitrix24, AmoCRM).
  • Получение данных из внешних систем (например, загрузка курсов валют, данных о погоде).

Создание API для внешних разработчиков

  • Компании могут предоставлять доступ к данным 1С через задокументированное API, что позволяет сторонним разработчикам создавать собственные решения.

Пример реализации

Рассмотрим простой пример HTTP-сервиса, который возвращает список товаров с остатками.

  1. Создание HTTP-сервиса в конфигураторе: корневой URL — /hs/catalog.
  2. Добавление шаблона URL: /hs/catalog/products (метод GET).
  3. Написание кода метода:

```1c Процедура ПолучитьТовары(Запрос, Ответ) ЗапросSQL = Новый Запрос; ЗапросSQL.Текст = "ВЫБРАТЬ Товары.Ссылка, Товары.Наименование, Остатки.КоличествоОстаток ИЗ Справочник.Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки КАК Остатки ПО Товары.Ссылка = Остатки.Товар"; Результат = ЗапросSQL.Выполнить().Выгрузить();

МассивJSON = Новый Массив; Для Каждого Строка Из Результат Цикл ОбъектJSON = Новый Структура; ОбъектJSON.Вставить("id", Строка.Ссылка.УникальныйИдентификатор()); ОбъектJSON.Вставить("name", Строка.Наименование); ОбъектJSON.Вставить("stock", Строка.КоличествоОстаток); МассивJSON.Добавить(ОбъектJSON); КонецЦикла;

Ответ.УстановитьТелоИзСтроки(ЗаписатьJSON(МассивJSON)); Ответ.УстановитьКодСостояния(200); КонецПроцедуры ```

  1. Публикация базы на веб-сервере.
  2. Тестирование: запрос GET http://server/MyBase/hs/catalog/products` вернёт JSON-массив товаров.

Преимущества и ограничения

Преимущества

  • Простота — не требуется изучения сложных протоколов (SOAP, WSDL).
  • Производительность — лёгкий формат JSON и отсутствие избыточных заголовков.
  • Гибкость — можно реализовать любую бизнес-логику на стороне 1С.
  • Стандартизация — HTTP-сервисы следуют принципам REST, что облегчает интеграцию с современными системами.

Ограничения

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

Критика и альтернативы

Некоторые разработчики критикуют HTTP-сервисы 1С за:

  • Отсутствие встроенной поддержки OAuth 2.0 — требуется реализация вручную.
  • Сложность работы с большими объёмами данных — платформа может потреблять много памяти при сериализации/десериализации.
  • Ограниченную документацию — по сравнению с веб-сервисами SOAP, документация по HTTP-сервисам менее подробна.

Альтернативой HTTP-сервисам может быть использование внешних компонент (например, на C# или Java) для создания высокопроизводительного API, которое обращается к 1С через COM-соединение или прямой обмен через базу данных. Однако для большинства типовых задач интеграции HTTP-сервисы являются оптимальным решением.

Источники

  1. «1С:Предприятие 8.3. Руководство разработчика». — М.: Фирма «1С», 2023.
  2. «HTTP-сервисы (REST) в 1С:Предприятие 8.3» — статья на портале 1С:ИТС.
  3. «Интеграция 1С с внешними системами: практические примеры» — книга А. В. Гончарова, 2021.
  4. «REST API на платформе 1С:Предприятие» — доклад на конференции INFOSTART, 2022.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →