HTTP-запросы из 1С
Когда 1С выступает клиентом
Прикладное решение обращается к внешнему HTTP API — банк, маркетплейс, сайт, другой экземпляр 1С через HTTP-сервис или OData. На стороне BSL используют три объекта:
| Объект | Роль |
|---|---|
HTTPСоединение | Сессия с хостом, таймаут, прокси, HTTPS |
HTTPЗапрос | Метод, путь, заголовки, тело |
HTTPОтвет | КодСостояния, заголовки, тело |
Код размещают на сервере (общий модуль, фоновое или регламентное задание). Длительный запрос из модуля формы блокирует интерфейс пользователя.
Базовый GET-запрос
Функция ПолучитьJSON(Сервер, Порт, Путь, ТаймаутСек = 30) Экспорт
Соединение = Новый HTTPСоединение(Сервер, Порт, , , , ТаймаутСек);
Запрос = Новый HTTPЗапрос(Путь);
Запрос.Заголовки.Вставить("Accept", "application/json");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния >= 300 Тогда
ВызватьИсключение "HTTP " + Ответ.КодСостояния + ": " + Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Возврат ПрочитатьJSON(Чтение);
КонецФункции
Разбор JSON — 128.md. Обработка сбоев и повторов — 119.md.
Методы HTTPСоединение
| HTTP-метод | Метод 1С | Назначение |
|---|---|---|
| GET | Получить(Запрос) | Чтение ресурса |
| POST | ОтправитьДляОбработки(Запрос) | Создание, команда, тело в запросе |
| PUT | Записать(Запрос) | Полная замена ресурса (OData) |
| PATCH | Изменить(Запрос) | Частичное обновление (OData) |
| DELETE | Удалить(Запрос) | Удаление |
Для POST с JSON-телом:
Запрос = Новый HTTPЗапрос("/api/v1/orders");
Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Запрос.УстановитьТелоИзСтроки(ТелоJSON, КодировкаТекста.UTF8);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
HTTPS и аутентификация
Для HTTPS в конструктор HTTPСоединение передают защищённое соединение и при необходимости клиентский сертификат. Доверенные корневые сертификаты настраивают в администрировании кластера серверов 1С.
Типичные заголовки:
Authorization: Basic ...илиBearer <token>— доступ к API;Accept/Content-Type— формат JSON или XML;- пользовательские заголовки контрагента (идempotency-key, trace-id).
Секреты хранят в защищённом хранилище или константах с ограничением роли, а не в коде модуля формы.
Коды состояния и перенаправления
Проверяйте Ответ.КодСостояния:
| Диапазон | Смысл |
|---|---|
| 2xx | Успех |
| 3xx | Перенаправление — часто 302 с заголовком Location |
| 4xx | Ошибка клиента (неверный URL, авторизация) |
| 5xx | Ошибка сервера — имеет смысл повтор с задержкой |
При 302 прочитайте Ответ.Заголовки.Получить("Location") и выполните запрос по новому адресу (с ограничением числа редиректов, чтобы избежать цикла).
Вызов своего HTTP-сервиса 1С
Если сервис опубликован по адресу https://host/base/hs/employees/code/001:
Соединение = Новый HTTPСоединение("host", 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/base/hs/employees/code/001");
Запрос.Заголовки.Вставить("Authorization", "Basic " + Base64Строка("user:password"));
Ответ = Соединение.Получить(Запрос);
DELETE к тому же ресурсу — Соединение.Удалить(Запрос) с тем же путём.
Файлы через HTTP
HTTPСоединение умеет получить, записать и удалить файл по URL без ручной сборки тела — удобно для простых интеграций с файловыми endpoint.
Эксплуатация
- Задайте таймаут (6-й параметр конструктора) — иначе зависший контрагент блокирует рабочий процесс.
- Логируйте URL (без паролей), код ответа и фрагмент тела при ошибке — журнал регистрации или регистр сведений обмена.
- Тестируйте на копии базы и тестовых ключах API.
- Для идемпотентности повторной отправки используйте ключ обмена — см. 120.md.
Связанные материалы
- HTTP-сервисы 1С — приём запросов
- OData в 1С — клиент к стандартному REST 1С
- JSON в интеграции 1С
- HTTP как основа веб-интеграций
- Postman и curl
Практика 15 минут
- Выполните GET к публичному JSON API (курс валют, погода).
- Проверьте код 200 и разбор тела через
ПрочитатьJSON. - Сымитируйте ошибку (неверный путь) и зафиксируйте код 404 в журнале.
Проверка себя
- Каким методом
HTTPСоединениеотправить POST с JSON? - Где настраивается таймаут?
- Что делать при ответе 302?
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Платформа 1С - архитектура среды исполнения, назначение и место в автоматизации бизнес-процессов. История 1С - развитие платформы, ключевые этапы роста и влияние на цифровизацию бизнеса и госсектора. Экосистема 1С - продукты платформы, инструменты разработки, внедрение и сопровождение корпоративных решений. Архитектура платформы 1С, объекты метаданных, регистры, модули и исполнение прикладного кода. Пошаговое создание учебной конфигурации: справочники, документ, регистры, проведение, подсистемы и роли. Синтаксис и пунктуация 1С - базовые правила записи кода, операторы и структура выражений. Типизация, набор правил определения типа данных значений языка. Управление потоком выполнения в 1С - последовательность операций, ветвления и контроль выполнения сценариев. Функции и процедуры 1С - различия, правила использования и организация переиспользуемой бизнес-логики. Объекты и классы 1С - модель метаданных, экземпляры объектов и работа с прикладными сущностями. Данные — это конкретные записи, созданные пользователями или автоматически системой в рамках определённых объектов. Каждая запись имеет уникальный идентификатор и соответствует описанию в метаданных. Обработка ошибок в 1С - перехват исключений, диагностика сбоев и устойчивые сценарии обработки.Платформа 1С
История 1С
Экосистема 1С
Архитектура и мета-объекты 1С
Конфигурирование — мини-склад
Синтаксис и пунктуация 1С
Переменные и типы данных 1С
Управление потоком выполнения 1С
Функции и процедуры 1С
Объекты и классы 1С
Работа с базами данных 1С
Обработка ошибок 1С