mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-22 04:31:02 +03:00
90 lines
5.6 KiB
Markdown
90 lines
5.6 KiB
Markdown
---
|
||
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`
|