# Структура метаданных конфигурации 1С Этот документ задаёт модель, которой должны следовать агенты и публичные ответы SQL-адаптера. Он описывает семантические метаданные, а не физические имена SQL-записей, пути контейнеров или номера потоков. ## Главное правило У конфигурации нет единого шаблона дочерних узлов для всех классов объектов. Набор узлов определяется классом объекта и подтверждается двумя источниками: 1. документацией платформы 1С для соответствующего класса; 2. живым чтением выбранного объекта через адаптер. Не добавляйте в ответ ни табличную часть, ни форму, ни модуль только потому, что они есть у другого объекта. Если живой декодер не подтвердил конкретный дочерний объект, верните явный неполный результат, а не пустой вымышленный узел. ## Связь объекта и формы Форма — самостоятельный объект метаданных, на который владелец ссылается в своей коллекции `Формы`. В кратком описании владельца возвращается только ссылка/идентичность формы: имя, GUID и доступный публичный селектор. Полное описание формы читается отдельным запросом. ```text Отчет └─ Формы └─ <ссылка на Форму> Форма ├─ Реквизиты ├─ Параметры ├─ Команды ├─ Модуль формы └─ Элементы ``` Параметры формы не являются её реквизитами. Это декларация параметризации при открытии формы. Команда формы не имеет отдельного модуля: её имя обработчика является свойством команды и разрешается в модуле формы. Аналогично имя обработчика события элемента — свойство элемента, а не дочерний узел дерева. Подчинённая команда владельца (`Отчет.Команды.<Имя>`) отличается от команды формы. Если документация и живая база подтверждают модуль команды, его надо сообщать как свойство этой команды, не выдавая за форму или за модуль формы. ## Отчёт Официальная методическая документация 1С подтверждает, что отчёт может иметь реквизиты и табличные части. Табличная часть, в свою очередь, имеет реквизиты. Для отчёта допустима следующая *классовая* схема; конкретные экземпляры показываются только после живого чтения: ```text Отчет ├─ Реквизиты ├─ Табличные части │ └─ Реквизиты табличной части ├─ Формы → отдельные описания Форм ├─ Команды ├─ Макеты ├─ Модуль объекта └─ Модуль менеджера ``` СКД — это тип/содержимое макета, а не обязательная отдельная ветвь любого отчёта. Не создавайте узел СКД, если в живом объекте не подтверждён соответствующий макет. ## Публичные маршруты адаптера Для объекта `Отчет.<Имя>` адаптер использует следующие раздельные операции: 1. `metadata.object.forms` — читает подтверждённые ссылки отчёта на формы; возвращаемые строки содержат идентичность формы, а не её элементы, реквизиты, параметры или текст модуля. 2. `metadata.object.form.details` — по владельцу и имени формы получает развёрнутое описание формы. 3. `metadata.form.decode` — декодирует одну конкретную форму и возвращает её параметры, реквизиты, элементы, команды, события и сводку встроенного модуля. Передавайте `configuration_view=effective_working` либо не передавайте view: MCP установит этот режим сам. Он означает логическую рабочую конфигурацию с учётом базовой конфигурации, сохранённых изменений и расширений; он не разрешает агенту выбирать `ConfigSave` или `ConfigCASSave`. Таким образом, ссылка `Отчет → Форма` не должна заменяться копией описания формы внутри объекта отчёта. Агрегированный `metadata.object.full` удобен для обзора, но для работы с формой агент обязан сохранять её отдельный публичный селектор и при необходимости вызвать один из двух form-методов выше. Текущая реализация подтверждает маршрут для `Report`: в `RELATED_SECTION_RULES` форма имеет категорию `Form`, а `metadata.object.forms` возвращает только `guid`, `name`, `synonyms` и счётчики частей. Детали добавляет только `metadata.object.form.details` через отдельный вызов `metadata.form.decode`. ## Источники - [Иерархия объектов конфигурации и подчинённые объекты — 1С:EDT](https://its.1c.ru/db/content/edtdoc/src/topics/i030.html) - [Отчёты, реквизиты и табличные части — методическая поддержка 1С](https://its.1c.ru/db/content/metod8dev/src/platform81/startersdev/i8102579.htm) - [Формы: реквизиты, параметры, команды и модуль — руководство разработчика 1С](https://its.1c.ru/db/v8310doc/bookmark/dev/TI000000391) - [Явное объявление параметров формы — стандарт 1С](https://its.1c.ru/db/content/v8std/src/1%C2%A0200/700/i8100741.htm) ## Проверка перед изменением Перед тем как менять форму или модуль, агент обязан выполнить публичное чтение владельца, затем получить форму её собственным селектором. Отсутствие SQL-подключения, нераспознанный контейнер или неоднозначная связь — это `unresolved`/`protocol_incomplete`, а не разрешение достроить структуру по документации. `metadata.form.decode` с `view=structure` возвращает компактные доказанные факты по статическим элементам. Пока SQL-кодек логического родителя не доказан, поля `parent` и `children` имеют статус `unresolved`; нельзя строить их из технической глубины или пути сериализованного контейнера. Запросы `runtime.form.elements.inspect` и `runtime.form.inspect` возвращают `runtime_inspection_unsupported`. SQL-адаптер не открывает формы, не запускает обработчики и не выдаёт созданные СКД во время работы элементы за статические метаданные.