Перенос данных между 1С и остальными системами компании чаще всего делается руками: выгрузка в Excel, правка, загрузка обратно. Hermes Agent — ИИ-агент, который устанавливается на ваш сервер и работает с 1С через стандартный REST-интерфейс (OData 3.0), — снимает с сотрудника именно эту часть: выгрузку, сверку, подготовку документов и регулярные отчёты. Ниже разобрано, что технически может 1С, как подключить к ней агента и где проходят границы безопасности.
Что такое Hermes Agent и почему его подключают к 1С
Hermes Agent — это self-hosted ИИ-агент с открытым исходным кодом (лицензия MIT) от Nous Research, который работает на вашем сервере или компьютере и выполняет задачи через языковую модель и набор инструментов: читает и создаёт файлы, запускает скрипты, обращается к внешним API, планирует работу по расписанию и хранит память между сессиями.
Для связки с 1С важны три его свойства:
Актуальная версия на момент публикации — v0.21.1 (2026.9.7). Документация — на hermes-agent.nousresearch.com/docs.
Отдельно стоит сказать: хотя в этой статье речь про 1С, тот же подход работает с любой учётной системой, у которой есть API — «МойСклад», «Мой Класс», SAP, самописная ERP. Разница только в том, какой именно интерфейс придётся описать агенту.
Как 1С отдаёт данные наружу: четыре способа
Понимание этих четырёх механизмов определяет, что вообще можно автоматизировать. Выбор способа — это выбор между скоростью запуска и устойчивостью к обновлениям.
| Способ | Когда брать | Что публикуется наружу |
|---|---|---|
| Стандартный интерфейс OData | Быстрый старт, типовые справочники и документы | Вся модель данных, доступная роли пользователя |
| HTTP-сервисы 1С (`/hs/`) | Конкретные операции: «принять заказ», «отдать остатки» | Один метод с узким контрактом |
| Планы обмена (EnterpriseData) | Массовые выгрузки по расписанию, обмен между узлами | Ничего, обмен внутри контура 1С |
| COM-соединение | Только Windows, работа внутри одного компьютера | — |
Что такое OData в 1С и с какой версии он работает
OData (Open Data Protocol) в 1С — это автоматически формируемый REST-интерфейс платформы, который позволяет читать и изменять данные информационной базы обычными HTTP-запросами и получать ответ в формате JSON или Atom/XML.
Платформа «1С:Предприятие 8» поддерживает OData начиная с версии 8.3.5. Это не отдельный модуль и не доработка — интерфейс генерируется платформой автоматически при публикации базы на веб-сервере, поэтому писать код на стороне 1С для базового обмена не требуется.
Схема подключения выглядит так:
протокол://хост/имя базы/odata/standard.odata, где протокол — http или https, хост — IP-адрес или доменное имя веб-сервера 1С, а имя базы — то, что было указано при публикации.Проверить, что всё заработало, можно прямо в браузере:
http://localhost/buh/odata/standard.odata/Catalog_Номенклатура?$format=json
Эта строка просит 1С отдать элементы справочника «Номенклатура» в формате JSON. Сервис потребует авторизацию — логин и пароль пользователя информационной базы.
Состав публикуемых объектов: главный подводный камень
Публикация базы на веб-сервере ещё не значит, что данные доступны. Состав объектов, которые отдаются через OData, задаётся отдельно — методом УстановитьСоставСтандартногоИнтерфейсаOData, которому передаётся массив объектов метаданных. Обратная функция — ПолучитьСоставСтандартногоИнтерфейсаOData — показывает, что включено сейчас. Оба метода работают только на сервере.
Типовая ситуация: в учебной базе справочники видны, а в «Бухгалтерии предприятия» запрос к Catalog_Контрагенты возвращает 404 и пустой список коллекций. Причина — состав OData в типовой конфигурации не заполнен. Лечится это одноразовой внешней обработкой, которая вызывает УстановитьСоставСтандартногоИнтерфейсаOData с нужным перечнем, после чего интерфейс начинает отдавать данные.
Практическое следствие: не открывайте OData «на всю конфигурацию». Ограничение состава — это не только безопасность, но и производительность: полная выгрузка крупного справочника через HTTP заметно нагружает рабочую базу.
Как устроены адреса объектов
Имена ресурсов собираются из префикса типа объекта и имени объекта конфигурации. Основные префиксы:
| Объект конфигурации | Префикс в URL |
|---|---|
| Справочник | `Catalog` |
| Документ | `Document` |
| Регистр сведений | `InformationRegister` |
| Регистр накопления | `AccumulationRegister` |
| Регистр бухгалтерии | `AccountingRegister` |
| Константа | `Constant` |
| План обмена | `ExchangePlan` |
| План счетов | `ChartOfAccounts` |
| Журнал документов | `DocumentJournal` |
| Бизнес-процесс | `BusinessProcess` |
| Задача | `Task` |
Дальше подключаются параметры запроса — тот же набор, что и в OData вообще:
$format=json — формат ответа (по умолчанию Atom/XML);$select — какие поля вернуть, экономит трафик и время;$filter — условие отбора: $filter=Price le 3.5 or Price gt 200, $filter=DeletionMark eq false;$orderby — сортировка;$top и $skip — постраничная выдача;$inlinecount — общее количество записей;$allowedOnly — вернуть только те объекты, которые не попадают под ограничения доступа к данным;$expand — раскрыть ссылочные поля (поддерживается с 8.3.9 и требует явного включения).Отбор по периоду для документов выглядит так:
http://localhost/zup/odata/standard.odata/Document_ВедомостьНаВыплатуЗарплатыВБанк?$format=json&$filter=Date ge datetime'2026-04-02T00:00:00' and Date le datetime'2026-04-02T23:59:59'
Виртуальные таблицы: остатки и обороты
Помимо «сырых» записей, OData умеет отдавать расчётные таблицы — через суффиксы к адресу регистра. Для регистра накопления, например ТоварыНаСкладах, обращение к остаткам идёт через суффикс Balance. В REST-интерфейсе платформы для регистров накопления и регистров бухгалтерии доступны получение остатков, оборотов, а также остатков и оборотов; для регистра сведений — срез первых и срез последних.
Это ключевой момент для практических сценариев: запрос «покажи остатки на складе на вчера» не требует выгрузки всех движений — 1С считает итоги сама.
Что ещё умеет REST-интерфейс, кроме чтения
Через тот же интерфейс выполняются операции создания, чтения, изменения и удаления: GET, POST, PATCH, PUT, DELETE. Платформа поддерживает и отдельные методы встроенного языка: проведение и отмену проведения документа, старт бизнес-процесса, выполнение задачи.
Важная оговорка: при чтении и записи через REST платформа выполняет все обычные проверки прав и вызывает обработчики событий — за исключением проверки заполнения. То есть подписаться на событие и не заметить, что данные поменялись «в обход» формы, не получится. Ошибки возвращаются HTTP-статусами 4XX (неверные действия клиента) и 5XX (ошибка сервера) с дополнительным внутренним кодом.
Что конкретно автоматизирует ИИ-агент в связке с 1С
Ниже — сценарии, которые реально работают через описанный интерфейс. Ни один из них не требует писать код на стороне 1С, кроме публикации базы и настройки состава OData.
1. Сверка и чистка номенклатуры
Классическая боль: один и тот же товар заведён в 1С двумя-тремя карточками, часть позиций без артикула, часть с артикулами из разных систем. Агент забирает справочник с нужными полями ($select=Ref_Key,Code,Description,Артикул,DeletionMark), группирует записи по похожим наименованиям, находит потенциальные дубли и отдаёт список на подтверждение. Удаление — только после вашего решения, и лучше через пометку удаления, а не «в лоб».
2. Сопоставление номенклатуры 1С с внешними каталогами
Если компания продаёт на маркетплейсах или в собственном интернет-магазине, соответствие «карточка в 1С → карточка на Ozon» ведётся обычно в таблице и постоянно разъезжается. Агент выгружает обе стороны, предлагает сопоставление по артикулу и названию, показывает неоднозначные пары отдельно.
3. Проверка контрагентов
Получить список контрагентов без ИНН или с незаполненными реквизитами: $filter=ИНН eq '' в связке с запросом остальных полей. Дальше — рутинный обход справочника, который человек делает раз в квартал и всегда откладывает.
4. Подготовка счетов по заявке
Агент читает заявку из почты или мессенджера, находит в 1С нужные позиции номенклатуры, подставляет цены и формирует документ. Ключевое правило: первый месяц — только черновик, проведение — после проверки человеком.
5. Остатки и сигналы по минимуму
Ежедневный запрос остатков по складу, сравнение с заданным минимумом и уведомление в мессенджер, если позиция уходит в ноль. Агент умеет молчать, когда ничего не произошло, — это снимает главный раздражитель автоматизации — «ещё одну бесполезную рассылку».
6. Регулярные сводки по продажам
Реализации за период, суммы по менеджерам, сравнение с прошлым периодом — данные забираются тем же способом и собираются в короткий текстовый отчёт или файл. Про то, как агент работает с таблицами, есть отдельный материал: Hermes Agent и Google Sheets: работа с таблицами и данными.
Как подключить Hermes Agent к 1С: два рабочих пути
Технически у агента два способа дотянуться до базы. Оба используют HTTP, оба настраиваются один раз.
Путь 1. Скрипт на Python + OData
Самый прозрачный вариант. Публикуете OData, пишете небольшой скрипт, который делает запрос и возвращает структурированный результат, и описываете агенту, что этот скрипт надо вызывать вот в такой ситуации.
Для Python уже есть готовые клиенты. Например, пакет python-1c-odata (лицензия MIT) — асинхронный клиент стандартного OData-интерфейса 1С 3.0: справочники, документы с проведением и отменой проведения, регистры, журналы, планы счетов, константы, планы обмена. Пакет покрывает версии платформы от 8.3.5 и выше, отдельно отмечая, что типовые OData-клиенты версии 4 обычно ломаются на литералах 1С вида guid'...' и datetime'...' и на виртуальных таблицах регистров.
Такой клиент избавляет агента от необходимости собирать URL вручную: он получает описанную операцию («остатки по складу на дату», «список контрагентов без ИНН») и вызывает её.
Путь 2. MCP-коннектор
MCP (Model Context Protocol) — это открытый протокол, который позволяет ИИ-агенту подключаться к внешним инструментам и источникам данных через унифицированный интерфейс, не требуя написания отдельного инструмента под каждую систему.
Для 1С MCP-серверы уже существуют. Есть, например, MCP-сервер метаданных конфигурации 1С: расширение добавляет в базу HTTP-сервис, а MCP-обёртка отдаёт агенту структуру объектов и умеет валидировать запросы на языке 1С. Аналогично подключает 1С к своим AI-агентам «Битрикс24»: в разделе MCP-подключений указывается адрес сервера вида https://[АдресВебСервера]/[ИмяБазы1С]/ru/, логин и пароль пользователя 1С, после чего сотрудник задаёт вопрос в чате и получает данные из базы.
Hermes Agent поддерживает MCP как с локальными stdio-серверами, так и с удалёнными HTTP-серверами — во втором случае в конфигурации указывается url и заголовки авторизации. Кроме того, у каждого MCP-сервера можно явно ограничить, какие инструменты агент вообще увидит: tools.include и tools.exclude принимают как точные имена, так и glob-шаблоны вроде *_dns_*. Для 1С это означает, что агенту можно выдать, например, только чтение справочников и запретить всё, что пишет в базу.
Разбор этого механизма — в статье MCP-протокол в Hermes: подключение внешних инструментов и сервисов.
Пошагово: от публикации базы до первой задачи
Catalog_Номенклатура?$format=json&$top=1 должен вернуть одну запись. Если 404 — состав OData пуст, если 401 — права пользователя.Безопасность: что обязательно проверить до запуска
Больше о разграничении доступа — в материале Безопасность AI-агента: как Hermes защищает данные и ограничивает доступ.
Ограничения и типовые ошибки
guid'...' и виртуальных таблицах.FAQ
Заменит ли Hermes Agent 1С или бухгалтера?
Нет. 1С остаётся системой учёта и источником истины, агент — надстройкой, которая забирает данные, готовит черновики и считает. Ответственность за проводки и отчётность остаётся за человеком и организацией.
Нужно ли уметь программировать, чтобы связать агента с 1С?
Для публикации базы и настройки состава OData достаточно администратора 1С. Для сценариев с готовым MCP-сервером или клиентской библиотекой вроде python-1c-odata программирование минимально — разовая настройка вызова. Если писать собственный HTTP-сервис в 1С, разработчик нужен.
Можно ли обойтись без OData?
Да. Второй путь — HTTP-сервисы 1С (/hs/): разработчик описывает метод под конкретную операцию, и наружу торчит только этот метод, а не модель данных. Контракт получается узким и версионируемым, безопасность выше, но старт дороже. Для массовых выгрузок по расписанию есть третий штатный механизм — планы обмена.
Дадут ли агенту право записи в базу 1С?
Технически — да, REST-интерфейс поддерживает создание, изменение и удаление объектов. Практически право записи выдаётся только после того, как агент месяц стабильно отработал в режиме чтения и подготовки черновиков, и, как правило, только по узкому кругу операций с обязательным аудит-следом.
Что будет, если структура конфигурации изменится после обновления 1С?
Часть запросов сломается — это нормальный риск любой интеграции, завязанной на реквизиты конкретной конфигурации. Снижается он двумя приёмами: узкий контракт (HTTP-сервис вместо прямого OData) и живое чтение метаданных через запрос $metadata, по которому агент сверяет доступные поля перед запросом.
Работает ли это с другими учётными системами?
Да, и это важнее, чем кажется. Любая система с документированным API подключается по той же схеме: агент вызывает интерфейс, получает структурированный ответ и дальше работает с ним. 1С в этой статье — просто самый распространённый в России пример.