К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как подключить API к 1С: практическое руководство

Как подключить API к 1С: выбор способа интеграции, настройка HTTP-запросов, OAuth-авторизация, обработка JSON и проверка результата. Практическое руководство.

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

Перед началом работы нужно получить у поставщика API три вещи: документацию с описанием методов, адрес сервера (базовый URL) и способ авторизации — API-ключ, токен или пару логин/пароль. Без этих данных подключение невозможно в принципе, поэтому начинать следует с личного кабинета сервиса, где обычно генерируются ключи доступа.

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

Выберите способ интеграции под свою задачу

Существует несколько подходов к обмену данными между 1С и внешними сервисами. Выбор зависит от того, кто инициирует обмен, как часто он происходит и какие объёмы данных передаются.

Первый вариант — прямые HTTP-запросы из кода 1С. Подходит, когда 1С сама обращается к внешнему сервису: получает курсы валют, отправляет заказы на маркетплейс, проверяет статус доставки. Это самый распространённый и гибкий способ.

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

Сравнение вариантов

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

Универсальный вариант: 1С сама запрашивает данные. Требует доступа базы к интернету и обработки ошибок сети.

HTTP-сервис в 1С

Внешняя система вызывает 1С. Нужна публикация на веб-сервере и строгая авторизация входящих запросов.

Обмен файлами

Подходит при запрете прямых соединений или отсутствии API. Медленнее, требует контроля доставки файлов.

Подготовьте доступы и проверьте документацию API

Начните с изучения документации сервиса. Обратите внимание на базовый URL, список методов, обязательные заголовки, формат запроса и ответа, ограничения на частоту обращений (лимиты запросов). Пропуск лимитов — частая причина блокировки ключа.

Получите учётные данные в личном кабинете сервиса. Это может быть статический API-ключ, пара логин/пароль для Basic-авторизации или токен, получаемый по протоколу OAuth. Токены OAuth обычно имеют ограниченный срок жизни, поэтому код должен уметь их обновлять.

Перед написанием кода проверьте работу API внешним инструментом — например, отправьте тестовый запрос через Postman или аналогичный клиент. Если запрос работает там, но не работает из 1С, проблема будет в коде или сетевых настройках, а не в самом сервисе.

Выполните HTTP-запрос из кода 1С

Для обращения к API используются объекты HTTPСоединение и HTTPЗапрос. Соединение создаётся с указанием сервера, при необходимости — с параметрами защищённого соединения SSL и прокси. Запрос содержит адрес ресурса, заголовки и тело.

bsl
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("api.example.ru", 443, , , , 30, SSL);
Запрос = Новый HTTPЗапрос("/v1/orders");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;

Код состояния ответа нужно проверять всегда. Значение 200 означает успех, 401 — проблему с авторизацией, 429 — превышение лимита запросов, 5xx — ошибку на стороне сервиса. Не обрабатывая код состояния, вы рискуете принять текст ошибки за данные.

Для запросов с передачей данных (POST, PUT) тело формируется в формате JSON: структура 1С сериализуется через ЗаписьJSON, затем устанавливается методом УстановитьТелоИзСтроки. Учитывайте кодировку — большинство API работают с UTF-8.

Разберите ответ и сохраните данные

Ответ в формате JSON читается объектом ЧтениеJSON с преобразованием в структуру или соответствие. Далее данные сопоставляются с объектами конфигурации: справочниками, документами, регистрами сведений.

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

Порядок действий
  1. 1
    Получите документацию API и ключ доступа в личном кабинете сервиса
  2. 2
    Проверьте запрос во внешнем инструменте (Postman или аналог)
  3. 3
    Создайте в 1С функцию с объектами HTTPСоединение и HTTPЗапрос
  4. 4
    Добавьте авторизацию через заголовок или параметры запроса
  5. 5
    Разберите JSON-ответ через ЧтениеJSON и проверьте код состояния
  6. 6
    Сохраните данные с контролем дублей по внешнему идентификатору
  7. 7
    Настройте регламентное задание и логирование ошибок обмена

Настройте регулярный обмен и обработку ошибок

Разовый запуск подходит для тестирования, но рабочая интеграция обычно требует расписания. Создайте регламентное задание, которое вызывает процедуру обмена с нужной периодичностью. Учитывайте лимиты API: не ставьте интервал чаще, чем разрешает сервис.

Любой сетевой обмен должен переживать сбои. Заключайте вызовы в попытку/исключение, записывайте ошибки в журнал регистрации или отдельный регистр сведений с текстом запроса, кодом ответа и временем. Без логов разбор причин сбоя превращается в гадание.

Полезно предусмотреть повторные попытки для временных ошибок (таймаут, код 429, 5xx) с нарастающей паузой между ними. Ошибки авторизации повторять бессмысленно — сначала нужно обновить токен или проверить ключ.

Проверьте результат и устраните типичные ошибки

После настройки проверьте обмен на тестовых данных: создайте один объект, убедитесь, что он корректно появился в 1С или во внешнем сервисе, затем проверьте повторный запуск на предмет дублей. Только после этого запускайте полную загрузку.

Контрольные точки

Как проверить результат

Код ответа API
Норма

200 или другой успешный код по документации

Тревожный признак

401, 403, 429 или 5xx — читайте текст ошибки в теле ответа

Записанные данные
Норма

Объект создан один раз, поля заполнены корректно

Тревожный признак

Дубли при повторном запуске или пустые обязательные поля

Журнал обмена
Норма

Записи об успешных вызовах с датой и объёмом данных

Тревожный признак

Пустой журнал при работающем расписании или массовые ошибки

Типичные ошибки
01
Игнорирование кода состояния ответа — текст ошибки записывается в базу как данные
02
Отсутствие контроля дублей — каждый запуск создаёт новые элементы справочника
03
Хранение ключа в коде — утечка через хранилище конфигурации или копию базы
04
Слишком частые запросы — сервис блокирует ключ по лимиту обращений
05
Выполнение запросов на клиенте — сбои из-за сертификатов и сетевых ограничений

Отдельная группа проблем связана с инфраструктурой: сервер 1С может не иметь доступа в интернет, прокси-сервер требует отдельной настройки в параметрах соединения, а устаревшие протоколы TLS на сервере могут не поддерживаться внешним сервисом. Эти вопросы решаются совместно с системным администратором.

Итог

Что важно запомнить

Подключение API к 1С строится на объектах HTTPСоединение и HTTPЗапрос с обязательной проверкой кода ответа. Ключи храните защищённо, обмен выполняйте на сервере, контролируйте дубли и логируйте ошибки. Сначала тестируйте запрос во внешнем инструменте, затем переносите в код.

Частые вопросы

Можно ли подключить API к 1С без программирования?

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

Что делать, если API возвращает ошибку 401?

Ошибка 401 означает проблему авторизации. Проверьте актуальность ключа или токена, правильность заголовка Authorization и не истёк ли срок действия токена OAuth — в этом случае его нужно обновить по процедуре из документации сервиса.

Работает ли этот подход в файловой базе 1С?

Да, HTTP-запросы работают и в файловом варианте, если у компьютера есть доступ к интернету. Ограничение касается регламентных заданий: в файловой базе они выполняются только при запущенном сеансе с соответствующими настройками.

Как обновлять токен OAuth автоматически?

Сервис выдаёт access token и refresh token. Перед запросом проверяйте срок жизни access token, а при его истечении отправляйте refresh token на точку обновления и сохраняйте новую пару токенов в защищённом хранилище настроек.

Чем отличается REST API от веб-сервиса SOAP при подключении к 1С?

REST работает через обычные HTTP-запросы с JSON и подключается описанным в статье способом. SOAP использует XML по строгой схеме WSDL — в 1С для него есть отдельный механизм WS-ссылок, который генерирует объекты по описанию сервиса.