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

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

Как включить OData в 1С и настроить доступ к данным

Как включить OData в 1С: публикация на веб-сервере, настройка состава объектов, права доступа, проверка работы и решение типичных ошибок.

OData в 1С — это стандартный интерфейс, который платформа автоматически формирует для информационной базы и который позволяет читать и изменять данные по протоколу HTTP без написания отдельного API. Через OData можно обращаться к справочникам, документам, регистрам и другим объектам метаданных из Excel, Power BI, мобильных приложений или сторонних систем интеграции. Включение механизма не требует доработки конфигурации — достаточно правильно опубликовать базу на веб-сервере и выбрать, какие объекты будут доступны.

Механизм поддерживается платформой 1С:Предприятие начиная с версии 8.3.5 и работает как в клиент-серверном, так и в файловом варианте при условии публикации через веб-сервер. Напрямую «галочкой в конфигураторе» OData не включается: обязательное условие — публикация информационной базы на веб-сервере (Apache или IIS) с установленными модулями расширения веб-сервера 1С.

Перед началом работы определите, зачем вам нужен OData: для разовой выгрузки аналитики в Excel достаточно чтения, а для двустороннего обмена со сторонней системой потребуется продумать права на запись и ограничения состава объектов. От этого зависят настройки безопасности, которые критичны, если база доступна извне локальной сети.

Что потребуется перед включением OData

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

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

Публикация базы на веб-сервере с включением OData

Основной шаг — публикация информационной базы. Откройте конфигуратор, перейдите в меню «Администрирование» → «Публикация на веб-сервере». В диалоге укажите имя публикации (латиницей, без пробелов — оно войдёт в URL), каталог для файлов публикации и отметьте флажок «Публиковать стандартный интерфейс OData». Именно этот флажок включает механизм.

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

Порядок действий
  1. 1
    Установите веб-сервер и модули расширения веб-сервера 1С, проверьте, что сайт отвечает
  2. 2
    Откройте конфигуратор под администратором и выберите «Администрирование» → «Публикация на веб-сервере»
  3. 3
    Задайте имя публикации латиницей и укажите каталог
  4. 4
    Отметьте флажок «Публиковать стандартный интерфейс OData» и нажмите «Опубликовать»
  5. 5
    Перезапустите веб-сервер и проверьте адрес http://сервер/ИмяПубликации/odata/standard.odata

Если публикация выполняется вручную через файл default.vrd (например, на Linux без конфигуратора), OData включается добавлением элемента point с именем standard.odata внутрь секции point с типом OData. Однако для большинства администраторов проще и надёжнее использовать диалог публикации в конфигураторе — он сам формирует корректный файл.

Настройка состава объектов, доступных через OData

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

Отметьте флажками только те объекты, которые реально нужны интеграции. Принцип минимально необходимого доступа здесь особенно важен: каждый опубликованный объект — это потенциальная точка чтения или изменения данных извне. Для выгрузки остатков в BI-систему достаточно пары регистров и справочника номенклатуры; открывать документы и регистры с персональными данными при этом не нужно.

Изменения вступают в силу сразу после сохранения настройки, перезапуск веб-сервера не требуется. Если объект в настройке не отмечен, запрос к нему через OData вернёт ошибку доступа, даже если у пользователя есть права в базе.

Аутентификация и права доступа

OData использует аутентификацию, настроенную для публикации в целом. Наиболее распространённый вариант — базовая аутентификация (Basic): клиент передаёт логин и пароль пользователя 1С с каждым запросом. Имя пользователя и пароль можно также указать прямо в файле default.vrd, чтобы подключение выполнялось под фиксированной учётной записью, но хранение пароля в открытом виде в файле — компромисс, допустимый только в изолированной сети.

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

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

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

Для проверки чтения данных добавьте к адресу имя сущности, например .../odata/standard.odata/Catalog_Номенклатура. Если в ответ пришёл список элементов в формате Atom/JSON — интерфейс работает. Тот же адрес подставляется в Excel («Данные» → «Из других источников» → «Из OData») или в Power BI для построения отчётов.

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

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

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

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

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

Ошибка 404 — публикация не настроена или неверный URL

Запрос к конкретному объекту
Норма

Возвращаются данные объекта

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

Ошибка доступа — объект не включён в настройку состава OData

Аутентификация
Норма

Запрос логина и пароля, затем доступ

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

Ошибка 401 — неверные учётные данные или не настроена аутентификация веб-сервера

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

Самая частая проблема — ошибка 404 при обращении к OData. Причины: не установлен флажок публикации OData, после изменения настроек не перезапущен веб-сервер, либо в URL ошибка в имени публикации (регистр символов имеет значение). Проверьте файл default.vrd — в нём должна присутствовать секция OData.

Вторая группа ошибок связана с правами: запрос возвращает пустой результат или сообщение о недоступности объекта. Здесь проверяйте две вещи — включён ли объект в настройке состава OData и есть ли у пользователя права на него в конфигурации. Третья типичная ситуация — медленная работа при запросах больших таблиц: используйте параметры $filter, $select и $top, чтобы запрашивать только нужные поля и строки, а не выгружать таблицу целиком.

Типичные ошибки
01
Публикация без флажка OData — интерфейс просто не существует по указанному адресу
02
Открытие доступа ко всем объектам «на всякий случай» — лишний риск утечки данных
03
Использование учётной записи с полными правами для интеграции — при утечке пароля под угрозой вся база
04
Выгрузка больших таблиц без $filter и $top — таймауты и нагрузка на сервер
05
HTTP без шифрования при доступе извне — логин и пароль передаются открыто

Ограничения и альтернативы

Стандартный интерфейс OData в 1С имеет ограничения. Он не поддерживает вызов произвольных методов конфигурации — доступны только операции с данными объектов. Проведение документов выполняется специальной операцией Post, но сложная бизнес-логика, требующая вызова процедур, через OData недоступна. Также стоит учитывать, что состав типов данных ограничен тем, что способен сериализовать протокол.

Если возможностей стандартного OData не хватает, альтернативы — HTTP-сервисы, создаваемые в конфигурации (полный контроль над логикой, но требуется разработка), расширение стандартного интерфейса OData через переопределение обработчиков, либо планы обмена для регулярной синхронизации между базами 1С. Для простой аналитики и выгрузок стандартный OData остаётся самым быстрым решением: он не требует ни одной строки кода.

Сравнение вариантов

Стандартный OData

Быстрое включение без разработки; подходит для чтения данных и простой записи. Ограничение — нельзя вызывать произвольную логику конфигурации

HTTP-сервисы

Полная свобода логики и форматов; требуется разработка и поддержка кода в конфигурации

Планы обмена

Подходят для регулярной синхронизации между базами 1С; не дают произвольного доступа извне в реальном времени

Итог

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

OData включается публикацией базы на веб-сервере с соответствующим флажком, состав объектов задаётся отдельной настройкой, доступ ограничивается правами пользователя 1С. Проверяйте работу через браузер по адресу standard.odata и открывайте только те объекты, которые действительно нужны интеграции.

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

Работает ли OData в файловой базе 1С?

Да, но только при публикации через веб-сервер. Файловая база без публикации недоступна по OData, поэтому на компьютере с базой нужно установить Apache или IIS и модули расширения веб-сервера 1С.

Можно ли через OData изменять данные, а не только читать?

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

Почему в браузере по адресу OData ошибка 404?

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

Как подключить данные 1С через OData в Excel?

В Excel выберите «Данные» → «Получить данные» → «Из других источников» → «Из OData», введите адрес вида http://сервер/ИмяПубликации/odata/standard.odata и учётные данные пользователя 1С. Далее выберите нужные сущности и загрузите их в книгу.

Безопасно ли открывать OData для доступа из интернета?

Только при соблюдении мер: HTTPS с действующим сертификатом, отдельный пользователь с минимальными правами, ограниченный состав объектов и желательно фильтрация по IP на веб-сервере. Без этих мер публиковать базу в открытый доступ не следует.

Что делать, если нужного поля нет в ответе OData?

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