Оформление
OData (1С)
Тип OData (1С) читает данные из публикации 1С по протоколу OData — например, из http://сервер/база/odata/standard.odata. В мастере он лежит в отдельной группе API.
Как подключить
Откройте Источники → Создать источник и выберите тип OData (1С) — он лежит в группе API.
На шаге Подключение заполните поля:
Поле Что указать Адрес сервиса Полный адрес публикации, например https://1c.company.ru/trade/odata/standard.odataТип авторизации «Логин и пароль» либо «Без авторизации» Пользователь, Пароль Учётные данные пользователя 1С с правом на чтение — только для авторизации логином Нажмите Проверить подключение: платформа обратится к публикации и скажет, отвечает ли она. Затем сохраните источник.
Ошибка подключения приходит без разбора
Если адрес недоступен — опечатка в домене, публикация не поднята, нет сети, — проверка отвечает уведомлением «Внутренняя ошибка сервера». Причину оно не называет, поэтому проверяйте адрес сами: он должен открываться в браузере с той же машины, где работает платформа, и заканчиваться путём публикации (/odata/standard.odata). У источников по JDBC такая же ошибка разбирается и называется прямо — здесь этого пока нет.

Полей «Хост», «Порт» и «Имя базы данных» у этого типа нет — адрес задаётся одной строкой.
То же запросом к API
Токен берётся входом — авторизация в API; $API — адрес установки с /api на конце.
bash
curl -s -X POST -H "Authorization: Bearer $T" -H "Content-Type: application/json" \
-d '{
"name": "1С: Управление торговлей",
"type": "odata",
"workspace_id": 5,
"settings": {
"endpoint": "https://1c.example.ru/trade/odata/standard.odata",
"auth_type": "basic",
"username": "odata_reader",
"password": "…"
}
}' \
"$API/data-source"Обязательные поля тела — name, type и settings; workspace_id указывает, в каком пространстве появится источник (без него берётся текущее). Внутри settings обязателен только endpoint — без него запрос отвечает 422 и текстом «Поле обязательно для данного типа источника». Пара username и password нужна лишь при auth_type: basic; у auth_type: none их можно не передавать.
Параметры
| Параметр | Что указать |
|---|---|
Адрес сервиса (endpoint) | Полный адрес сервиса целиком, вместе с путём и портом |
Тип авторизации (auth_type) | basic — логин и пароль, none — без авторизации |
| Пользователь, Пароль | Учётные данные пользователя 1С с правом на чтение |
Адрес задаётся одной строкой, а не парой «хост — порт — база»: публикация 1С доступна по произвольному пути и часто за обратным прокси, разложить такой адрес на части нельзя.
Как читаются данные
Состав данных платформа берёт из $metadata публикации: каждый набор сущностей становится объектом, доступным в датасете. Значит в списке объектов окажется ровно то, что 1С отдаёт по этому адресу: если нужной сущности нет, её сначала публикуют на стороне 1С — в составе объектов публикации OData. Данные читаются страницами по 1000 записей, на один HTTP-запрос отводится 60 секунд, а разобранное описание сущностей держится в памяти 10 минут — значения задаются при развёртывании, см. Кеши и лимиты.
Как обновляются данные
На источнике OData строится обычный датасет, но режимы обновления у него не все:
| Режим датасета | Работает ли |
|---|---|
| Прямой запрос | Да: платформа читает публикацию при каждом открытии виджета. Годится, когда данные нужны свежими, а объёмы небольшие |
| Извлечение, полная выгрузка | Да: набор сущностей выгружается целиком в витрину платформы по расписанию |
| Извлечение, инкрементальная выгрузка | Нет. Для OData платформа её не поддерживает, а в текущей версии любой запуск идёт полной выгрузкой, даже если стратегия выбрана — см. синхронизацию |
У публикации 1С платформа не отслеживает, какие записи изменились, и каждый раз забирает набор целиком. На больших справочниках это стоит учитывать при выборе расписания — синхронизация и ETL.
Дальше источник ведёт себя как остальные: содержимое смотрится в карточке (Просмотр данных и схемы), а строится на нём датасет.
Что дальше
- Датасеты — что делать с источником дальше.
- Решение проблем — если данные не читаются.