mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 09:09:41 +03:00
Add SKD group to README, create skd-guide.md
- README: add СКД row to skills table, specs section, directory tree - docs/skd-guide.md: usage guide with workflow, DSL examples, scenarios Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
| Табличный документ (MXL) | 4 навыка `/mxl-*` | Анализ, создание, компиляция макетов печатных форм | [Подробнее](docs/mxl-guide.md) |
|
| Табличный документ (MXL) | 4 навыка `/mxl-*` | Анализ, создание, компиляция макетов печатных форм | [Подробнее](docs/mxl-guide.md) |
|
||||||
| Управляемые формы (Form) | 6 навыков `/form-*` | Создание, анализ, генерация, модификация, валидация управляемых форм | [Подробнее](docs/form-guide.md) |
|
| Управляемые формы (Form) | 6 навыков `/form-*` | Создание, анализ, генерация, модификация, валидация управляемых форм | [Подробнее](docs/form-guide.md) |
|
||||||
| Роли (Role) | 3 навыка `/role-*` | Анализ прав роли, создание из JSON DSL, валидация | [Подробнее](docs/role-guide.md) |
|
| Роли (Role) | 3 навыка `/role-*` | Анализ прав роли, создание из JSON DSL, валидация | [Подробнее](docs/role-guide.md) |
|
||||||
|
| Схема компоновки (СКД) | 3 навыка `/skd-*` | Анализ, генерация из JSON DSL, валидация схем компоновки данных | [Подробнее](docs/skd-guide.md) |
|
||||||
| Утилиты | `/img-grid` | Наложение сетки на изображение для определения пропорций колонок | — |
|
| Утилиты | `/img-grid` | Наложение сетки на изображение для определения пропорций колонок | — |
|
||||||
|
|
||||||
## Требования
|
## Требования
|
||||||
@@ -41,6 +42,8 @@
|
|||||||
- [Form DSL](docs/form-dsl-spec.md) — JSON-формат описания формы для `/form-compile`
|
- [Form DSL](docs/form-dsl-spec.md) — JSON-формат описания формы для `/form-compile`
|
||||||
- [Роли (Rights.xml)](docs/1c-role-spec.md) — XML-формат прав роли, типы объектов, RLS
|
- [Роли (Rights.xml)](docs/1c-role-spec.md) — XML-формат прав роли, типы объектов, RLS
|
||||||
- [Role DSL](docs/role-dsl-spec.md) — JSON-формат описания ролей для `/role-compile`
|
- [Role DSL](docs/role-dsl-spec.md) — JSON-формат описания ролей для `/role-compile`
|
||||||
|
- [Схема компоновки данных (DCS)](docs/1c-dcs-spec.md) — XML-формат DataCompositionSchema, 930 схем проанализировано
|
||||||
|
- [SKD DSL](docs/skd-dsl-spec.md) — JSON-формат описания СКД для `/skd-compile`
|
||||||
|
|
||||||
## Структура репозитория
|
## Структура репозитория
|
||||||
|
|
||||||
@@ -69,12 +72,16 @@
|
|||||||
├── role-info/ # Анализ прав роли
|
├── role-info/ # Анализ прав роли
|
||||||
├── role-compile/ # Создание роли из JSON DSL
|
├── role-compile/ # Создание роли из JSON DSL
|
||||||
├── role-validate/ # Валидация роли
|
├── role-validate/ # Валидация роли
|
||||||
|
├── skd-info/ # Анализ схемы компоновки данных
|
||||||
|
├── skd-compile/ # Компиляция СКД из JSON DSL
|
||||||
|
├── skd-validate/ # Валидация СКД
|
||||||
└── img-grid/ # Сетка для анализа изображений
|
└── img-grid/ # Сетка для анализа изображений
|
||||||
docs/
|
docs/
|
||||||
├── epf-guide.md # Гайд: внешние обработки
|
├── epf-guide.md # Гайд: внешние обработки
|
||||||
├── mxl-guide.md # Гайд: табличный документ
|
├── mxl-guide.md # Гайд: табличный документ
|
||||||
├── form-guide.md # Гайд: управляемые формы
|
├── form-guide.md # Гайд: управляемые формы
|
||||||
├── role-guide.md # Гайд: роли
|
├── role-guide.md # Гайд: роли
|
||||||
|
├── skd-guide.md # Гайд: схема компоновки данных
|
||||||
├── 1c-xml-format-spec.md # Спецификация XML-формата
|
├── 1c-xml-format-spec.md # Спецификация XML-формата
|
||||||
├── 1c-form-spec.md # Спецификация управляемых форм
|
├── 1c-form-spec.md # Спецификация управляемых форм
|
||||||
├── 1c-help-spec.md # Спецификация встроенной справки
|
├── 1c-help-spec.md # Спецификация встроенной справки
|
||||||
@@ -82,5 +89,8 @@ docs/
|
|||||||
├── 1c-spreadsheet-spec.md # Спецификация табличного документа
|
├── 1c-spreadsheet-spec.md # Спецификация табличного документа
|
||||||
├── mxl-dsl-spec.md # Спецификация MXL DSL
|
├── mxl-dsl-spec.md # Спецификация MXL DSL
|
||||||
├── form-dsl-spec.md # Спецификация Form DSL
|
├── form-dsl-spec.md # Спецификация Form DSL
|
||||||
└── 1c-role-spec.md # Спецификация ролей (Rights.xml)
|
├── 1c-role-spec.md # Спецификация ролей (Rights.xml)
|
||||||
|
├── 1c-dcs-spec.md # Спецификация СКД (DataCompositionSchema)
|
||||||
|
├── skd-dsl-spec.md # Спецификация SKD DSL
|
||||||
|
└── role-dsl-spec.md # Спецификация Role DSL
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -0,0 +1,155 @@
|
|||||||
|
# Схема компоновки данных (СКД)
|
||||||
|
|
||||||
|
Навыки группы `/skd-*` позволяют анализировать, создавать и проверять схемы компоновки данных 1С — XML-файлы DataCompositionSchema (Template.xml).
|
||||||
|
|
||||||
|
## Навыки
|
||||||
|
|
||||||
|
| Навык | Параметры | Описание |
|
||||||
|
|-------|-----------|----------|
|
||||||
|
| `/skd-info` | `<TemplatePath> [-Mode] [-Name]` | Анализ структуры СКД: наборы, поля, параметры, ресурсы, варианты (10 режимов) |
|
||||||
|
| `/skd-compile` | `<JsonPath> <OutputPath>` | Генерация Template.xml из JSON DSL: наборы, поля, итоги, параметры, варианты |
|
||||||
|
| `/skd-validate` | `<TemplatePath> [-MaxErrors 20]` | Валидация структурной корректности: ~30 проверок |
|
||||||
|
|
||||||
|
## Рабочий цикл
|
||||||
|
|
||||||
|
```
|
||||||
|
Описание отчёта (текст) → JSON DSL → /skd-compile → Template.xml → /skd-validate
|
||||||
|
→ /skd-info
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Claude формирует JSON-определение СКД (shorthand-поля, параметры, итоги, варианты)
|
||||||
|
2. `/skd-compile` генерирует Template.xml с корректными namespace, типами, группировками
|
||||||
|
3. `/skd-validate` проверяет корректность сгенерированного XML
|
||||||
|
4. `/skd-info` выводит компактную сводку для визуальной проверки
|
||||||
|
|
||||||
|
## JSON DSL — компактный формат
|
||||||
|
|
||||||
|
СКД описываются в JSON с двумя уровнями детализации для каждой секции:
|
||||||
|
|
||||||
|
### Минимальный пример
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dataSets": [{
|
||||||
|
"query": "ВЫБРАТЬ Номенклатура.Наименование ИЗ Справочник.Номенклатура КАК Номенклатура",
|
||||||
|
"fields": ["Наименование"]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Умолчания: dataSource создаётся автоматически (`ИсточникДанных1/Local`), набор получает имя `НаборДанных1`, вариант настроек "Основной" с деталями.
|
||||||
|
|
||||||
|
### Поля — shorthand
|
||||||
|
|
||||||
|
```json
|
||||||
|
"fields": [
|
||||||
|
"Наименование",
|
||||||
|
"Количество: decimal(15,2)",
|
||||||
|
"Организация: CatalogRef.Организации @dimension",
|
||||||
|
"Служебное: string #noFilter #noOrder"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Формат: `Имя[: Тип] [@роль...] [#ограничение...]`. Роли: `@dimension`, `@account`, `@balance`, `@period`. Ограничения: `#noField`, `#noFilter`, `#noGroup`, `#noOrder`.
|
||||||
|
|
||||||
|
### Итоги — shorthand
|
||||||
|
|
||||||
|
```json
|
||||||
|
"totalFields": ["Количество: Сумма", "Стоимость: Сумма(Кол * Цена)"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Формат: `Поле: Функция` или `Поле: Функция(выражение)`.
|
||||||
|
|
||||||
|
### Параметры — shorthand
|
||||||
|
|
||||||
|
```json
|
||||||
|
"parameters": [
|
||||||
|
"Период: StandardPeriod = LastMonth",
|
||||||
|
"Организация: CatalogRef.Организации"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Вычисляемые поля — shorthand
|
||||||
|
|
||||||
|
```json
|
||||||
|
"calculatedFields": ["Итого = Количество * Цена"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Объектная форма
|
||||||
|
|
||||||
|
Все секции поддерживают полную объектную форму для сложных случаев (title, appearance, role с выражениями, userSettingID и т.д.). Подробности — в [спецификации SKD DSL](skd-dsl-spec.md).
|
||||||
|
|
||||||
|
## Сценарии использования
|
||||||
|
|
||||||
|
### Анализ существующей СКД
|
||||||
|
|
||||||
|
```
|
||||||
|
> Проанализируй схему компоновки отчёта Reports/АнализНДФЛ/Templates/ОсновнаяСхемаКомпоновкиДанных
|
||||||
|
```
|
||||||
|
|
||||||
|
Claude вызовет `/skd-info` (overview → trace → query → variant) и опишет:
|
||||||
|
- наборы данных и их поля
|
||||||
|
- параметры и значения по умолчанию
|
||||||
|
- ресурсы и формулы агрегации
|
||||||
|
- структуру группировок в вариантах настроек
|
||||||
|
|
||||||
|
### Создание СКД по описанию
|
||||||
|
|
||||||
|
```
|
||||||
|
> Создай СКД для отчёта по продажам: группировка по организациям,
|
||||||
|
> поля Номенклатура, Количество, Сумма. Период — параметр.
|
||||||
|
```
|
||||||
|
|
||||||
|
Claude сформирует JSON:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dataSets": [{
|
||||||
|
"name": "Продажи",
|
||||||
|
"query": "ВЫБРАТЬ ...",
|
||||||
|
"fields": [
|
||||||
|
"Организация: CatalogRef.Организации @dimension",
|
||||||
|
"Номенклатура: CatalogRef.Номенклатура @dimension",
|
||||||
|
"Количество: decimal(15,3)",
|
||||||
|
"Сумма: decimal(15,2)"
|
||||||
|
]
|
||||||
|
}],
|
||||||
|
"totalFields": ["Количество: Сумма", "Сумма: Сумма"],
|
||||||
|
"parameters": ["Период: StandardPeriod = LastMonth"],
|
||||||
|
"settingsVariants": [{
|
||||||
|
"name": "Основной",
|
||||||
|
"settings": {
|
||||||
|
"selection": ["Номенклатура", "Количество", "Сумма", "Auto"],
|
||||||
|
"structure": [{
|
||||||
|
"type": "group", "groupBy": ["Организация"],
|
||||||
|
"selection": ["Auto"], "order": ["Auto"],
|
||||||
|
"children": [{ "type": "group", "selection": ["Auto"], "order": ["Auto"] }]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
И вызовет `/skd-compile` → `/skd-validate` → `/skd-info`.
|
||||||
|
|
||||||
|
### Проверка существующей СКД
|
||||||
|
|
||||||
|
```
|
||||||
|
> Проверь корректность СКД Reports/МойОтчёт/Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
Claude вызовет `/skd-validate` и покажет результат: ошибки (битые ссылки, дубликаты, невалидные типы) и предупреждения.
|
||||||
|
|
||||||
|
## Структура файлов СКД
|
||||||
|
|
||||||
|
```
|
||||||
|
<Объект>/Templates/
|
||||||
|
├── ИмяМакета.xml # Метаданные (UUID, TemplateType=DataCompositionSchema)
|
||||||
|
└── ИмяМакета/
|
||||||
|
└── Ext/
|
||||||
|
└── Template.xml # Тело схемы (DataCompositionSchema)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Спецификации
|
||||||
|
|
||||||
|
- [1c-dcs-spec.md](1c-dcs-spec.md) — XML-формат DataCompositionSchema, namespace, элементы, типы
|
||||||
|
- [skd-dsl-spec.md](skd-dsl-spec.md) — JSON DSL для описания СКД (формат входных данных `/skd-compile`)
|
||||||
Reference in New Issue
Block a user