Стандартный интерфейс OData 1С включается без изменения конфигурации: базу публикуют на веб-сервере внутри сети, отмечают нужные объекты и заводят пользователя только на чтение. Инструкция для администратора 1С, займёт около 30 минут.
Подготовьте платформу и веб-сервер
Нужна платформа 1С:Предприятие 8.3 с компонентом «Модули расширения веб-сервера» и веб-сервер Apache 2.4 или IIS внутри сети. Разрядность модуля должна совпадать с разрядностью веб-сервера. Понадобятся права администратора в базе и на сервере.
Опубликуйте базу с OData
В Конфигураторе, запущенном от имени администратора Windows, откройте «Администрирование → Публикация на веб-сервере». Задайте имя публикации, например ut11, выберите веб-сервер, включите флажок «Публиковать стандартный интерфейс OData» и нажмите «Опубликовать». Перезапустите веб-сервер.
Если публикация уже есть, достаточно добавить в её файл default.vrd элемент:
<standardOdata enable="true" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"/>Параметр reuseSessions="autouse" включает переиспользование сеансов и снижает расход клиентских лицензий.
Выберите объекты для интерфейса
По умолчанию OData не отдаёт ни одного объекта. Откройте форму «Настройка стандартного интерфейса OData» в разделе «Администрирование» или через «Все функции → Обработки» и отметьте объекты:
Объект | Для чего |
|---|---|
| клиенты |
| товары и единицы |
| справочники |
| заказы клиентов |
| продажи |
| остатки |
Если в вашей конфигурации объект называется иначе, сообщите нам: соответствие настраивается на стороне шлюза, без доработки 1С.
Заведите пользователя только на чтение
Создайте отдельного пользователя, например svedun_readonly, со сложным паролем. Дайте ему право на доступ через стандартный интерфейс OData и только чтение объектов из списка выше. Никаких ролей с правами добавления, изменения, удаления или проведения. Пользователь с полными правами не подходит даже для проверки.
Проверьте, что данные читаются
С сервера, где будет стоять коннектор, запросите метаданные. Ожидается ответ 200 и XML с именами вида Catalog_...:
curl -u 'svedun_readonly:ПАРОЛЬ' 'http://srv-1c/ut11/odata/standard.odata/$metadata' -o metadata.xmlЗатем прочитайте одну запись любого справочника из списка:
curl -u 'svedun_readonly:ПАРОЛЬ' 'http://srv-1c/ut11/odata/standard.odata/Catalog_Склады?$top=1&$format=json'В PowerShell используйте curl.exe и одинарные кавычки, чтобы символ $ не подставлялся как переменная.
Как отключить доступ
Снимите флажок «Публиковать стандартный интерфейс OData» или поставьте enable="false" в default.vrd и перезапустите веб-сервер. Другой способ: заблокируйте пользователя svedun_readonly. При работе через коннектор достаточно остановить его службу.