mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 08:04:56 +03:00
Add meta-guide.md and link from README
Guide covers meta-* skills: workflow, 23 object types, inline/JSON modes, typical scenarios (create, edit, validate), file structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
| Управляемые формы (Form) | 6 навыков `/form-*` | Создание, анализ, генерация, модификация, валидация управляемых форм | [Подробнее](docs/form-guide.md) |
|
||||
| Роли (Role) | 3 навыка `/role-*` | Анализ прав роли, создание из JSON DSL, валидация | [Подробнее](docs/role-guide.md) |
|
||||
| Схема компоновки (СКД) | 4 навыка `/skd-*` | Анализ, генерация из JSON DSL, точечное редактирование, валидация схем компоновки данных | [Подробнее](docs/skd-guide.md) |
|
||||
| Метаданные конфигурации | 4 навыка `/meta-*` | Создание, анализ, редактирование, валидация объектов метаданных (23 типа) | — |
|
||||
| Метаданные конфигурации | 4 навыка `/meta-*` | Создание, анализ, редактирование, валидация объектов метаданных (23 типа) | [Подробнее](docs/meta-guide.md) |
|
||||
| Утилиты | `/img-grid` | Наложение сетки на изображение для определения пропорций колонок | — |
|
||||
|
||||
## Требования
|
||||
@@ -97,6 +97,7 @@ docs/
|
||||
├── form-guide.md # Гайд: управляемые формы
|
||||
├── role-guide.md # Гайд: роли
|
||||
├── skd-guide.md # Гайд: схема компоновки данных
|
||||
├── meta-guide.md # Гайд: объекты метаданных конфигурации
|
||||
├── 1c-epf-spec.md # Спецификация XML-формата (EPF)
|
||||
├── 1c-erf-spec.md # Спецификация XML-формата (ERF)
|
||||
├── 1c-form-spec.md # Спецификация управляемых форм
|
||||
|
||||
@@ -0,0 +1,176 @@
|
||||
# Объекты метаданных конфигурации
|
||||
|
||||
Навыки группы `/meta-*` позволяют создавать, анализировать, редактировать и проверять объекты метаданных конфигурации 1С — справочники, документы, регистры, перечисления и ещё 19 типов объектов из XML-выгрузки.
|
||||
|
||||
## Навыки
|
||||
|
||||
| Навык | Параметры | Описание |
|
||||
|-------|-----------|----------|
|
||||
| `/meta-info` | `<ObjectPath> [-Mode] [-Name]` | Анализ структуры объекта: реквизиты, ТЧ, формы, движения, типы (8 режимов) |
|
||||
| `/meta-compile` | `<JsonPath> <OutputPath>` | Создание объекта метаданных из JSON DSL: реквизиты, ТЧ, свойства, формы |
|
||||
| `/meta-edit` | `<ObjectPath> -Operation <op> -Value "<val>"` | Точечное редактирование: 30+ атомарных операций (add/remove/modify/set) |
|
||||
| `/meta-validate` | `<ObjectPath> [-MaxErrors 20]` | Валидация структурной корректности: ~40 проверок |
|
||||
|
||||
## Рабочий цикл
|
||||
|
||||
```
|
||||
Описание объекта (текст) → JSON DSL → /meta-compile → XML-исходники → /meta-validate
|
||||
↕ /meta-edit → /meta-info
|
||||
```
|
||||
|
||||
1. Claude формирует JSON-определение объекта (тип, реквизиты, ТЧ, свойства)
|
||||
2. `/meta-compile` генерирует XML-исходники с корректными UUID, namespace, структурой ChildObjects
|
||||
3. `/meta-edit` вносит точечные изменения: добавление/удаление реквизитов, ТЧ, владельцев, движений и т.д.
|
||||
4. `/meta-validate` проверяет корректность XML
|
||||
5. `/meta-info` выводит компактную сводку для визуальной проверки
|
||||
|
||||
## Поддерживаемые типы объектов (23 типа)
|
||||
|
||||
| Группа | Типы |
|
||||
|--------|------|
|
||||
| Прикладные | Catalog, Document, Enum, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes |
|
||||
| Процессы | BusinessProcess, Task |
|
||||
| Регистры | InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister |
|
||||
| Отчёты/обработки | Report, DataProcessor |
|
||||
| Интеграция | ExchangePlan, HTTPService, WebService |
|
||||
| Журналы | DocumentJournal, Sequence |
|
||||
| Прочие | Constant, CommonModule, SessionParameter, FunctionalOption, DefinedType |
|
||||
|
||||
## Inline mode — типовые операции
|
||||
|
||||
### Реквизиты
|
||||
|
||||
```powershell
|
||||
# Добавить
|
||||
-Operation add-attribute -Value "Комментарий: Строка(200) ;; Сумма: Число(15,2) | req, index"
|
||||
|
||||
# С позиционной вставкой
|
||||
-Operation add-attribute -Value "Склад: CatalogRef.Склады >> after Организация"
|
||||
|
||||
# Удалить
|
||||
-Operation remove-attribute -Value "УстаревшийРеквизит"
|
||||
|
||||
# Переименовать + сменить тип
|
||||
-Operation modify-attribute -Value "СтароеИмя: name=НовоеИмя, type=Строка(500)"
|
||||
```
|
||||
|
||||
### Табличные части
|
||||
|
||||
```powershell
|
||||
# Создать ТЧ с реквизитами
|
||||
-Operation add-ts -Value "Товары: Ном: CatalogRef.Ном | req, Кол: Число(15,3), Цена: Число(15,2)"
|
||||
|
||||
# Добавить реквизит в существующую ТЧ
|
||||
-Operation add-ts-attribute -Value "Товары.СтавкаНДС: EnumRef.СтавкиНДС"
|
||||
|
||||
# Изменить свойства ТЧ
|
||||
-Operation modify-ts -Value "Товары: synonym=Товарный состав"
|
||||
```
|
||||
|
||||
### Свойства объекта
|
||||
|
||||
```powershell
|
||||
# Скалярные свойства
|
||||
-Operation modify-property -Value "CodeLength=11 ;; DescriptionLength=150"
|
||||
|
||||
# Владельцы справочника
|
||||
-Operation set-owners -Value "Catalog.Контрагенты ;; Catalog.Организации"
|
||||
|
||||
# Движения документа
|
||||
-Operation add-registerRecord -Value "AccumulationRegister.Продажи ;; AccumulationRegister.ОстаткиТоваров"
|
||||
```
|
||||
|
||||
### Регистры
|
||||
|
||||
```powershell
|
||||
-Operation add-dimension -Value "Организация: CatalogRef.Организации | master, mainFilter"
|
||||
-Operation add-resource -Value "Сумма: Число(15,2)"
|
||||
```
|
||||
|
||||
## JSON mode — комбинированные операции
|
||||
|
||||
Для сложных сценариев (несколько типов изменений в одном вызове) используйте JSON-файл:
|
||||
|
||||
```json
|
||||
{
|
||||
"add": {
|
||||
"attributes": ["Комментарий: Строка(200)"],
|
||||
"tabularSections": [{
|
||||
"name": "Товары",
|
||||
"attrs": ["Ном: CatalogRef.Ном | req", "Кол: Число(15,3)"]
|
||||
}]
|
||||
},
|
||||
"remove": { "attributes": ["УстаревшийРеквизит"] },
|
||||
"modify": {
|
||||
"properties": { "DescriptionLength": 150 },
|
||||
"attributes": { "СтароеИмя": { "name": "НовоеИмя" } }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
JSON поддерживает русские синонимы ключей (`реквизиты`, `тч`, `измерения` и др.) и типов (`Строка`, `Число`, `СправочникСсылка` и др.).
|
||||
|
||||
## Сценарии использования
|
||||
|
||||
### Анализ существующего объекта
|
||||
|
||||
```
|
||||
> Покажи структуру справочника Catalogs/Номенклатура
|
||||
```
|
||||
|
||||
Claude вызовет `/meta-info` и покажет: реквизиты с типами, табличные части, формы, владельцев, ввод по строке.
|
||||
|
||||
### Создание нового объекта
|
||||
|
||||
```
|
||||
> Создай справочник Контрагенты: код 9, наименование 150, реквизиты ИНН(12), КПП(9),
|
||||
> иерархический с группами, владелец — Catalog.Организации
|
||||
```
|
||||
|
||||
Claude сформирует JSON и вызовет `/meta-compile` → `/meta-validate` → `/meta-info`.
|
||||
|
||||
### Добавление реквизитов к существующему объекту
|
||||
|
||||
```
|
||||
> Добавь в документ Documents/ЗаказКлиента реквизиты Склад (CatalogRef.Склады)
|
||||
> и ТЧ Товары с реквизитами Номенклатура, Количество, Цена, Сумма
|
||||
```
|
||||
|
||||
Claude вызовет `/meta-edit` дважды: `add-attribute` для реквизита и `add-ts` для ТЧ.
|
||||
|
||||
### Настройка движений документа
|
||||
|
||||
```
|
||||
> Документ Documents/ПриходТоваров должен делать движения
|
||||
> по AccumulationRegister.ОстаткиТоваров и AccumulationRegister.Партии
|
||||
```
|
||||
|
||||
Claude вызовет `/meta-edit` с операцией `set-registerRecords`.
|
||||
|
||||
### Проверка объекта после изменений
|
||||
|
||||
```
|
||||
> Проверь корректность Documents/ЗаказКлиента
|
||||
```
|
||||
|
||||
Claude вызовет `/meta-validate` и покажет ошибки и предупреждения.
|
||||
|
||||
## Структура файлов объекта метаданных
|
||||
|
||||
```
|
||||
<MetaType>/<ObjectName>/
|
||||
├── <ObjectName>.xml # Основной XML (Properties, ChildObjects)
|
||||
├── Ext/
|
||||
│ └── ObjectModule.bsl # Модуль объекта (опционально)
|
||||
├── Forms/
|
||||
│ └── <FormName>/ # Формы объекта
|
||||
├── Templates/
|
||||
│ └── <TemplateName>/ # Макеты
|
||||
└── Commands/
|
||||
└── <CommandName>/ # Команды
|
||||
```
|
||||
|
||||
## Спецификации
|
||||
|
||||
- [1c-config-objects-spec.md](1c-config-objects-spec.md) — XML-формат объектов метаданных, Properties, ChildObjects, типы
|
||||
- [meta-dsl-spec.md](meta-dsl-spec.md) — JSON DSL для описания объектов (`/meta-compile`)
|
||||
Reference in New Issue
Block a user