Перейти к содержимому
openbook.
Публикация OData Оферта Конфиденциальность
На главную

Как опубликовать 1С по OData

Инструкция для администратора 1С. Делается один раз на базу.

Что нужно получить в итоге

Openbook читает вашу базу только на чтение, через стандартный интерфейс OData, который есть в платформе 1С. Для этого нужны три вещи:

  • база опубликована на веб-сервере по HTTPS с включённым стандартным интерфейсом OData (адрес /odata/standard.odata);
  • в интерфейс включены нужные объекты (по умолчанию интерфейс пуст);
  • заведён отдельный пользователь только на чтение, например OPENBOOK_MCP.

Если вы не администратор 1С, отправьте эту страницу тому, кто им является. В тарифе «Для компании» помощь с публикацией входит: напишите нам, и мы подскажем по вашей конфигурации.

1. Что понадобится

  • Платформа 1С:Предприятие 8.3.5 или новее и установленный компонент «Модули расширения веб-сервера».
  • Веб-сервер с уже настроенным HTTPS: IIS на Windows или Apache 2.4 на Linux.
  • Права администратора операционной системы. Конфигуратор для публикации запускают «от имени администратора».

macOS. Платформа 1С не умеет публиковать базы на macOS. Публикуйте на сервере с Windows или Linux, а Openbook подключайте к готовому адресу.

2. Опубликуйте базу

Подойдёт любой из двух способов.

Способ А. Из Конфигуратора

  1. Откройте базу в Конфигураторе, запущенном от имени администратора.
  2. В меню Администрирование выберите Публикация на веб-сервере…
  3. Укажите имя публикации (латиницей: буквы, цифры, _ или -, не более 40 символов, начинается с буквы), веб-сервер и каталог публикации.
  4. Поставьте флажок «Публиковать стандартный интерфейс OData» и нажмите «Опубликовать».
  5. Для Apache после публикации перезапустите службу веб-сервера. Перезапуск закроет текущие сеансы этой публикации, поэтому делайте его вне рабочих часов.

Способ Б. Командой webinst

Утилита webinst входит в платформу: на Windows она лежит в C:\Program Files\1cv8\<версия>\bin\webinst.exe, на Linux — в /opt/1cv8/x86_64/<версия>/webinst. Запускайте её с правами администратора.

  1. Создайте новый пустой каталог публикации. Не используйте каталог, где уже есть default.vrd: файл действующей публикации нельзя перезаписывать.
  2. Положите в него файл default.vrd с таким содержимым. В строке соединения не должно быть логина и пароля (Usr=, Pwd=):
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" base="/buh" ib="<строка соединения с базой>">
  <standardOData enable="true" reuseSessions="autouse" sessionMaxAge="20"/>
</point>
  1. Выполните публикацию. Для IIS:
webinst -publish -iis -wsdir buh -dir "<каталог публикации>" -connstr "<строка соединения с базой>" -descriptor "<каталог публикации>\default.vrd"

Для Apache 2.4 замените -iis на -apache24 и добавьте -confpath "<путь к httpd.conf>". Здесь buh — имя публикации; оно станет частью адреса.

3. Включите объекты в интерфейс OData

Включить стандартный интерфейс и выбрать объекты — разные действия. Публикация включает OData, а состав объектов сохраняется внутри самой базы. Пока состав не задан, по адресу /odata/standard.odata/ вы увидите почти пустой список.

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

// Выполните один раз под администратором базы, в режиме «1С:Предприятие».
Объекты = Новый Массив;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("РегистрБухгалтерии.Типовой"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("ПланСчетов.Типовой"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.Контрагенты"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.Организации"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.ДоговорыКонтрагентов"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.Кассы"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.Валюты"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.Номенклатура"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.Склады"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.ОсновныеСредства"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Справочник.КлассификаторЕдиницИзмерения"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("РегистрСведений.КурсыВалют"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("РегистрСведений.РасчетПереоценкиВалютныхСредств"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.ЗакрытиеМесяца"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.ОперацияБух"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.ПлатежноеПоручениеВходящее"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.ПлатежноеПоручениеИсходящее"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.ПриходныйКассовыйОрдер"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.РасходныйКассовыйОрдер"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.ПоступлениеТоваровУслуг"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени("Документ.РеализацияТоваровУслуг"); Если ОбъектМетаданных <> Неопределено Тогда Объекты.Добавить(ОбъектМетаданных); КонецЕсли;
УстановитьСоставСтандартногоИнтерфейсаOData(Объекты);
Сообщить("Состав OData сохранён: " + Объекты.Количество());
  • Объект, которого нет в вашей конфигурации, скрипт пропускает.
  • Процедура замещает состав целиком. Если базой уже пользуются другие интеграции, сначала получите текущий список функцией ПолучитьСоставСтандартногоИнтерфейсаOData() и добавьте к нему объекты из скрипта.
  • Не добавляйте физических лиц, сотрудников, кадровые и зарплатные объекты: Openbook их не читает ни при каких настройках.

4. Создайте пользователя только на чтение

  1. Создайте в базе отдельного пользователя, например OPENBOOK_MCP, с аутентификацией «1С:Предприятие» и паролем. Не используйте администратора и не используйте учётную запись сотрудника.
  2. Дайте ему роль только на чтение объектов из списка выше: регистр бухгалтерии и план счетов, продажи и закупки, банковские документы, номенклатура и склады, контрагенты и организации.
  3. Запретите запись, проведение и удаление, административный доступ и конфигурирование, а также справочники физических лиц и сотрудников, начисление зарплаты и кадровые документы, банковские счета сотрудников и личные контакты.

Права этого пользователя действуют и внутри OData: чего у него нет, того Openbook не увидит. Подключение по OData занимает клиентскую лицензию 1С, как обычный сеанс.

5. HTTPS обязателен

Логин и пароль 1С передаются на ваш веб-сервер в каждом запросе, поэтому публикация должна быть доступна только по HTTPS с действующим сертификатом. Openbook подключается по https://; обычный http:// допускается лишь как явно разрешённое исключение для теста в доверенной сети.

Если Openbook установлен на другом компьютере, чем веб-сервер 1С, ограничьте доступ к публикации по адресам на уровне IIS или обратного прокси.

6. Проверьте адрес

  1. Откройте в браузере https://<сервер>/<имя публикации>/odata/standard.odata/ и войдите пользователем OPENBOOK_MCP. Должен прийти XML со списком коллекций.
  2. В Openbook, на странице подключения, которую открывает ваш AI по просьбе «подключи Openbook», укажите адрес без /odata/standard.odata: https://<сервер>/<имя публикации>. Окончание коннектор добавит сам.
  3. Перед сохранением Openbook прочитает одну строку справочника Catalog_Контрагенты. Если чтение не удалось, подключение не сохранится, а страница скажет, что именно не так.
Что видноВероятная причина
Пустой список коллекцийНе задан состав интерфейса (раздел 3).
401Неверный пользователь или пароль, либо у пользователя нет прав на объекты.
404 на всём корнеПубликация не создана или каталог публикации не существует. Опубликуйте от имени администратора.
500 при первом запросеДля IIS: в пуле приложений не разрешены 32-разрядные приложения, а модуль расширения 1С 32-битный.
Объект есть, а данных нетУ пользователя нет прав на чтение этого объекта.

Нужна помощь?

В тарифе «Для компании» помощь с публикацией и настройкой входит в стоимость. Напишите нам через контакты внизу страницы: расскажите, где стоит база (сервер, облако, свой компьютер) и какая у вас конфигурация.

Вернуться на главную или выбрать тариф.

openbook.

© 2026 ИП Bloom Consulting, ИИН

Оферта Политика конфиденциальности