Инструкция для администратора 1С
Шаги 1–5 занимают обычно несколько часов, если веб-сервер с модулем 1С уже настроен.
Шаг 1. Копия базы
Пилот проводим на копии: Конфигуратор → Администрирование → Выгрузить информационную базу (файл .dt) → создать новую информационную базу → Загрузить информационную базу. Для клиент-серверной базы подойдёт и копия средствами СУБД.
В копии должны быть данные за период сценария — например, последние 2–3 месяца.
Если в базе есть персональные данные, заранее договоримся, какие объекты публикуем. Копию можно обезличить (ФИО, телефоны, паспортные данные) — проверке логики учёта это не мешает.
Шаг 2. Веб-публикация со стандартным интерфейсом OData
Нужен веб-сервер IIS или Apache с модулем расширения веб-сервера 1С той же версии, что и платформа.
Конфигуратор, запущенный от имени администратора ОС: Администрирование → Публикация на веб-сервере → имя публикации (например, ai_pilot) → флажок «Публиковать стандартный интерфейс OData» → «Опубликовать».
То же командой webinst (Apache 2.4, клиент-серверная база):
webinst -publish -apache24 -wsdir ai_pilot -dir "/var/www/ai_pilot" -connstr "Srvr=server;Ref=ai_pilot;" -confpath "/etc/apache2/apache2.conf"
В файле публикации default.vrd должна появиться строка:
<standardOdata enable="true" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"/>
reuseSessions="autouse" переиспользует сеансы: каждый одновременный запрос OData занимает сеанс 1С, а значит, лицензию. Помощник по умолчанию держит не больше двух одновременных запросов.
Адрес интерфейса: https://<веб-сервер>/ai_pilot/odata/standard.odata. HTTPS рекомендуем; HTTP допустим только внутри доверенной сети или VPN — по согласованию.
Шаг 3. Состав объектов OData
После публикации через OData не доступно ничего: состав объектов задаётся в самой базе.
Типовые конфигурации на БСП (Бухгалтерия 3.0, УТ 11, КА 2, ERP 2): форма «Настройка стандартного интерфейса OData» в разделе администрирования — обычно Администрирование → Синхронизация данных; точное место зависит от версии.
Другие конфигурации (УПП 1.3, доработанные): внешняя обработка «Настройка стандартного интерфейса OData» с ИТС или короткий код, запущенный под администратором:
Код на встроенном языке (пример состава):
Состав = Новый Массив;
Состав.Добавить(Метаданные.Документы.РеализацияТоваровУслуг);
Состав.Добавить(Метаданные.Справочники.Контрагенты);
Состав.Добавить(Метаданные.Справочники.ДоговорыКонтрагентов);
УстановитьСоставСтандартногоИнтерфейсаOData(Состав);
Публикуйте только объекты из согласованного списка — и справочники, на которые они ссылаются (контрагенты, договоры, номенклатура, организации, подразделения), иначе вместо названий помощник увидит идентификаторы.
Регистры публикуются так же. Текущая версия читает их записи (движения); виртуальные таблицы остатков и оборотов пока не использует — если сценарий про остатки на дату, обсудим это на первом шаге.
Шаг 4. Пользователь только для чтения
Отдельный пользователь, например ai_reader, с аутентификацией 1С:Предприятия по паролю — помощник подключается по HTTP Basic, вход через ОС не подойдёт.
Права — только чтение опубликованных объектов: без добавления, изменения, удаления, проведения и административных прав. В конфигурациях на БСП — профиль групп доступа с ролями чтения нужных разделов; ограничения на уровне записей — по желанию.
Даже с более широкими правами помощник не отправит в 1С ничего, кроме GET-запросов. Пользователь только для чтения — вторая, независимая линия защиты.
Пароль передайте отдельно от адреса публикации — не в заявке и не в одном письме с адресом.
Шаг 5. Проверка в браузере
Откройте адрес ниже — браузер спросит логин и пароль 1С. Должен открыться XML с элементами EntityType.
Описание опубликованных объектов:
https://<веб-сервер>/ai_pilot/odata/standard.odata/$metadata
Пример данных: три контрагента:
https://<веб-сервер>/ai_pilot/odata/standard.odata/Catalog_Контрагенты?$top=3&$format=json
Пустой список — объекты не включены в состав (шаг 3); 401 — неверный логин или у пользователя нет пароля; 404 — публикация без OData.
Вопросы о пилоте
Нужно ли менять конфигурацию?
Нет. Публикация OData, состав объектов и пользователь — это настройка базы. Код из шага 3 запускается один раз как обработка и в конфигурацию не встраивается.
Можно ли сразу на рабочей базе?
Технически да — помощник только читает. Но пилот начинаем с копии: так проверка не зависит от нагрузки рабочей базы и прав доступа к реальным данным.
Что увидит модель?
Вопрос, описание опубликованных объектов и записи, которые помощник прочитал для ответа. Пароль, адрес публикации и ключи модель не получает.
У нас УПП или конфигурация на обычных формах — получится?
Стандартный интерфейс OData работает на платформе 8.3; конфигурации в режиме совместимости проверяем на копии. Если OData не подходит, обсудим другой штатный способ подключения.
Сколько сеансов 1С займёт помощник?
По умолчанию не больше двух одновременных запросов; с reuseSessions сеансы переиспользуются.