Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

1С:Предприятие и СУБД

1С OData: Публикация и настройка стандартного REST интерфейса (API)

Обновлено: 10.09.2026 · Официальная документация ↗

Архитектура OData (REST) в платформе 1С

Стандартный интерфейс OData — это встроенный в ядро платформы 1С механизм (RESTful API), который позволяет внешним системам (веб-сайтам, мобильным приложениям, BI-системам) читать и изменять данные информационной базы с использованием протокола HTTP(S) и форматов JSON/XML. Для его работы требуется публикация базы на веб-сервере (IIS или Apache). Без корректной публикации веб-сервер возвращает ошибки 404 Not Found или 403 Forbidden при обращении к конечным точкам /odata/standard.odata. Бизнес-риски: срыв интеграционных процессов, недоступность данных для аналитики (Power BI/Qlik).

Компоненты OData инфраструктуры

УровеньКомпонентНазначение / Действие
Веб-серверIIS (Application) / Apache (Alias)Принимает HTTP-запрос и маршрутизирует его на ISAPI-расширение 1С (wsisapi.dll) или модуль (wsap24.so).
Шлюз 1СФайл default.vrdXML-файл дескриптора. Определяет, какие интерфейсы (ws, http, odata) включены для конкретной базы.
БД 1ССостав стандартного интерфейсаУказание, к каким именно объектам (справочники, документы) разрешен доступ через OData (настраивается кодом).

Пошаговое включение и настройка OData API

Сценарий 1: Публикация базы на веб-сервере (IIS/Apache)

Интерфейс OData работает только через веб-сервер. Тонкий клиент или прямое подключение (COM) не используются.

  1. Откройте Конфигуратор от имени Администратора. Перейдите в Администрирование -> Публикация на веб-сервере.
  2. Выберите веб-сервер (IIS или Apache) и задайте имя каталога (Например, trade).
  3. ОБЯЗАТЕЛЬНО установите галочку Публиковать стандартный интерфейс OData на вкладке OData.
  4. Нажмите "Опубликовать" и согласитесь на перезапуск веб-сервера.

Проверка: В файле default.vrd (лежит в каталоге публикации) должен появиться блок: <standardOdata enable="true" reuseSessions="autouse"/>.

Сценарий 2: Разрешение доступа к объектам ИБ (Включение состава)

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

// Запуск внешней обработки или добавление кода в процедуру ПриНачалеРаботыСистемы()
МассивОбъектов = Новый Массив;

// Добавление нужных справочников и документов
МассивОбъектов.Добавить(Метаданные.Справочники.Номенклатура);
МассивОбъектов.Добавить(Метаданные.Справочники.Контрагенты);
МассивОбъектов.Добавить(Метаданные.Документы.РеализацияТоваровУслуг);

// Установка состава OData
УстановитьСоставСтандартногоИнтерфейсаOData(МассивОбъектов);

// Альтернатива (Крайне не рекомендуется для ИБ! Включить ВСЁ):
// УстановитьСоставСтандартногоИнтерфейсаOData(Метаданные.Справочники);
// УстановитьСоставСтандартногоИнтерфейсаOData(Метаданные.Документы);

Сценарий 3: Выполнение тестового GET-запроса

Для проверки сформируйте HTTP-запрос в браузере или Postman. Добавьте параметр ?$format=json, чтобы получить ответ в JSON вместо XML (по умолчанию).

// Шаблон URL:
http://[Адрес_Сервера]/[Имя_Публикации]/odata/standard.odata/Catalog_Номенклатура?$format=json

Пример:
http://localhost/trade/odata/standard.odata/Catalog_Номенклатура?$top=10&$format=json

Типовые ошибки администраторов

  • Публикация файловой базы на продакшене: Работа OData с файловой версией 1С (без сервера предприятия) монополизирует базу веб-сервером. Другие пользователи не смогут войти. Используйте строго клиент-серверный вариант 1С.
  • Игнорирование прав доступа (RLS): OData интерфейс соблюдает права пользователя 1С, под которым выполняется авторизация (Basic Auth). Если у пользователя (например, API_User) нет прав на чтение справочника Контрагенты в конфигураторе, OData вернет пустой список, даже если объект добавлен в состав.
💡 Практика специалистов: Практика ITSTM: Стандартный OData — мощный, но медленный инструмент для сложных выборок. Если вам нужно выгрузить сотни тысяч строк или выполнить сложный Join, мы настоятельно рекомендуем разрабатывать кастомные HTTP-сервисы (HTTP-сервисы в дереве метаданных 1С), где логика выборки и формирования JSON пишется вручную — это работает в 10-50 раз быстрее OData.

Частые вопросы (FAQ)

Можно ли добавить в OData регистры сведений или обороты?

Да, стандартный интерфейс поддерживает чтение независимых регистров сведений, регистров накопления (обороты, остатки) и даже выполнение виртуальных таблиц. URL формируется по правилу: InformationRegister_ИмяРегистра или AccumulationRegister_ИмяРегистра_Balance.

Как авторизоваться в OData?

Используется Basic Authentication. В заголовке HTTP-запроса необходимо передавать 'Authorization: Basic <base64>', где <base64> — закодированная строка 'Логин1С:Пароль1С'. Логин и пароль должны соответствовать пользователю информационной базы.

Почему при запросе выдается ошибка HTTP 401 Unauthorized?

Это означает, что веб-сервер (IIS/Apache) перехватывает аутентификацию. В IIS необходимо отключить 'Анонимную проверку подлинности' и включить 'Базовую проверку подлинности' для каталога публикации 1С.

Как ограничить нагрузку от запросов OData на сервер 1С?

Настройте постраничную выборку (пагинацию). Внешняя система должна использовать параметры $top (ограничение количества записей) и $skip (смещение). Также можно настроить пулы рабочих процессов (rphost) в консоли кластера 1С, выделив отдельный пул для HTTP-сервисов.

Полезные материалы
Рекомендуем