diff --git a/.claude/skills/cfe-borrow/SKILL.md b/.claude/skills/cfe-borrow/SKILL.md index 074d377c..369e30a9 100644 --- a/.claude/skills/cfe-borrow/SKILL.md +++ b/.claude/skills/cfe-borrow/SKILL.md @@ -70,31 +70,33 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-borrow.ps1" -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-borrow.ps1" -ExtensionPath src\cfe\extname -ConfigPath src\cf -Object "Catalog.Контрагенты" ``` ## Примеры ```powershell # Заимствовать один объект -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты" +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Object "Catalog.Контрагенты" # Заимствовать форму (автоматически заимствует родительский объект) -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты.Form.ФормаЭлемента" +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Object "Catalog.Контрагенты.Form.ФормаЭлемента" # Несколько объектов за раз -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Контрагенты ;; CommonModule.ОбщийМодуль ;; Enum.ВидыОплат" +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Object "Catalog.Контрагенты ;; CommonModule.ОбщийМодуль ;; Enum.ВидыОплат" # Заимствовать форму с основным реквизитом (реквизиты по DataPath формы) -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Номенклатура.Form.ФормаЭлемента" -BorrowMainAttribute +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Object "Catalog.Номенклатура.Form.ФормаЭлемента" -BorrowMainAttribute # Заимствовать форму с ВСЕМИ реквизитами объекта -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Object "Catalog.Номенклатура.Form.ФормаЭлемента" -BorrowMainAttribute All +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Object "Catalog.Номенклатура.Form.ФормаЭлемента" -BorrowMainAttribute All ``` ## Верификация ``` -/cfe-validate +/cfe-validate -ConfigPath ``` +Конфигурацию-источник передавай и валидатору: заимствованные формы он проверяет по ней. + diff --git a/.claude/skills/cfe-diff/SKILL.md b/.claude/skills/cfe-diff/SKILL.md index 94405510..f02f9daa 100644 --- a/.claude/skills/cfe-diff/SKILL.md +++ b/.claude/skills/cfe-diff/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-diff.ps1" -ExtensionPath src -ConfigPath C:\cfsrc\erp -Mode A +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-diff.ps1" -ExtensionPath src\cfe\extname -ConfigPath src\cf -Mode A ``` ## Mode A — обзор расширения @@ -50,8 +50,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-diff.ps1" -Exte ```powershell # Обзор — что изменено в расширении -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Mode A +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Mode A # Проверка переноса — все ли #Вставка перенесены -... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Mode B +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Mode B ``` diff --git a/.claude/skills/cfe-init/SKILL.md b/.claude/skills/cfe-init/SKILL.md index 0fb7147d..da0ef410 100644 --- a/.claude/skills/cfe-init/SKILL.md +++ b/.claude/skills/cfe-init/SKILL.md @@ -33,11 +33,11 @@ allowed-tools: | `Name` | Имя расширения (обязат.) | — | | `Synonym` | Синоним | = Name | | `NamePrefix` | Префикс собственных объектов | = Name + "_" | -| `OutputDir` | Каталог для создания | `src` | +| `OutputDir` | Каталог для создания | `src` (клади расширение в отдельный подкаталог: `src\cfe\extname`) | | `Purpose` | `Patch` (исправление) / `Customization` (доработка) / `AddOn` (дополнение) | `Customization` | | `Version` | Версия расширения | — | | `Vendor` | Поставщик | — | -| `CompatibilityMode` | Режим совместимости | `Version8_3_24` | +| `CompatibilityMode` | Режим совместимости; при заданном `ConfigPath` определяется по базовой конфигурации и этот параметр не нужен | `Version8_3_24` | | `ConfigPath` | Путь к выгрузке базовой конфигурации (авто-определяет CompatibilityMode и Language UUID) | — | | `NoRole` | Без основной роли | false | @@ -51,21 +51,21 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-init.ps1" -Name ```powershell # Расширение для ERP с авто-определением совместимости из базовой конфигурации -... -Name Расш1 -ConfigPath C:\WS\tasks\cfsrc\erp_8.3.24 -OutputDir src +... -Name Расш1 -ConfigPath src\cf -OutputDir src\cfe\extname # Расширение-исправление с явным режимом совместимости -... -Name Расш1 -Purpose Patch -CompatibilityMode Version8_3_17 -OutputDir src +... -Name Расш1 -Purpose Patch -CompatibilityMode Version8_3_17 -OutputDir src\cfe\extname # Расширение-доработка с версией -... -Name МоёРасширение -Version "1.0.0.1" -Vendor "Компания" -OutputDir src +... -Name МоёРасширение -Version "1.0.0.1" -Vendor "Компания" -OutputDir src\cfe\extname # Без роли, с явным префиксом -... -Name ИсправлениеБага -NamePrefix "ИБ_" -Purpose Patch -NoRole -OutputDir src +... -Name ИсправлениеБага -NamePrefix "ИБ_" -Purpose Patch -NoRole -OutputDir src\cfe\extname ``` ## Верификация ``` -/cfe-validate +/cfe-validate -ConfigPath ``` diff --git a/.claude/skills/cfe-patch-method/SKILL.md b/.claude/skills/cfe-patch-method/SKILL.md index 15c4a633..2d355c2b 100644 --- a/.claude/skills/cfe-patch-method/SKILL.md +++ b/.claude/skills/cfe-patch-method/SKILL.md @@ -110,36 +110,36 @@ allowed-tools: ## Команда ```powershell -powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-patch-method.ps1" -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-patch-method.ps1" -ExtensionPath src\cfe\extname -ConfigPath src\cf -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before ``` ## Примеры ```powershell # Код перед записью -... -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before # Перехват После на форме -... -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -ModulePath "Document.Заказ.Form.ФормаДокумента" -MethodName "ПослеЗаписиНаСервере" -InterceptorType After +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -ModulePath "Document.Заказ.Form.ФормаДокумента" -MethodName "ПослеЗаписиНаСервере" -InterceptorType After # Замена функции (ПродолжитьВызов) -... -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -ModulePath "CommonModule.ОбщийМодуль" -MethodName "ПолучитьДанные" -InterceptorType Instead +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -ModulePath "CommonModule.ОбщийМодуль" -MethodName "ПолучитьДанные" -InterceptorType Instead # ИзменениеИКонтроль — копия тела для правки маркерами -... -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -ModulePath "Document.РеализацияТоваров.ObjectModule" -MethodName "ОбработкаПроведения" -InterceptorType ModificationAndControl +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -ModulePath "Document.РеализацияТоваров.ObjectModule" -MethodName "ОбработкаПроведения" -InterceptorType ModificationAndControl # ModulePath как путь к файлу модуля-источника (без -ConfigPath) -... -ExtensionPath src\cfe\ИмяРасширения -ModulePath "src\cf\CommonModules\ОбщийМодуль\Ext\Module.bsl" -MethodName "ПолучитьДанные" -InterceptorType Instead +... -ExtensionPath src\cfe\extname -ModulePath "src\cf\CommonModules\ОбщийМодуль\Ext\Module.bsl" -MethodName "ПолучитьДанные" -InterceptorType Instead # Проверить все контролируемые методы расширения на дрейф -... -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -Check +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Check # Актуализировать дрейфнувшие контролируемые методы пачкой -... -ExtensionPath src\cfe\ИмяРасширения -ConfigPath src\cf -Actualize +... -ExtensionPath src\cfe\extname -ConfigPath src\cf -Actualize ``` ## Верификация ``` -/cfe-validate +/cfe-validate -ConfigPath ``` diff --git a/.claude/skills/cfe-validate/SKILL.md b/.claude/skills/cfe-validate/SKILL.md index d1c610e9..85c47481 100644 --- a/.claude/skills/cfe-validate/SKILL.md +++ b/.claude/skills/cfe-validate/SKILL.md @@ -1,7 +1,7 @@ --- name: cfe-validate description: Валидация расширения конфигурации 1С (CFE). Используй после создания или модификации расширения для проверки корректности -argument-hint: [-ConfigPath ] [-Detailed] [-MaxErrors 30] +argument-hint: [-ConfigPath ] [-Detailed] [-MaxErrors 30] allowed-tools: - Bash - Read @@ -17,17 +17,24 @@ allowed-tools: | Параметр | Обяз. | Умолч. | Описание | |---------------|:-----:|---------|-------------------------------------------------| | ExtensionPath | да | — | Путь к каталогу или Configuration.xml расширения | -| ConfigPath | нет | — | Конфигурация-источник: включает сверку путей заимствованных форм с реквизитами и табличными частями объектов основной конфигурации | +| ConfigPath | нет | — | Каталог конфигурации, из которой заимствованы объекты | | Detailed | нет | — | Подробный вывод (все проверки, включая успешные) | | MaxErrors | нет | 30 | Остановиться после N ошибок | | OutFile | нет | — | Записать результат в файл | -Без `-ConfigPath` проверка путей пропускается — об этом сказано в отчёте отдельной строкой. Путь к конфигурации ищи так же, как в `/cfe-borrow`: `.v8-project.json` → поле `configSrc` целевой базы. +### ConfigPath + +Указывай всегда, когда конфигурация-источник доступна: без неё часть ошибок заимствованных форм не ловится, и расширение может пройти валидацию, а потом быть отвергнутым платформой при загрузке. + +Если пользователь не указал путь — определи сам: +1. Прочитай `.v8-project.json` из корня проекта +2. Разреши целевую базу (по имени, ветке или `default`) +3. Возьми её поле `configSrc` ## Команда ```powershell -powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src" -powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src/Configuration.xml" -powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src" -ConfigPath "C:\cfsrc\erp" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src\cfe\extname" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src\cfe\extname\Configuration.xml" +powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-validate.ps1" -ExtensionPath "src\cfe\extname" -ConfigPath "src\cf" ```