Чтение метаданных 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 (редакция Открытая). Он возвращает реквизиты, табличные части, измерения, ресурсы, значения перечисления и типы полей объекта метаданных. Это точные имена реквизитов, табличных частей и значений перечислений, пригодные для запросов и кода без угадывания.
Обязательных параметра два:
object_typeтип объекта:Catalog,Document,Enum,InformationRegister,AccumulationRegisterи другие.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 |
Запрос на естественном языке, который опирается на досье и граф связей:
Найди все использования регистра ТоварыНаСкладах
Границы возможностей
Досье и графовые секции работают по выгрузке конфигурации, а не по живой базе. Это важная граница:
- Нужна выгрузка конфигурации (
--dump). - Для секций графа дополнительно нужен флаг
--enable-depgraph. - Если граф зависимостей недоступен,
dossierвозвращает только структуру объекта, это degraded-режим.
И отдельно про лицензию: dossier это премиум-функция Профессиональной редакции, она требует действующей лицензии и в Открытой редакции не работает. Если вам нужно только дерево конфигурации и структура объектов, этого достаточно в Открытой редакции. Досье, движения по регистрам и граф связей это уже Профессиональная редакция с выгрузкой конфигурации.
Что выбрать
| Задача | Инструмент | Редакция |
|---|---|---|
| обзор всей конфигурации | get_metadata_tree |
Открытая |
| реквизиты и типы полей объекта | get_object_structure |
Открытая |
| сжатый обзор связей объекта | code_read action: context |
Расширенная |
| полное досье с графом и движениями | code_read action: dossier |
Профессиональная |
Подробное описание инструментов и параметров собрано в документации, а разбивка возможностей по редакциям на странице цен.