Авторизация

Правила доступа и общие параметры подключения к HTTP-сервисам 1С УПП через gateway.

Способ авторизации

Доступ к API — HTTP Basic Authentication по паре Пользователь и Пароль (в терминологии 1С УПП).

Учётные данные не публикуются в документации. Их выдаёт администратор 1С УПП по запросу интегратора или разработчика.

В примерах ниже используются вымышленные учётные данные и адреса. Подставляйте значения, выданные администратором 1С.

Каждый запрос к методам API должен содержать заголовок:

Authorization: Basic <credentials>

где <credentials> — строка Пользователь:Пароль, закодированная в Base64.

Кириллица в логине и пароле

Пользователь и Пароль могут содержать кириллицу и другие не-ASCII символы. Перед кодированием в Base64 строку Пользователь:Пароль нужно приводить к UTF-8.

Не используйте кодировки вроде Windows-1251 и не кодируйте в Base64 посимвольно через Latin-1 — иначе 1С вернёт 401.

Правильно (JavaScript / Node.js):

const user = "demo_integrator";
const password = "DemoPass2026!";
const credentials = Buffer.from(`${user}:${password}`, "utf8").toString("base64");
const baseUrl = process.env.GATEWAY_BASE_URL; // URL от администратора 1С

const response = await fetch(`${baseUrl}/main/hs/orders/get`, {
  headers: {
    Authorization: `Basic ${credentials}`,
  },
});

Правильно (Python):

import base64

user = "demo_integrator"
password = "DemoPass2026!"
credentials = base64.b64encode(f"{user}:{password}".encode("utf-8")).decode("ascii")

headers = {"Authorization": f"Basic {credentials}"}

Правильно (curl):

curl -u "demo_integrator:DemoPass2026!" "${GATEWAY_BASE_URL}/main/hs/orders/get"

curl -u сам формирует заголовок Authorization с учётом UTF-8.

Пример запроса

GET /main/hs/orders/get HTTP/1.1
Host: gateway-demo.example.internal
Authorization: Basic ZGVtby1pbnRlZ3JhdG9yOkRlbW9QYXNzMjAyNiE=
Accept: application/json

Значение Basic ... в примере условное — подставляйте Base64 от своей пары Пользователь:Пароль в UTF-8.

Получение доступа

  1. Отправьте запрос администратору 1С УПП: для какой интеграции нужен доступ, какие методы планируете вызывать.
  2. Получите Пользователя, Пароль и Base URL для HTTP-сервиса.
  3. Храните учётные данные и Base URL в секретах окружения (переменные среды, vault), не в коде репозитория и не в клиентском фронтенде.
  4. При компрометации или смене сотрудника запросите перевыпуск доступа.

Подключение

Base URL — доменное имя или поддомен + домен, которое через настройку DNS-зоны привязано к серверу, на котором опубликована база 1С с HTTP-сервисом. Адрес выдаётся администратором 1С УПП вместе с доступом и не публикуется в этой документации.

Content-Type ответа: application/json; charset=utf-8

Все методы из раздела «Методы» используют один Base URL и этот формат ответа. Полный URL запроса: {Base URL}{путь метода}, например {Base URL}/main/hs/orders/get.

При успешном ответе (200) сервис 1С возвращает заголовок Access-Control-Allow-Origin: *.

Ошибки доступа

При неверных учётных данных или их отсутствии gateway или 1С вернёт 401 Unauthorized.

Типичные причины:

  • заголовок Authorization не передан;
  • неверный Пользователь или Пароль;
  • Base64 собран не из UTF-8 (частая ошибка при кириллице);
  • доступ не выдан или отозван администратором 1С.

Правило для документации

Каждый метод должен отдельно указывать требуемый уровень доступа в 1С: чтение, создание, изменение или административная операция. Сами учётные данные в описании методов не дублируются — они описаны на этой странице.