Перейти к основному содержимому

HTTP-запросы из 1С

Разработчику Архитектору

Когда 1С выступает клиентом

Прикладное решение обращается к внешнему HTTP API — банк, маркетплейс, сайт, другой экземпляр 1С через HTTP-сервис или OData. На стороне BSL используют три объекта:

ОбъектРоль
HTTPСоединениеСессия с хостом, таймаут, прокси, HTTPS
HTTPЗапросМетод, путь, заголовки, тело
HTTPОтветКодСостояния, заголовки, тело

Код размещают на сервере (общий модуль, фоновое или регламентное задание). Длительный запрос из модуля формы блокирует интерфейс пользователя.

Внешний HTTP API в экосистеме 1С — это интерфейс прикладного решения, предоставляемый через HTTP‑протокол для взаимодействия со сторонними системами: он позволяет внешним клиентам запрашивать данные, запускать операции или передавать информацию, не требуя прямого доступа к информационной базе. Такой API реализуется средствами HTTP‑сервисов платформы, где разработчик описывает маршруты, обработчики и правила преобразования объектов 1С в JSON/XML и обратно; внешний HTTP API востребован при интеграции с интернет‑магазинами, мобильными приложениями, корпоративными порталами и любыми системами, которым нужен стандартизированный сетевой доступ к функционалу 1С.

Другой экземпляр 1С — это отдельная установка платформы или отдельная информационная база, функционирующая независимо от текущей: это может быть тестовая база, продуктивная база на другом сервере, база филиала либо отдельный кластер. Взаимодействие с другим экземпляром 1С требуется при синхронизации данных, репликации изменений, распределённой обработке или консолидации отчётности; обмен между экземплярами реализуется через механизмы РИБ, планы обмена, файловые каталоги, веб‑сервисы или прямое подключение, при этом важно согласовывать версии платформы, форматы сообщений и правила разрешения конфликтов.

HTTPСоединение в 1С — это объект встроенного языка, инкапсулирующий параметры сетевого подключения к удалённому HTTP‑серверу: в нём задаются адрес хоста, порт, таймауты, настройки прокси, а также параметры безопасности (в том числе использование защищённого протокола и клиентских сертификатов). Через HTTPСоединение платформа управляет жизненным циклом соединения, повторными попытками, пулами и корректным освобождением ресурсов; этот объект служит основой для отправки запросов и получения ответов при интеграции с внешними API и сервисами.

HTTPЗапрос в 1С — это объект, описывающий исходящее HTTP‑сообщение: он содержит метод (GET, POST и др.), URL, заголовки, куки, параметры и тело запроса в виде потока или строки. В коде разработчик формирует HTTPЗапрос, задаёт нужные заголовки (Content‑Type, Authorization и т. п.) и передаёт его через HTTPСоединение для отправки на сервер; объект позволяет гибко управлять структурой запроса, включая передачу файлов, JSON‑полезной нагрузки и бинарных данных.

HTTPОтвет в 1С — это объект, возвращаемый после выполнения HTTP‑запроса и содержащий результат обращения к удалённому сервису: в нём находятся код состояния, заголовки ответа, тело (текст, JSON, XML, бинарные данные) и метаданные о выполнении. Платформа предоставляет удобные методы для чтения содержимого ответа, проверки кодов состояния и обработки ошибок; HTTPОтвет используется для интерпретации результата вызова внешнего API, извлечения данных и принятия решений о дальнейших действиях в бизнес‑логике.


Базовый GET-запрос

GET‑запрос в 1С трактуется как стандартный HTTP‑метод для получения ресурса без изменения состояния на стороне сервера: он применяется для выборки данных через REST‑интерфейсы, OData, HTTP‑сервисы и внешние API. В платформе GET‑запросы формируются через объекты HTTPЗапрос с соответствующим методом, а параметры фильтрации и выборки передаются в строке запроса; GET‑запросы кэшируются и считаются безопасными операциями, поэтому их используют для отчётов, справочников, списков и любых сценариев «только чтение».

Код ITЗагрузка примера кода…

Разбор JSON — JSON в интеграции 1С. Обработка сбоев и повторов — Обработка ошибок 1С.


Методы 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 и аутентификация

Аутентификация в контексте HTTP‑интеграций 1С — это процедура подтверждения прав клиента на доступ к защищённому ресурсу: она может реализовываться через Basic‑аутентификацию, токены (API‑ключи, JWT), OAuth, клиентские сертификаты либо встроенную аутентификацию платформы. В 1С аутентификация настраивается как на стороне вызывающего кода (передача заголовков, токенов, сертификатов), так и на стороне сервиса (проверка учётных данных, валидация токенов, сопоставление с пользователями ИБ); корректная аутентификация гарантирует, что доступ к данным и операциям получают только авторизованные потребители.

Для HTTPS в конструктор HTTPСоединение передают защищённое соединение и при необходимости клиентский сертификат. Доверенные корневые сертификаты настраивают в администрировании кластера серверов 1С.

Типичные заголовки:

  • Authorization: Basic ... или Bearer <token> — доступ к API;
  • Accept / Content-Type — формат JSON или XML;
  • пользовательские заголовки контрагента (идempotency-key, trace-id).

Секреты хранят в защищённом хранилище или константах с ограничением роли, а не в коде модуля формы.

Защищённое соединение в 1С — это канал передачи данных, шифруемый по протоколам TLS/SSL, чтобы исключить перехват и модификацию трафика между клиентом и сервером. В интеграциях защищённое соединение обеспечивается использованием HTTPS вместо HTTP, настройкой сертификатов сервера и, при необходимости, проверкой цепочки доверия; платформа поддерживает работу с современными версиями TLS, проверку сертификатов и отключение устаревших шифров, что соответствует требованиям информационной безопасности при обмене конфиденциальными данными.

Клиентский сертификат в 1С применяется как средство взаимной аутентификации: сервер проверяет подлинность клиента по предоставленному сертификату, а клиент — сертификат сервера. В платформе клиентский сертификат подключается через настройки HTTPСоединения либо через параметры безопасности, а его использование востребовано в сценариях с повышенными требованиями к безопасности — например, при интеграции с банковскими шлюзами, государственными сервисами или корпоративными API; такой подход повышает доверие к клиенту и позволяет разграничивать доступ на уровне сертификатов.

Администрирование кластера в 1С — это комплекс мероприятий по управлению группой серверов, обеспечивающих работу информационных баз: оно включает настройку топологии, распределение рабочих процессов, балансировку нагрузки, мониторинг сеансов, управление лицензиями и резервное копирование. Администратор кластера использует консоль администрирования и программные интерфейсы для контроля производительности, выявления узких мест, перезапуска служб и обеспечения отказоустойчивости; грамотное администрирование кластера критично для стабильной работы высоконагруженных систем и соблюдения SLA.

Секреты в интеграционных сценариях 1С — это конфиденциальные данные, необходимые для доступа к внешним сервисам: пароли, API‑ключи, токены, строки подключения, сертификаты и иные учётные данные. В платформе секреты не хранят в открытом виде в коде: их размещают в безопасных хранилищах, параметрах информационной базы, внешних файлах с ограниченным доступом либо в специализированных менеджерах секретов, а в коде используют косвенные ссылки и механизмы безопасного извлечения; управление секретами — ключевой элемент защиты интеграций и предотвращения утечек учётных данных.


Коды состояния и перенаправления

Коды состояния и перенаправления — это числовые значения, возвращаемые HTTP‑сервером для индикации результата обработки запроса: например, 200 означает успех, 404 — ресурс не найден, 500 — ошибка сервера, а коды 3xx сигнализируют о перенаправлении на другой URL. В 1С при работе с HTTPСоединение и HTTPОтвет разработчик анализирует коды состояния для принятия решений: повторить запрос, обработать ошибку, перейти по ссылке перенаправления или уведомить пользователя; правильная обработка кодов состояния делает интеграцию устойчивой к временным сбоям и изменениям конфигурации сервисов.

Проверяйте Ответ.КодСостояния:

ДиапазонСмысл
2xxУспех
3xxПеренаправление — часто 302 с заголовком Location
4xxОшибка клиента (неверный URL, авторизация)
5xxОшибка сервера — имеет смысл повтор с задержкой

При 302 прочитайте Ответ.Заголовки.Получить("Location") и выполните запрос по новому адресу (с ограничением числа редиректов, чтобы избежать цикла).


Вызов своего HTTP-сервиса 1С

Вызов своего HTTP‑сервиса 1С — это обращение к функционалу, опубликованному внутри той же платформы через HTTP‑сервис: такой вызов может выполняться из другой базы, из внешней системы либо из кода текущей базы для разделения логики и повторного использования. В 1С вызов реализуется через стандартные объекты HTTPСоединение и HTTPЗапрос, а сервис обрабатывает запрос в контексте информационной базы, применяя права доступа, транзакции и бизнес‑правила; собственные HTTP‑сервисы позволяют строить модульную архитектуру, выносить общие операции в единый интерфейс и упрощать интеграцию с разнородными потребителями.

Если сервис опубликован по адресу 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 в 1С передаются как часть запроса или ответа: это может быть загрузка файлов в базу, выгрузка отчётов, обмен документами либо передача бинарных вложений. В платформе для работы с файлами используются потоковые объекты, многокомпонентные запросы (multipart/form‑data), а также механизмы чтения/записи двоичных данных; HTTP‑сервисы могут принимать файлы как тело запроса либо как отдельные части multipart, а в ответе возвращать файлы с корректными заголовками Content‑Type и Content‑Disposition; такой подход востребован в сценариях обмена первичными документами, выгрузки прайс‑листов, загрузки сканов и любых операций, где требуется передача не только структурированных данных, но и файлов.

HTTPСоединение умеет получить, записать и удалить файл по URL без ручной сборки тела — удобно для простых интеграций с файловыми endpoint.


Эксплуатация

  • Задайте таймаут (6-й параметр конструктора) — иначе зависший контрагент блокирует рабочий процесс.
  • Логируйте URL (без паролей), код ответа и фрагмент тела при ошибке — журнал регистрации или регистр сведений обмена.
  • Тестируйте на копии базы и тестовых ключах API.
  • Для идемпотентности повторной отправки используйте ключ обмена — см. Интеграция и взаимодействие 1С.
Сервер Linux

COM и клиентские компоненты Windows для HTTP здесь не при чём, но помните — код интеграции должен выполняться там, где есть сеть и сертификаты — обычно на сервере 1С, а не на тонком клиенте пользователя.


Связанные материалы