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

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

Что такое доступ к API в 1С и как его настроить

Что такое доступ к API в 1С, какие интерфейсы доступны (HTTP-сервисы, OData, веб-сервисы), как настроить публикацию, права и безопасную интеграцию.

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

В экосистеме 1С существует несколько способов предоставить такой доступ: стандартный REST-интерфейс OData, собственные HTTP-сервисы, SOAP веб-сервисы и планы обмена. Каждый вариант отличается гибкостью, сложностью настройки и уровнем контроля над тем, что именно «видят» внешние системы. Выбор зависит от задачи: для типового обмена с сайтом часто достаточно OData, для нестандартной логики пишут HTTP-сервис.

Ключевой момент, который часто упускают: открытие API — это точка входа в базу извне. Неправильно настроенные права или публикация без аутентификации превращают базу с персональными данными и финансовыми документами в общедоступный ресурс. Поэтому настройку доступа к API всегда рассматривают вместе с вопросами безопасности: отдельный пользователь, минимальные права, защищённое соединение.

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

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

HTTP-сервисы — это механизм, где разработчик сам описывает шаблоны URL и обработчики на встроенном языке. Такой вариант даёт полный контроль: можно вернуть данные в любом формате, выполнить сложную бизнес-логику, скрыть внутреннюю структуру базы. Веб-сервисы (SOAP) работают по аналогии, но по протоколу SOAP с описанием WSDL — их чаще используют в корпоративных интеграциях со старыми системами.

Отдельно стоит COM-соединение и внешние компоненты — они применяются для связи между базами 1С или с приложениями на том же сервере, но это не API в привычном смысле и для доступа извне по сети не подходит.

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

OData (REST)

Включается без программирования, подходит для типового обмена справочниками и документами. Ограничение: структура ответа фиксирована, сложную логику не реализовать.

HTTP-сервисы

Полная свобода формата и логики, подходят для нестандартных интеграций и мобильных приложений. Требуют разработки и тестирования.

SOAP веб-сервисы

Строгий контракт через WSDL, удобны для интеграции с корпоративными системами. Более тяжёлый протокол, меньше гибкости.

Планы обмена

Не API в прямом смысле, а механизм регулярной синхронизации между базами. Подходит, когда нужен не мгновенный доступ, а периодический обмен.

Как включить стандартный REST-интерфейс OData

Самый простой способ открыть доступ — включить стандартный интерфейс OData. В конфигураторе откройте свойства корня конфигурации или перейдите в раздел «Администрирование» — «Публикация на веб-сервере». На вкладке OData установите флаг публикации стандартного интерфейса и при необходимости ограничьте состав объектов: по умолчанию доступны все объекты, для которых у пользователя есть права.

После публикации базы на веб-сервере (IIS или Apache) данные становятся доступны по адресу вида http://сервер/база/odata/standard.odata. Проверить работу можно прямо в браузере: откройте этот URL, введите логин и пароль пользователя 1С — должна отобразиться служебная информация со списком сущностей. Запрос к конкретному справочнику выглядит как standard.odata/Catalog_Номенклатура?$format=json.

Порядок включения OData
  1. 1
    Убедитесь, что веб-сервер (IIS или Apache) установлен и база опубликована
  2. 2
    В конфигураторе откройте «Администрирование» → «Публикация на веб-сервере»
  3. 3
    На вкладке OData включите публикацию стандартного интерфейса
  4. 4
    При необходимости ограничьте список доступных объектов
  5. 5
    Обновите публикацию и перезапустите веб-сервер
  6. 6
    Откройте в браузере URL standard.odata и авторизуйтесь

Как создать собственный HTTP-сервис

Когда стандартного OData недостаточно — нужен особый формат ответа, расчёт на лету или агрегация данных из нескольких таблиц — создают HTTP-сервис. В конфигураторе добавьте объект «HTTP-сервис» в ветке «Общие», задайте корневой URL, затем создайте шаблоны URL (например, /stock/{warehouse}) и методы GET или POST с обработчиками на встроенном языке.

В обработчике вы получаете объект HTTPСервисЗапрос, извлекаете параметры, выполняете запросы к базе и формируете ответ — обычно JSON. Не забудьте включить HTTP-сервис в публикацию на веб-сервере: на вкладке «HTTP-сервисы» поставьте флаг публикации. Без этого шага сервис написан, но снаружи недоступен — частая причина ошибки 404 при первой настройке.

bsl
Функция stockGET(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	Склад = Запрос.ПараметрыURL["warehouse"];
	// запрос остатков и формирование JSON
	Ответ.УстановитьТелоИзСтроки(СтрокаJSON);
	Ответ.Заголовки.Вставить("Content-Type", "application/json");
	Возврат Ответ;
КонецФункции

Пользователи, права и аутентификация

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

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

Аутентификация при публикации настраивается на уровне веб-сервера: базовая аутентификация (логин/пароль) работает из коробки, но пароль передаётся в каждом запросе, поэтому без HTTPS это неприемлемо. Для более строгих сценариев применяют токены, проверяемые в коде HTTP-сервиса, или аутентификацию операционной системы.

Как проверить, что API работает корректно

После настройки проверьте три вещи: доступность, корректность данных и отсутствие лишнего доступа. Доступность проверяется простым GET-запросом из браузера или утилиты вроде curl/Postman — ответ должен приходить с кодом 200 и ожидаемым форматом. Ошибка 401 означает проблему с аутентификацией, 403 — нехватку прав, 404 — что сервис или публикация не настроены.

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

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

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

Запрос к standard.odata в браузере
Норма

Возвращается XML или JSON со списком сущностей после ввода логина

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

Ошибка 404 (публикация не настроена) или 401 (проблема с пользователем)

Права пользователя интеграции
Норма

Доступ только к нужным объектам, остальное возвращает ошибку

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

Через API читаются зарплата, банковские документы и прочие лишние данные

Создание объекта через API
Норма

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

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

Объект создаётся с пустыми обязательными полями или не проводится

Соединение
Норма

Используется HTTPS, сертификат действителен

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

Работа по HTTP при доступе из внешней сети

Типичные ошибки и ограничения

Самая распространённая ошибка — публикация OData без ограничения состава объектов. Внешняя система получает доступ ко всему, что видит её пользователь, а пользователю часто дают права «с запасом». Вторая типичная проблема — обращения к API в цикле по одному объекту: сотни отдельных HTTP-запросов создают заметную нагрузку на сервер 1С. Используйте пакетные запросы OData ($batch) или проектируйте HTTP-сервис так, чтобы один вызов возвращал всё нужное.

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

Типичные ошибки
01
Использование учётной записи администратора для интеграции — при утечке пароля под угрозой вся база
02
Публикация OData без ограничения состава объектов — внешняя система видит лишние данные
03
Обращение по одному объекту в цикле вместо пакетных запросов — перегрузка сервера
04
Отсутствие обработки ошибок в HTTP-сервисе — внешняя система получает пустой ответ или текст исключения вместо понятного кода
05
Работа по HTTP при доступе из интернета — логин и пароль передаются без защиты

Частые вопросы о доступе к API в 1С

Нужна ли отдельная лицензия 1С для работы через API?

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

Можно ли открыть доступ к API в файловой базе без веб-сервера?

Нет, для OData, HTTP-сервисов и веб-сервисов публикация на веб-сервере (IIS или Apache) обязательна. Файловая база без веб-сервера не может принимать входящие HTTP-запросы — она может только сама обращаться к внешним API.

Чем OData отличается от HTTP-сервиса на практике?

OData — готовый стандартный интерфейс: включили настройку, и все разрешённые объекты доступны по унифицированным URL. HTTP-сервис вы пишете сами и полностью определяете адреса, формат и логику. OData быстрее запустить, HTTP-сервис — гибче для нестандартных задач.

Как защитить API, если база должна быть доступна из интернета?

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

Почему запрос к OData возвращает ошибку 404?

Чаще всего не включена публикация стандартного интерфейса OData в настройках публикации или публикация не обновлена после изменения конфигурации. Проверьте также, что веб-сервер перезапущен и URL указан с точным именем публикации базы.

Подходит ли API для обмена большими объёмами данных?

Для разовых массовых выгрузок синхронный API неоптимален: длинные запросы держат сеанс и нагружают сервер. В таких случаях лучше формировать файл выгрузки по расписанию и передавать его внешней системе, а API оставить для оперативных точечных операций.

Итог

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

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