Files
cc-1c-skills/.claude/skills/template-add/SKILL.md
T
Nick ShirokovandClaude Opus 4.7 cd3a242b12 refactor(skills): portable script paths via ${CLAUDE_SKILL_DIR}
Replace literal `.claude/skills/<owner>/...` paths in SKILL.md with the
`${CLAUDE_SKILL_DIR}` variable that Claude Code substitutes at invocation
time. Same-skill references become `${CLAUDE_SKILL_DIR}/<rest>`,
cross-skill references (erf-* → epf-*) become
`${CLAUDE_SKILL_DIR}/../<other>/<rest>`. All paths now wrapped in double
quotes to handle install locations with spaces.

This unblocks plugin-mode installation: literal `.claude/skills/...`
paths fail when the skill is loaded from `~/.claude/plugins/cache/...`
or from a personal `~/.claude/skills/` install. Drop-in mode continues
to work because Claude Code resolves the variable in all install scopes.

Verified via pilot:
- Project drop-in (cc-1c-skills repo)
- Personal `~/.claude/skills/cf-info/`
- Plugin via `/plugin marketplace add <local-path>`

Scope: 61 SKILL.md, 125 path replacements (8 cross-skill).
Scripts unchanged — they already use \$PSScriptRoot and ../<sibling>
patterns that resolve correctly under the bundled cache layout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:30:06 +03:00

5.7 KiB
Raw Blame History

name, description, argument-hint, allowed-tools
name description argument-hint allowed-tools
template-add Добавить пустой макет к объекту 1С. Используй когда нужно создать у объекта новый макет <ObjectName> <TemplateName> <TemplateType>
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.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -ObjectName "<ObjectName>" -TemplateName "<TemplateName>" -TemplateType "<TemplateType>" [-Synonym "<Synonym>"] [-SrcDir "<SrcDir>"] [-SetMainSKD]

Пример

Добавить основную СКД к отчёту в расширении:

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