Администрирование · 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С, проверьте, что сайт отвечает
- 2Откройте конфигуратор под администратором и выберите «Администрирование» → «Публикация на веб-сервере»
- 3Задайте имя публикации латиницей и укажите каталог
- 4Отметьте флажок «Публиковать стандартный интерфейс OData» и нажмите «Опубликовать»
- 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 для построения отчётов.
Как проверить результат
XML со списком сущностей после ввода логина и пароля
Ошибка 404 — публикация не настроена или неверный URL
Возвращаются данные объекта
Ошибка доступа — объект не включён в настройку состава OData
Запрос логина и пароля, затем доступ
Ошибка 401 — неверные учётные данные или не настроена аутентификация веб-сервера
Типичные ошибки и их устранение
Самая частая проблема — ошибка 404 при обращении к OData. Причины: не установлен флажок публикации OData, после изменения настроек не перезапущен веб-сервер, либо в URL ошибка в имени публикации (регистр символов имеет значение). Проверьте файл default.vrd — в нём должна присутствовать секция OData.
Вторая группа ошибок связана с правами: запрос возвращает пустой результат или сообщение о недоступности объекта. Здесь проверяйте две вещи — включён ли объект в настройке состава OData и есть ли у пользователя права на него в конфигурации. Третья типичная ситуация — медленная работа при запросах больших таблиц: используйте параметры $filter, $select и $top, чтобы запрашивать только нужные поля и строки, а не выгружать таблицу целиком.
Ограничения и альтернативы
Стандартный интерфейс OData в 1С имеет ограничения. Он не поддерживает вызов произвольных методов конфигурации — доступны только операции с данными объектов. Проведение документов выполняется специальной операцией Post, но сложная бизнес-логика, требующая вызова процедур, через OData недоступна. Также стоит учитывать, что состав типов данных ограничен тем, что способен сериализовать протокол.
Если возможностей стандартного OData не хватает, альтернативы — HTTP-сервисы, создаваемые в конфигурации (полный контроль над логикой, но требуется разработка), расширение стандартного интерфейса OData через переопределение обработчиков, либо планы обмена для регулярной синхронизации между базами 1С. Для простой аналитики и выгрузок стандартный OData остаётся самым быстрым решением: он не требует ни одной строки кода.
Сравнение вариантов
Быстрое включение без разработки; подходит для чтения данных и простой записи. Ограничение — нельзя вызывать произвольную логику конфигурации
Полная свобода логики и форматов; требуется разработка и поддержка кода в конфигурации
Подходят для регулярной синхронизации между базами 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.