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

Администрирование · 11 мин

Как опубликовать OData в 1С: инструкция по настройке и проверке

Как опубликовать OData-интерфейс 1С на веб-сервере: настройка IIS и Apache, включение стандартного OData, проверка доступа, ошибки и безопасность.

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

Ниже разобран полный цикл: подготовка веб-сервера, публикация базы с включённым OData, проверка доступа через браузер и Postman, типичные ошибки и меры безопасности. Инструкция применима к файловым и клиент-серверным базам на платформе 8.3.

Что такое стандартный OData-интерфейс 1С и когда он нужен

Платформа 1С:Предприятие 8.3 умеет автоматически формировать OData-интерфейс для всех объектов конфигурации: справочников, документов, регистров сведений и накопления. Разработчику не нужно писать код — достаточно включить публикацию, и платформа сама создаст точку входа, метаданные и наборы сущностей (entity sets) для каждого объекта.

Типовые сценарии использования: выгрузка номенклатуры и остатков на сайт, интеграция с CRM, чтение данных из Excel и Power BI через OData-коннектор, обмен с мобильными приложениями. Интерфейс поддерживает операции чтения, создания, изменения и удаления объектов, а также фильтрацию через параметры $filter, $select, $top и другие.

Важно понимать ограничение: стандартный OData работает в формате Atom/XML и ориентирован на операции с отдельными объектами. Если нужны сложные произвольные запросы или собственная логика обработки, вместо OData создают HTTP-сервисы в конфигурации.

Подготовка: что должно быть установлено и проверено

Перед публикацией убедитесь, что на компьютере, который будет выполнять роль веб-сервера, установлены:

  • веб-сервер IIS (Windows) либо Apache 2.x (Windows или Linux);
  • платформа 1С:Предприятие той же версии, что используется для работы с базой;
  • модули расширения веб-сервера — они ставятся вместе с платформой при выборе соответствующего компонента установки.

Для IIS дополнительно потребуется включить компоненты Windows: службы IIS, ASP.NET, ISAPI-расширения и фильтры ISAPI. Если модулей расширения нет, при публикации конфигуратор выдаст ошибку о невозможности найти библиотеку адаптера веб-сервера.

Учётная запись, из-под которой выполняется публикация, должна иметь права администратора на веб-сервере. Также заранее создайте в базе отдельного пользователя для интеграции — не используйте для OData-доступа учётную запись администратора с полными правами.

Публикация базы с включённым OData через конфигуратор

Основная работа выполняется в конфигураторе. Откройте базу в режиме «Конфигуратор» под пользователем с правами администрирования и перейдите в меню Администрирование → Публикация на веб-сервере.

В открывшемся диалоге заполните поля: имя публикации (латиницей, без пробелов — оно войдёт в URL), тип веб-сервера (IIS или Apache), каталог публикации — физическая папка, куда будут записаны файлы default.vrd и вспомогательные ресурсы. Для IIS обычно указывают подкаталог внутри C:\inetpub\wwwroot.

Ключевой шаг — на вкладке с настройками публикации отметьте флажок «Публиковать стандартный интерфейс OData». Без него база опубликуется как обычное веб-приложение, но OData-точка работать не будет. После установки флажка нажмите «Опубликовать» и дождитесь сообщения об успешном завершении.

Порядок публикации OData
  1. 1
    Установите платформу с модулями расширения веб-сервера и настройте IIS или Apache
  2. 2
    Откройте базу в конфигураторе: Администрирование → Публикация на веб-сервере
  3. 3
    Укажите имя публикации, тип веб-сервера и каталог
  4. 4
    Отметьте флажок «Публиковать стандартный интерфейс OData»
  5. 5
    Нажмите «Опубликовать» и перезапустите веб-сервер (iisreset или restart Apache)
  6. 6
    Откройте в браузере адрес /ИмяБазы/odata/standard.odata и введите логин и пароль пользователя базы

После публикации перезапустите веб-сервер: для IIS выполните команду iisreset в командной строке администратора, для Apache — перезапуск службы. Это гарантирует, что веб-сервер подхватит новые настройки пула приложений и обработчики.

Ручная правка default.vrd и публикация на Apache

Всё, что делает диалог публикации, — записывает файл default.vrd в каталог публикации. При необходимости его можно создать или отредактировать вручную. За OData отвечает элемент <point name="StandardODataProvider" .../> внутри секции <ws> и атрибут enableStandardOData="true" в корневом элементе <point> базы.

Для Apache порядок похожий: конфигуратор при выборе типа веб-сервера «Apache» формирует фрагмент конфигурации, который нужно добавить в httpd.conf, либо используется утилита webinst из каталога платформы. После правки конфигурации Apache обязателен перезапуск службы.

xml
<point name="ИмяБазы" enableStandardOData="true">
  <ws>
    <point name="StandardODataProvider" alias="odata/standard.odata"/>
  </ws>
</point>

Проверьте, что в файле default.vrd корректно указана строка подключения к базе: для файловой базы — путь к каталогу, для клиент-серверной — имя сервера и имя базы в кластере. Ошибка в строке подключения — одна из самых частых причин того, что веб-публикация «не видит» базу.

Проверка работы OData-интерфейса

Первая проверка выполняется прямо в браузере. Откройте адрес вида http://сервер/ИмяБазы/odata/standard.odata. Браузер запросит логин и пароль пользователя информационной базы. В ответ должен вернуться XML-документ со списком доступных наборов сущностей — справочников, документов, регистров.

Вторая точка проверки — метаданные: http://сервер/ИмяБазы/odata/standard.odata/$metadata. Здесь описывается структура всех сущностей, их поля и типы. Если этот адрес открывается и содержит описание объектов конфигурации, интерфейс работает корректно.

Далее проверьте чтение конкретных данных, например: .../odata/standard.odata/Catalog_Номенклатура?$top=5 — вернёт первые пять элементов справочника номенклатуры. Имена сущностей формируются по шаблону: тип объекта на английском, подчёркивание, имя объекта из конфигурации.

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

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

Открытие /odata/standard.odata в браузере
Норма

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

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

Ошибка 404 (точка не опубликована) или 401/403 (проблема с аутентификацией)

Запрос $metadata
Норма

XML с описанием сущностей конфигурации

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

Пустой ответ или ошибка 500 — проверяйте права пользователя и логи веб-сервера

Запрос конкретного справочника с $top=5
Норма

Возвращаются записи с полями Ref_Key, Description и др.

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

Ошибка «сущность не найдена» — проверьте точное имя объекта в конфигураторе

Аутентификация, права и безопасность

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

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

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

Типичные ошибки и способы их устранения

Ошибка 404 при обращении к OData чаще всего означает, что флажок публикации стандартного интерфейса не был установлен или веб-сервер не перезапущен после публикации. Проверьте наличие секции OData в default.vrd и повторите публикацию.

Ошибка 500 на IIS нередко связана с разрядностью: пул приложений должен соответствовать разрядности установленных модулей расширения платформы, а в настройках пула для 64-разрядных модулей параметр «Разрешить 32-разрядные приложения» должен быть отключён. Также проверьте, что MIME-типы и обработчики ISAPI зарегистрированы.

Типичные ошибки
01
Публикация без флажка OData — точка /odata/standard.odata возвращает 404, хотя веб-клиент работает
02
Использование учётной записи администратора для интеграции — компрометация логина открывает полный доступ к базе
03
Отсутствие перезапуска веб-сервера после публикации — изменения не применяются, диагностика уходит в неверном направлении
04
Неверное имя сущности в запросе — имя объекта должно точно совпадать с именем в конфигураторе, включая регистр
05
Доступ из интернета по HTTP с базовой аутентификацией — логин и пароль передаются открыто

Если данные возвращаются, но часть объектов отсутствует в списке сущностей, проверьте права пользователя: объекты, к которым у него нет доступа, могут не отображаться или выдавать ошибку при обращении. Учтите также, что планы обмена, внешние источники и некоторые служебные объекты имеют ограничения в стандартном OData.

Итог

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

OData в 1С включается одним флажком при публикации базы на веб-сервере. Проверка — открытие /odata/standard.odata и $metadata в браузере. Обязательный минимум безопасности: отдельный пользователь с ограниченными правами, аутентификация и HTTPS при доступе извне.

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

Можно ли опубликовать OData без веб-сервера?

Нет. OData работает только через веб-сервер (IIS или Apache) с модулями расширения платформы. Тонкий и толстый клиенты, а также прямое подключение к серверу 1С этот интерфейс не предоставляют.

Почему запрос возвращает XML, а не JSON?

Стандартный OData-интерфейс 1С работает в формате Atom/XML. Если клиенту нужен JSON, можно запросить его через заголовок Accept или параметр $format=json — поддержка зависит от версии платформы. Альтернатива — собственный HTTP-сервис с произвольным форматом ответа.

Как ограничить список объектов, доступных через OData?

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

Работает ли OData для файловой базы?

Да. Файловую базу можно опубликовать на веб-сервере так же, как клиент-серверную, — в default.vrd указывается путь к каталогу базы. Учтите только, что одновременная работа веб-публикации и локальных пользователей с одной файловой базой имеет ограничения по блокировкам.

Чем OData отличается от HTTP-сервисов в 1С?

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

Как узнать точное имя сущности для запроса?

Откройте в браузере корневой адрес /odata/standard.odata — он возвращает полный список наборов сущностей с точными именами. Имена строятся по шаблону «ТипОбъекта_ИмяВКонфигурации», например Document_РеализацияТоваровУслуг.