Подключение базы 1С через OData
Публикация базы на веб-сервере, включение OData, отдельный пользователь с правами чтения, ввод адреса в Semantix, что читает коннектор и как разбирать типовые ошибки.
Semantix читает базу 1С через стандартный интерфейс OData, который есть в платформе 1С:Предприятие 8.3. Для подключения нужны опубликованная на веб-сервере база, включённый OData, отдельный пользователь и адрес публикации. Пошаговый вариант с ветвлениями есть в мастере Подключить 1С к Semantix.
Шаг 1. Публикация базы на веб-сервере
База публикуется на IIS (Windows) или Apache из конфигуратора («Администрирование», «Публикация на веб-сервере») либо утилитой webinst из каталога bin установленной платформы. В каталоге публикации появляется файл default.vrd с атрибутом ib (строка соединения) и web.config с обработчиком расширения веб-сервера нужной версии платформы.
Требования к публикации:
- разрядность модуля расширения веб-сервера совпадает с пулом приложений IIS;
- в одном пуле работает один модуль расширения одной версии платформы;
- для файловой базы группе IIS_IUSRS нужны чтение каталога
binи изменение каталога базы; - публикация доступна по HTTPS с действующим сертификатом, если Semantix обращается к ней извне локальной сети.
После обновления платформы публикации ломаются, потому что web.config продолжает указывать на модуль старой версии. Это первое, что стоит проверить при ошибке 500.
Если база работает в 1С:Фреш, веб-сервер не нужен: база уже опубликована провайдером, OData включается в настройках приложения, а адрес публикации выдаёт сервис.
Шаг 2. Включение OData
В default.vrd должен быть элемент <standardOdata enable="true" .../>. Затем в самой базе задаётся состав стандартного интерфейса OData: какие объекты публикуются. В конфигурациях на БСП это делается в разделе «Администрирование», «Синхронизация данных», «Настройки стандартного интерфейса OData», либо программно методом УстановитьСоставСтандартногоИнтерфейсаOData. Пока состав не задан, публикация отвечает кодом 200, но $metadata пустой.
Включите справочники, документы, планы счетов, регистры бухгалтерии и регистры сведений, которые нужны для ваших вопросов. Видимые через OData данные ограничены ролями пользователя, от имени которого идёт запрос.
Шаг 3. Пользователь 1С
Создайте в базе отдельного пользователя для Semantix со стандартной аутентификацией (логин и пароль) и правами только на чтение нужных объектов. В «Бухгалтерии» подходит поставляемый профиль «Бухгалтер» или отдельный профиль из ролей чтения. Для пользователя с ограничением по подразделениям часть данных будет недоступна. Полные права не нужны. Запись в базу коннектор выполняет только через отдельно включённые инструменты и после подтверждения в чате, поэтому права на запись выдаются осознанно и отдельно.
Внимание
Не используйте для коннектора учётную запись живого сотрудника. Отдельный пользователь позволяет отозвать доступ одним действием и видеть его обращения в журнале 1С.
Шаг 4. Подключение в Semantix
- Откройте «Настройки пользователя», раздел «Коннекторы», нажмите «Новый коннектор» и выберите 1С.
- Укажите название подключения и адрес публикации, например
https://host/buh/odata/standard.odata/. Если указать адрес публикации без хвоста/odata/standard.odata, Semantix добавит его сам. - Введите логин и пароль пользователя 1С. Используется Basic-аутентификация; если IIS настроен на Windows-аутентификацию, поддерживается NTLM. Секреты хранятся в зашифрованном виде с привязкой к организации.
- Нажмите «Проверить». Semantix запрашивает
$metadataи показывает найденные объекты. - Сохраните коннектор и откройте карточку: состояние должно быть «Активен».
После сохранения инструменты коннектора появляются у ассистентов и агентов организации. Если несколько баз (например, несколько компаний у бухгалтерской фирмы), каждая подключается как отдельная база внутри коннектора с собственным адресом и учётными данными.
Что читает коннектор
Коннектор работает по опубликованным метаданным конкретной базы, без привязки к организациям или настройкам конкретного клиента:
- справочники (
Catalog_…): контрагенты, договоры, номенклатура, организации; - документы (
Document_…): реализации, поступления, платёжные документы, с табличными частями; - план счетов (
ChartOfAccounts_…); - регистры бухгалтерии (
AccountingRegister_…): проводки, обороты и остатки через виртуальные таблицы; - регистры сведений (
InformationRegister_…).
Поверх сырых запросов доступны готовые инструменты: остатки по счетам на дату, расшифровка оборотов по счёту, контроль закрытия месяца, пропуски первичных документов, возможные дубли, повторяющиеся операции, карточка контрагента, схема сущности и произвольный OData-запрос с деревом фильтров. Ответы содержат точные суммы, посчитанные на стороне платформы, и ссылку на исходную базу и инструмент.
Лимит длины URL в IIS
IIS отклоняет строку запроса длиннее примерно 2048 байт (ошибка HTTP 404.15, в логах 1С она не видна). Один фильтр вида Ref_Key eq guid'…' в URL-кодировке занимает около 70 байт, поэтому Semantix отправляет фильтры по идентификаторам порциями по 20 штук и склеивает результат. На практике 25 документов ещё помещались в один запрос, 37 уже нет. Если вы сами пишете OData-запросы для проверки, держите это ограничение в уме.
Устранение неполадок
| Ответ | Вероятная причина | Что сделать |
|---|---|---|
200, пустой $metadata | Не задан состав OData | Настроить состав интерфейса OData в базе |
| 401 | Пользователь не создан, неверный пароль или выключена стандартная аутентификация | Проверить пользователя в конфигураторе |
| 404 | Нет публикации или неверный путь | Сверить имя публикации в IIS и адрес в коннекторе |
| 404.15 | Слишком длинная строка запроса | Сократить фильтр; Semantix делает это сам порциями по 20 |
| 500 | Разрядность или версия модуля расширения веб-сервера | Сверить пул приложений и web.config после обновления платформы |
| Долгие ответы, обрывы | Нет повторного использования сеансов | Настроить reuseSessions и размер пула в default.vrd, читать большие выборки постранично |
| Ошибка сертификата | Самоподписанный сертификат | Выпустить сертификат от доверенного центра |
Как бухгалтерия пользуется подключённой базой, показано на странице ИИ для 1С. Общее устройство коннекторов описано в статье Архитектура.
Спросить Сему