Files
cc-1c-skills/.codeassistant/skills/template-add/SKILL.md
T

90 lines
5.6 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.
---
name: template-add
description: Добавить пустой макет к объекту 1С. Используй когда нужно создать у объекта новый макет
argument-hint: <ObjectName> <TemplateName> <TemplateType>
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
---
# /template-add — Добавление макета
Создаёт макет указанного типа и регистрирует его в корневом XML объекта.
## Usage
```
/template-add <ObjectName> <TemplateName> <TemplateType>
```
| Параметр | Обязательный | По умолчанию | Описание |
|---------------|:------------:|-----------------|--------------------------------------------------|
| ObjectName | да | — | Имя объекта |
| TemplateName | да | — | Имя макета |
| TemplateType | да | — | Тип: HTML, Text, SpreadsheetDocument, BinaryData, DataCompositionSchema |
| Synonym | нет | = TemplateName | Синоним макета |
| SrcDir | нет | `src` | Путь к папке типа объектов (`Reports`, `DataProcessors`, `Catalogs`, `Documents`...), внутри которой лежит `<ObjectName>.xml`. Дефолт `src` подходит для каталогов с внешними обработками/отчётами, лежащими рядом |
| -SetMainSKD | нет | — | Принудительно установить MainDataCompositionSchema |
## Команда
```powershell
python ".codeassistant/skills/template-add/scripts/add-template.py" -ObjectName "<ObjectName>" -TemplateName "<TemplateName>" -TemplateType "<TemplateType>" [-Synonym "<Synonym>"] [-SrcDir "<SrcDir>"] [-SetMainSKD]
```
## Пример
Добавить основную СКД к отчёту в расширении:
```powershell
python ".codeassistant/skills/template-add/scripts/add-template.py" -ObjectName "ОтчётПродажи" -TemplateName "ОсновнаяСхемаКомпоновкиДанных" -TemplateType "DataCompositionSchema" -SrcDir "src/cfe/МоёРасширение/Reports"
```
## Маппинг типов
Пользователь может указать тип в свободной форме. Определи нужный по контексту:
| Пользователь пишет | TemplateType | Расширение | Содержимое |
|---------------------------------------------|---------------------|------------|-------------------------|
| HTML | HTMLDocument | `.html` | Пустой HTML-документ |
| Text, текстовый документ, текст | TextDocument | `.txt` | Пустой файл |
| SpreadsheetDocument, табличный документ, MXL | SpreadsheetDocument | `.xml` | Минимальный spreadsheet |
| BinaryData, двоичные данные | BinaryData | `.bin` | Пустой файл |
| DataCompositionSchema, СКД, схема компоновки | DataCompositionSchema | `.xml` | Минимальная DCS-схема |
## Конвенция именования
Для макетов **печатных форм** (тип SpreadsheetDocument) применяй префикс `ПФ_MXL_`:
| Контекст | Формат имени | Пример |
|------------------------------------------------------------------|----------------------------|-------------------------|
| Печатная форма (дополнительная обработка вида ПечатнаяФорма, или пользователь явно говорит «печатная форма») | `ПФ_MXL_<КраткоеИмя>` | `ПФ_MXL_М11`, `ПФ_MXL_СчётФактура`, `ПФ_MXL_КонвертDL` |
| Прочие макеты (загрузка данных, служебные, настройки) | Без префикса | `МакетЗагрузки`, `НастройкиПечати` |
Если пользователь указал имя макета без префикса, но контекст — печатная форма, **добавь префикс `ПФ_MXL_` автоматически** и сообщи об этом.
## MainDataCompositionSchema (авто)
При добавлении макета типа `DataCompositionSchema` к `ExternalReport` или `Report`:
- Если `MainDataCompositionSchema` пуст — автоматически заполняется ссылкой на макет
- Используй `--SetMainSKD` чтобы перезаписать существующее значение
## Что создаётся
```
<SrcDir>/<ObjectName>/Templates/
├── <TemplateName>.xml # Метаданные макета (1 UUID)
└── <TemplateName>/
└── Ext/
└── Template.<ext> # Содержимое макета
```
## Что модифицируется
- `<SrcDir>/<ObjectName>.xml` — добавляется `<Template>` в конец `ChildObjects`
- Для ExternalReport/Report: может обновляться `MainDataCompositionSchema`