Чтение метаданных 1С через AI: дерево конфигурации и структура объектов

·
  • метаданные
  • 1c
  • конфигурация

Как читать метаданные 1С через AI: дерево конфигурации, структуру объектов, реквизиты и типы полей. Инструменты get_metadata_tree и get_object_structure по протоколу MCP.

Метаданные 1С это структура, которая описывает прикладные объекты конфигурации (справочники, документы, регистры, перечисления) и их подчинённые элементы: реквизиты, табличные части, измерения, ресурсы. В Конфигураторе эта структура видна как дерево конфигурации, и редактирование объектов метаданных выполняется только в режиме Конфигуратора. AI видит ту же структуру конфигурации 1С через MCP-1C и отвечает на вопросы по ней на естественном языке, без ручного обхода дерева.

Дерево конфигурации и структуру объектов читают два инструмента Открытой редакции; Расширенная и Профессиональная редакции добавляют сжатый обзор связей и полное досье объекта. Ниже что возвращает каждый инструмент и какие параметры он принимает.

Что отдаёт сервер

Сервер MCP-1C написан на Go, поставляется одним бинарником и работает по протоколу MCP через транспорт stdio. Совместимость с платформой: 1С версий 8.3.x и 8.5.x, коммерческие и учебные версии.

Транспорт stdio работает так: MCP-клиент запускает сервер как подпроцесс, сервер читает JSON-RPC сообщения из stdin и пишет ответы в stdout, сообщения разделяются переводом строки. В stdout сервер не пишет ничего, кроме валидных MCP-сообщений, логи идут в stderr. Никаких портов и HTTP поднимать не нужно.

Минимальная конфигурация запуска указывает путь к бинарнику и параметры подключения к базе:

{
  "mcpServers": {
    "mcp-1c": {
      "command": "/usr/local/bin/mcp-1c",
      "args": [
        "--base", "http://localhost:8080/hs/mcp-1c",
        "--user", "Администратор",
        "--password", ""
      ]
    }
  }
}

Флаг --base задаёт URL HTTP-сервиса 1С, опубликованного из вашей базы. Можно указать только URL (http://localhost:8080/hs/mcp-1c) или присвоить базе имя в формате имя=URL (например, acc=http://localhost:8080/hs/mcp-1c); для нескольких баз флаг повторяется. Параметры --user и --password это учётные данные пользователя того же HTTP-сервиса. Формат конфига выше это формат Claude Desktop. Для других MCP-клиентов структуру конфигурационного файла сверяйте по их официальной документации.

Дерево метаданных: get_metadata_tree

Инструмент get_metadata_tree (редакция Открытая) возвращает дерево метаданных конфигурации по категориям: справочники, документы, регистры, перечисления, обработки и так далее. Это первый вызов при работе с незнакомой конфигурацией.

Поведение зависит от параметра filter:

Вызов Что возвращает
без filter сводку: категории и количество объектов в каждой
с filter полный перечень объектов выбранной категории

Параметр filter необязательный. Примеры допустимых значений: Справочники, Документы, РегистрыНакопления, ОбщиеМодули. Полный список значений в нашей документации не зафиксирован исчерпывающе, ориентируйтесь на категории, которые вернула сводка.

На практике первый запрос в AI-клиенте выглядит так:

Покажи структуру конфигурации моей базы 1С

AI вызывает get_metadata_tree без фильтра, получает сводку по категориям и отвечает обзором. Дальше можно сузить:

Покажи все документы с реквизитом Организация

Структура объекта: get_object_structure

Когда нужен конкретный объект, работает get_object_structure (редакция Открытая). Он возвращает реквизиты, табличные части, измерения, ресурсы, значения перечисления и типы полей объекта метаданных. Это точные имена реквизитов, табличных частей и значений перечислений, пригодные для запросов и кода без угадывания.

Обязательных параметра два:

  1. object_type тип объекта: Catalog, Document, Enum, InformationRegister, AccumulationRegister и другие.
  2. object_name имя объекта.

Для типа Enum дополнительно возвращается список значений перечисления.

Эти два инструмента входят в Открытую редакцию: open source, лицензия MIT, всего в ней 9 инструментов. Она читает метаданные конфигурации без лицензии и не обращается к серверу лицензий.

Как это выглядит в платных редакциях

В платных редакциях чтение метаданных консолидировано в одном инструменте code_read с параметром action. Действия action: metadata_tree и action: object_structure помечены значком Открытая: это та же функциональность, что у отдельных инструментов Открытой редакции. Помимо них code_read добавляет действия module_code, context, resolve, get_xsd_schema и verify_xml.

Промежуточный вариант для лёгкого обзора метаданных объекта это code_read action: context (редакция Расширенная): сжатые метаданные объекта с кэшированием. Он отдаёт связанные объекты, регистры, модули и подписки на события.

Досье объекта: code_read action dossier

Самый полный способ прочитать метаданные одного объекта это code_read action: dossier (редакция Профессиональная). Один вызов собирает агрегированное досье:

  • структуру объекта;
  • где используется (used_by);
  • движения по регистрам (movements);
  • связанные объекты (related).

По сравнению с context досье богаче: дополнительно отдаёт значения перечислений и граф связей. Параметры:

Параметр Назначение
object_type + object_name обязательны
depth глубина графа связей, по умолчанию 1
sections подмножество секций: структура, used_by, movements, related
format markdown или json

Запрос на естественном языке, который опирается на досье и граф связей:

Найди все использования регистра ТоварыНаСкладах

Границы возможностей

Досье и графовые секции работают по выгрузке конфигурации, а не по живой базе. Это важная граница:

  1. Нужна выгрузка конфигурации (--dump).
  2. Для секций графа дополнительно нужен флаг --enable-depgraph.
  3. Если граф зависимостей недоступен, dossier возвращает только структуру объекта, это degraded-режим.

И отдельно про лицензию: dossier это премиум-функция Профессиональной редакции, она требует действующей лицензии и в Открытой редакции не работает. Если вам нужно только дерево конфигурации и структура объектов, этого достаточно в Открытой редакции. Досье, движения по регистрам и граф связей это уже Профессиональная редакция с выгрузкой конфигурации.

Что выбрать

Задача Инструмент Редакция
обзор всей конфигурации get_metadata_tree Открытая
реквизиты и типы полей объекта get_object_structure Открытая
сжатый обзор связей объекта code_read action: context Расширенная
полное досье с графом и движениями code_read action: dossier Профессиональная

Подробное описание инструментов и параметров собрано в документации, а разбивка возможностей по редакциям на странице цен.