Files
llm/docs/1c-sql-protocol/objects/component-graph.md
T
2026-08-14 09:40:51 +03:00

3.5 KiB

Граф составляющих объекта конфигурации

Объект конфигурации — это корень, а не минимальная единица работы. Его составляющие: модуль объекта, формы и их модули, макеты, схема компоновки данных (СКД), а после декодирования СКД — наборы данных, запросы, поля, ресурсы и варианты. Для записи нужен адрес именно составляющей и доказанный физический носитель этой составляющей.

Публичная инвентаризация

metadata.object.components — read-only фасад над уже доказанными SQL декодерами. Он принимает обычный селектор владельца (ref либо kind и name, при необходимости extension) и возвращает граф:

  • корень metadata_object;
  • только реально найденные module, form, template и scd;
  • публичные path и read_selector каждого потомка;
  • unresolved для областей, которые не были подтверждены.

Метод не создаёт потомок потому, что он обычно есть у такого типа объекта. Например, пустой ответ metadata.object.modules у общей формы означает «модуль этим маршрутом не найден», а не повод назвать форму модулем.

Пример запроса:

{
  "method": "metadata.object.components",
  "payload": {
    "base_id": "upo_test",
    "extension": "test2",
    "ref": "Report.tt_Отчет",
    "include_storage": false
  }
}

read_selector можно передать следующему read-only методу. Это не является разрешением на запись: запись выбирает компонент по его path, повторно подтверждает конкретный carrier/stream и разрешается только для семейства контейнеров с доказанным byte-preserving кодеком.

Иерархия и кодеки

Логический BSL один и тот же независимо от владельца, но его физический носитель может различаться. Поэтому не нужны отдельные эвристики «для формы» и «для отчёта»: нужен реестр семейств carrier-кодеков. Один кодек применяется к нескольким типам объектов лишь после доказательства одинаковых границ, непрозрачных атомов и round-trip проверки.

Текущий пример: модуль общего формы в upo_test/test2 имеет доказанный write-кодек saved-state; обнаруженный поток модуля отчёта — только read-only structural codec. Второй компонент может быть найден и прочитан, но не получит разрешение на SQL-запись, пока его служебный хвост не будет декодирован.