Администрирование · 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-точка работать не будет. После установки флажка нажмите «Опубликовать» и дождитесь сообщения об успешном завершении.
- 1Установите платформу с модулями расширения веб-сервера и настройте IIS или Apache
- 2Откройте базу в конфигураторе: Администрирование → Публикация на веб-сервере
- 3Укажите имя публикации, тип веб-сервера и каталог
- 4Отметьте флажок «Публиковать стандартный интерфейс OData»
- 5Нажмите «Опубликовать» и перезапустите веб-сервер (iisreset или restart Apache)
- 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 обязателен перезапуск службы.
<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 — вернёт первые пять элементов справочника номенклатуры. Имена сущностей формируются по шаблону: тип объекта на английском, подчёркивание, имя объекта из конфигурации.
Как проверить результат
Возвращается XML со списком наборов сущностей после ввода логина и пароля
Ошибка 404 (точка не опубликована) или 401/403 (проблема с аутентификацией)
XML с описанием сущностей конфигурации
Пустой ответ или ошибка 500 — проверяйте права пользователя и логи веб-сервера
Возвращаются записи с полями Ref_Key, Description и др.
Ошибка «сущность не найдена» — проверьте точное имя объекта в конфигураторе
Аутентификация, права и безопасность
OData-запросы выполняются от имени пользователя информационной базы, указанного при подключении. Платформа поддерживает базовую аутентификацию (логин и пароль в заголовке) и Windows-аутентификацию, если она настроена на веб-сервере и включена в публикации.
Создайте для интеграции отдельного пользователя с минимально необходимыми правами: если внешней системе нужно только читать номенклатуру, дайте ему роль с правом чтения конкретного справочника и уберите всё лишнее. Права применяются платформой в полном объёме — OData не обходит ролевую модель.
Дополнительные меры: ограничьте доступ к публикации по IP средствами веб-сервера, не публикуйте OData на том же адресе, что и веб-клиент для пользователей, и регулярно проверяйте журнал регистрации на предмет неудачных попыток входа.
Типичные ошибки и способы их устранения
Ошибка 404 при обращении к OData чаще всего означает, что флажок публикации стандартного интерфейса не был установлен или веб-сервер не перезапущен после публикации. Проверьте наличие секции OData в default.vrd и повторите публикацию.
Ошибка 500 на IIS нередко связана с разрядностью: пул приложений должен соответствовать разрядности установленных модулей расширения платформы, а в настройках пула для 64-разрядных модулей параметр «Разрешить 32-разрядные приложения» должен быть отключён. Также проверьте, что MIME-типы и обработчики ISAPI зарегистрированы.
Если данные возвращаются, но часть объектов отсутствует в списке сущностей, проверьте права пользователя: объекты, к которым у него нет доступа, могут не отображаться или выдавать ошибку при обращении. Учтите также, что планы обмена, внешние источники и некоторые служебные объекты имеют ограничения в стандартном 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_РеализацияТоваровУслуг.