mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
Приводим авторский контент (.ps1/.psm1/.py/.mjs/.md/.json, пин .bsl) к единому LF и закрепляем политикой в .gitattributes. Инструмент правки всегда пишет LF, поэтому единый LF убирает EOL-шум в диффах, ложные срабатывания blame и налог на ручную синхронизацию CRLF-файлов. BOM на .ps1 сохранён (git с eol=lf меняет только CR<->LF, BOM не трогает). Данные 1С (*.xml) и бинарники под нормализацию не берём. Гейт: PS-порт 459/459, Python-порт 459/459, web-test E2E 22/22 (с пересборкой стенда). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
|
||
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -ObjectName "<ObjectName>" -TemplateName "<TemplateName>" -TemplateType "<TemplateType>" [-Synonym "<Synonym>"] [-SrcDir "<SrcDir>"] [-SetMainSKD]
|
||
```
|
||
|
||
## Пример
|
||
|
||
Добавить основную СКД к отчёту в расширении:
|
||
|
||
```powershell
|
||
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -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`
|