--- name: template-add description: Добавить пустой макет к объекту 1С. Используй когда нужно создать у объекта новый макет argument-hint: allowed-tools: - Bash - Read - Write - Edit - Glob - Grep --- # /template-add — Добавление макета Создаёт макет указанного типа и регистрирует его в корневом XML объекта. ## Usage ``` /template-add ``` | Параметр | Обязательный | По умолчанию | Описание | |---------------|:------------:|-----------------|--------------------------------------------------| | ObjectName | да | — | Имя объекта | | TemplateName | да | — | Имя макета | | TemplateType | да | — | Тип: HTML, Text, SpreadsheetDocument, BinaryData, DataCompositionSchema | | Synonym | нет | = TemplateName | Синоним макета | | SrcDir | нет | `src` | Путь к папке типа объектов (`Reports`, `DataProcessors`, `Catalogs`, `Documents`...), внутри которой лежит `.xml`. Дефолт `src` подходит для каталогов с внешними обработками/отчётами, лежащими рядом | | -SetMainSKD | нет | — | Принудительно установить MainDataCompositionSchema | ## Команда ```powershell python ".codeassistant/skills/template-add/scripts/add-template.py" -ObjectName "" -TemplateName "" -TemplateType "" [-Synonym ""] [-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` чтобы перезаписать существующее значение ## Что создаётся ``` //Templates/ ├── .xml # Метаданные макета (1 UUID) └── / └── Ext/ └── Template. # Содержимое макета ``` ## Что модифицируется - `/.xml` — добавляется `