Разработка и Конфигурация · 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
Включается без программирования, подходит для типового обмена справочниками и документами. Ограничение: структура ответа фиксирована, сложную логику не реализовать.
Полная свобода формата и логики, подходят для нестандартных интеграций и мобильных приложений. Требуют разработки и тестирования.
Строгий контракт через WSDL, удобны для интеграции с корпоративными системами. Более тяжёлый протокол, меньше гибкости.
Не API в прямом смысле, а механизм регулярной синхронизации между базами. Подходит, когда нужен не мгновенный доступ, а периодический обмен.
Как включить стандартный REST-интерфейс OData
Самый простой способ открыть доступ — включить стандартный интерфейс OData. В конфигураторе откройте свойства корня конфигурации или перейдите в раздел «Администрирование» — «Публикация на веб-сервере». На вкладке OData установите флаг публикации стандартного интерфейса и при необходимости ограничьте состав объектов: по умолчанию доступны все объекты, для которых у пользователя есть права.
После публикации базы на веб-сервере (IIS или Apache) данные становятся доступны по адресу вида http://сервер/база/odata/standard.odata. Проверить работу можно прямо в браузере: откройте этот URL, введите логин и пароль пользователя 1С — должна отобразиться служебная информация со списком сущностей. Запрос к конкретному справочнику выглядит как standard.odata/Catalog_Номенклатура?$format=json.
- 1Убедитесь, что веб-сервер (IIS или Apache) установлен и база опубликована
- 2В конфигураторе откройте «Администрирование» → «Публикация на веб-сервере»
- 3На вкладке OData включите публикацию стандартного интерфейса
- 4При необходимости ограничьте список доступных объектов
- 5Обновите публикацию и перезапустите веб-сервер
- 6Откройте в браузере URL standard.odata и авторизуйтесь
Как создать собственный HTTP-сервис
Когда стандартного OData недостаточно — нужен особый формат ответа, расчёт на лету или агрегация данных из нескольких таблиц — создают HTTP-сервис. В конфигураторе добавьте объект «HTTP-сервис» в ветке «Общие», задайте корневой URL, затем создайте шаблоны URL (например, /stock/{warehouse}) и методы GET или POST с обработчиками на встроенном языке.
В обработчике вы получаете объект HTTPСервисЗапрос, извлекаете параметры, выполняете запросы к базе и формируете ответ — обычно JSON. Не забудьте включить HTTP-сервис в публикацию на веб-сервере: на вкладке «HTTP-сервисы» поставьте флаг публикации. Без этого шага сервис написан, но снаружи недоступен — частая причина ошибки 404 при первой настройке.
Функция 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С.
Как проверить результат
Возвращается XML или JSON со списком сущностей после ввода логина
Ошибка 404 (публикация не настроена) или 401 (проблема с пользователем)
Доступ только к нужным объектам, остальное возвращает ошибку
Через API читаются зарплата, банковские документы и прочие лишние данные
Документ появляется в 1С с корректными реквизитами
Объект создаётся с пустыми обязательными полями или не проводится
Используется HTTPS, сертификат действителен
Работа по HTTP при доступе из внешней сети
Типичные ошибки и ограничения
Самая распространённая ошибка — публикация OData без ограничения состава объектов. Внешняя система получает доступ ко всему, что видит её пользователь, а пользователю часто дают права «с запасом». Вторая типичная проблема — обращения к API в цикле по одному объекту: сотни отдельных HTTP-запросов создают заметную нагрузку на сервер 1С. Используйте пакетные запросы OData ($batch) или проектируйте HTTP-сервис так, чтобы один вызов возвращал всё нужное.
Учитывайте и ограничения платформы: сеанс, открываемый на каждый запрос к HTTP-сервису, расходует лицензии и память сервера. При высокой частоте обращений это может стать узким местом. Для массовых выгрузок иногда разумнее использовать не синхронный API, а периодический обмен файлами или план обмена — внешняя система забирает подготовленный файл, не нагружая рабочую базу.
Частые вопросы о доступе к 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. Проверяйте не только работоспособность, но и отсутствие доступа к лишним данным.