Как включить OData в 1С: пошагово, с проверкой и типичными ошибками

OData — штатный интерфейс 1С: через него внешние программы читают данные базы, не требуя доработок конфигурации. Именно на нём работает Ai Smart Bot. Ниже — как включить его за 10–15 минут, как проверить и что делать, если что-то не отвечает.

Что это даёт

Данные при этом не меняются: настраивается доступ только на чтение и заводится отдельный пользователь.

Шаг 1. Проверьте редакцию

Нужна редакция ПРОФ или КОРП. В базовых поставках (1С:Бухгалтерия Базовая, 1С:Управление торговлей Базовая) внешнее подключение и публикация недоступны — этот шаг проверить стоит первым.

Шаг 2. Опубликуйте базу на веб-сервере

  1. В 1С: Администрирование → Публикация на веб-сервере.
  2. Укажите имя публикации (обычно совпадает с именем базы, например ut).
  3. Включите публикацию и проверьте, что база открывается по адресу http://сервер/ut.

Если база уже опубликована — шаг можно пропустить, OData включается в той же публикации.

Шаг 3. Включите стандартный интерфейс OData

  1. В том же диалоге Публикация на веб-сервере найдите блок дополнительных возможностей.
  2. Отметьте «Стандартный интерфейс OData».
  3. Опубликуйте изменения (кнопка «Опубликовать») и при необходимости перезапустите пул веб-сервера.
В свежих релизах настройка лежит в Администрирование → Настройка обмена данными → Стандартный интерфейс OData: включите использование и состав данных.

Шаг 4. Заведите отдельного пользователя

  1. Создайте пользователя, например odata_read; интерактивный вход можно запретить.
  2. Выдайте права только на чтение нужных объектов: документы реализации и поступления, регистры остатков и взаиморасчётов.
  3. Не используйте администратора и не давайте прав на изменение — так доступ остаётся безопасным.

Шаг 5. Проверьте доступ

https://сервер/ut/odata/standard.odata/$metadata

Введите логин и пароль пользователя — должен прийти список сущностей в формате XML. Если он пришёл, интерфейс работает, и база готова к подключению.

Примеры чтения данных (в ответе JSON):

GET /ut/odata/standard.odata/AccumulationRegister_СвободныеОстатки?$format=json&$top=50
GET /ut/odata/standard.odata/Document_РеализацияТоваровУслуг?$format=json&$filter=Date ge datetime'2026-09-01T00:00:00'&$orderby=Date desc

Типичные ошибки и что они значат

Не публикуйте OData в открытый интернет без HTTPS и ограничений: лучше закрыть доступ по IP или через VPN, а учётную запись использовать только для чтения.

Что дальше

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

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

Что такое OData в 1С простыми словами?

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

Есть ли OData в базовой версии 1С?

Нет. В базовых поставках внешнее подключение и публикация недоступны, поэтому интеграции работают только на редакциях ПРОФ или КОРП.

Безопасно ли включать OData?

Да, если действовать аккуратно: завести отдельного пользователя только с правами чтения, не использовать его для работы в программе и держать базу за HTTPS. Запись через такой доступ не выполняется, а в журнале регистрации видны все обращения.

Почему OData отвечает ошибкой 401 или 403?

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

Какой адрес используется для запросов?

Адрес публикации базы плюс /odata/standard.odata/. Например: https://сервер/база/odata/standard.odata/Catalog_Контрагенты?$format=json. Список всех доступных сущностей отдаёт запрос к /odata/standard.odata/$metadata.

Что делать, если запрос долго не отвечает?

Ограничьте выборку: укажите фильтр по периоду, выберите нужные поля через $select и задайте $top. Большие выборки без фильтров — самая частая причина таймаутов.

Читайте также