Files
sfera/docs/1c-metadata-structure.md
T
2026-05-16 19:03:49 +03:00

412 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Структура объектов метаданных 1С для дерева SFERA
Дата фиксации: 2026-05-09.
Назначение документа: единая опорная модель для загрузчика метаданных из 1С и дерева SFERA IDE. Реальные объекты, имена и состав узлов должны приходить из выгрузки конфигурации 1С/SIR. В коде интерфейса допустимо хранить только типы объектов, правила группировки, иконки и шаблоны подчинённых узлов.
## Источники
- 1C:Enterprise 8.3.23 Developer Guide, "Configuration objects": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_1._General_concepts/1.3._Basic_concepts/1.3.2._Configuration_objects/
- 1C:Enterprise 8.3.23 Developer Guide, "The concept of configuration": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_1._General_concepts/1.3._Basic_concepts/1.3.1._The_concept_of__configuration_/
- 1C:Enterprise 8.3.23 Developer Guide, "Modules": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_1._General_concepts/1.3._Basic_concepts/1.3.5._Modules/
- 1C:Enterprise 8.3.23 Developer Guide, "Common attributes": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_5._Configuration_objects/5.3.__Common__configuration_branch/5.3.5._Common_attributes/
- 1C:Enterprise 8.3.23 Developer Guide, "Functional options": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_5._Configuration_objects/5.3.__Common__configuration_branch/5.3.10._Functional_options_and_functional_option_parameters/
- 1C:Enterprise 8.3.23 Developer Guide, "Commands": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_6._Command_interface/6.2._Global_command_interface_structure/6.2.2._Commands/
- 1C:Enterprise 8.3.23 Developer Guide, "Templates": https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_1._General_concepts/1.3._Basic_concepts/1.3.6._Templates/
Отдельной публичной документации `1C:Enterprise 8.5 Developer Guide` на kb.1ci.com при проверке не найдено. До появления официальной ветки 8.5 используем модель 8.3 как базовую и оставляем место под версионные отличия.
## Принципы дерева
1. В Designer/Конфигураторе типы объектов метаданных сгруппированы в дереве конфигурации.
2. Объект метаданных описывает структуру и поведение, но не хранит конкретные пользовательские данные.
3. Внутри объектов есть подчинённые объекты: реквизиты, табличные части, формы, команды, макеты, модули, измерения, ресурсы, права и т.д.
4. SFERA не должна создавать плоский список. Дерево строится по типу объекта и подчинённым коллекциям.
5. Узел `Задачи 1С` внутри конфигуратора является типом метаданных 1С. Узел `Задачи` верхнего уровня SFERA является системой разработки.
## Корневые ветки конфигурации
```text
Конфигурация
├── Общие
├── Константы
├── Справочники
├── Документы
├── Журналы документов
├── Перечисления
├── Отчеты
├── Обработки
├── Планы видов характеристик
├── Планы счетов
├── Планы видов расчета
├── Регистры сведений
├── Регистры накопления
├── Регистры бухгалтерии
├── Регистры расчета
├── Бизнес-процессы
├── Задачи
├── Внешние источники данных
└── Расширения конфигурации
```
## Ветка "Общие"
```text
Общие
├── Подсистемы
├── Общие модули
├── Параметры сеанса
├── Роли
├── Общие реквизиты
├── Планы обмена
├── Критерии отбора
├── Подписки на события
├── Регламентные задания
├── Функциональные опции
├── Параметры функциональных опций
├── Определяемые типы
├── Хранилища настроек
├── Общие команды
├── Группы команд
├── Общие формы
├── Общие макеты
├── Общие картинки
├── XDTO-пакеты
├── Web-сервисы
├── HTTP-сервисы
├── WS-ссылки
├── WebSocket-клиенты
├── Сервисы интеграции
├── Цвета палитры
├── Элементы стиля
├── Стили
└── Языки
```
## Шаблоны подчинённых узлов
### Справочник
```text
Справочники
└── <ИмяСправочника>
├── Реквизиты
├── Табличные части
│ └── <ИмяТабличнойЧасти>
│ ├── Реквизиты
│ └── Индексы
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
├── Права
├── Предопределенные данные
└── SFERA: Версии / Проверки / Инциденты / Знания
```
### Документ
```text
Документы
└── <ИмяДокумента>
├── Реквизиты
├── Табличные части
│ └── <ИмяТабличнойЧасти>
│ ├── Реквизиты
│ └── Индексы
├── Формы
├── Команды
├── Макеты
├── Движения
│ ├── Регистры сведений
│ ├── Регистры накопления
│ ├── Регистры бухгалтерии
│ └── Регистры расчета
├── Последовательности
├── Нумераторы
├── Модуль объекта
├── Модуль менеджера
├── Права
└── SFERA: Версии / Проверки / Инциденты / Знания
```
### Журнал документов
```text
Журналы документов
└── <ИмяЖурнала>
├── Графы
├── Формы
├── Команды
├── Макеты
├── Модуль менеджера
└── Права
```
### Перечисление
```text
Перечисления
└── <ИмяПеречисления>
├── Значения
├── Формы
├── Команды
├── Макеты
├── Модуль менеджера
└── Права
```
### Отчет
```text
Отчеты
└── <ИмяОтчета>
├── СКД
│ ├── Наборы данных
│ ├── Запросы
│ ├── Поля
│ ├── Ресурсы
│ ├── Группировки
│ ├── Отборы
│ └── Варианты
├── Реквизиты
├── Табличные части
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
└── Права
```
### Обработка
```text
Обработки
└── <ИмяОбработки>
├── Реквизиты
├── Табличные части
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
└── Права
```
### План видов характеристик
```text
Планы видов характеристик
└── <ИмяПВХ>
├── Реквизиты
├── Табличные части
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
├── Предопределенные данные
└── Права
```
### План счетов
```text
Планы счетов
└── <ИмяПланаСчетов>
├── Признаки учета
├── Признаки учета субконто
├── Табличные части
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
├── Предопределенные данные
└── Права
```
### План видов расчета
```text
Планы видов расчета
└── <ИмяПВР>
├── Реквизиты
├── Табличные части
├── Вытесняющие виды расчета
├── Ведущие виды расчета
├── Базовые виды расчета
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
└── Права
```
### Регистр сведений
```text
Регистры сведений
└── <ИмяРегистра>
├── Измерения
├── Ресурсы
├── Реквизиты
├── Формы
├── Команды
├── Макеты
├── Модуль набора записей
├── Модуль менеджера
├── Кто пишет
├── Кто читает
└── Права
```
### Регистр накопления
```text
Регистры накопления
└── <ИмяРегистра>
├── Измерения
├── Ресурсы
├── Реквизиты
├── Формы
├── Команды
├── Макеты
├── Модуль набора записей
├── Модуль менеджера
├── Кто пишет
├── Кто читает
└── Права
```
### Регистр бухгалтерии
```text
Регистры бухгалтерии
└── <ИмяРегистра>
├── Измерения
├── Ресурсы
├── Реквизиты
├── Признаки учета
├── Признаки учета субконто
├── Формы
├── Команды
├── Макеты
├── Модуль набора записей
├── Модуль менеджера
└── Права
```
### Регистр расчета
```text
Регистры расчета
└── <ИмяРегистра>
├── Измерения
├── Ресурсы
├── Реквизиты
├── Перерасчеты
├── Формы
├── Команды
├── Макеты
├── Модуль набора записей
├── Модуль менеджера
└── Права
```
### Бизнес-процесс
```text
Бизнес-процессы
└── <ИмяБизнесПроцесса>
├── Реквизиты
├── Табличные части
├── Карта маршрута
├── Точки маршрута
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
└── Права
```
### Задача 1С
```text
Задачи
└── <ИмяЗадачи>
├── Реквизиты
├── Табличные части
├── Адресация
├── Формы
├── Команды
├── Макеты
├── Модуль объекта
├── Модуль менеджера
└── Права
```
### Внешний источник данных
```text
Внешние источники данных
└── <ИмяИсточника>
├── Таблицы
│ └── <ИмяТаблицы>
│ └── Поля
├── Кубы
├── Функции
├── Формы
├── Команды
└── Макеты
```
## Универсальные подчинённые узлы
Эти узлы могут встречаться у разных типов объектов. Загрузчик должен брать фактический состав из 1С, а не создавать все узлы всегда.
- `Реквизиты`
- `Табличные части`
- `Формы`
- `Команды`
- `Макеты`
- `Модуль объекта`
- `Модуль менеджера`
- `Модуль набора записей`
- `Права`
- `Предопределенные данные`
- `Измерения`
- `Ресурсы`
- `Графы`
- `Значения`
- `Перерасчеты`
- `Движения`
- `Адресация`
- `СКД`
- `URL-шаблоны`
- `Методы`
- `Контракты`
- `Обработчики`
## Правило для SFERA
Загрузчик метаданных должен сохранять:
- `metadata_type`: тип объекта 1С;
- `name`: имя объекта из конфигурации;
- `synonym`: синоним;
- `qualified_name`: полное имя вида `Документ.Имя`, `Справочник.Имя.Форма.ФормаЭлемента`;
- `parent`: родительский узел;
- `children`: подчинённые коллекции;
- `module_kind`: тип модуля, если узел является модулем;
- `rights`: права/ограничения доступа;
- `extension_origin`: основная конфигурация или расширение;
- `version_origin`: снимок/версия/задача;
- `sfera_overlays`: проверки, инциденты, знания, владельцы, runtime-события.
UI-дерево обязано строиться из этой структуры. Любые демонстрационные имена объектов должны быть заменены данными из SIR после подключения реального загрузчика.