mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
08d29c0341
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>
177 lines
8.2 KiB
Markdown
177 lines
8.2 KiB
Markdown
# Объекты метаданных конфигурации
|
||
|
||
Навыки группы `/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`)
|