Rename /epf-remove-form → /form-remove, /epf-remove-template → /template-remove

Universal naming, ObjectName parameter (alias ProcessorName for compat).
template-remove now clears MainDataCompositionSchema if removed template was referenced.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-02-14 18:06:11 +03:00
co-authored by Claude Opus 4.6
parent be47935973
commit f3b3f26af9
6 changed files with 111 additions and 101 deletions
-47
View File
@@ -1,47 +0,0 @@
---
name: epf-remove-form
description: Удалить форму из внешней обработки 1С
argument-hint: <ProcessorName> <FormName>
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
---
# /epf-remove-form — Удаление формы
Удаляет форму и убирает её регистрацию из корневого XML обработки.
## Usage
```
/epf-remove-form <ProcessorName> <FormName>
```
| Параметр | Обязательный | По умолчанию | Описание |
|---------------|:------------:|--------------|-------------------------------------|
| ProcessorName | да | — | Имя обработки |
| FormName | да | — | Имя формы для удаления |
| SrcDir | нет | `src` | Каталог исходников |
## Команда
```powershell
pwsh -NoProfile -File .claude/skills/epf-remove-form/scripts/remove-form.ps1 -ProcessorName "<ProcessorName>" -FormName "<FormName>" [-SrcDir "<SrcDir>"]
```
## Что удаляется
```
<SrcDir>/<ProcessorName>/Forms/<FormName>.xml # Метаданные формы
<SrcDir>/<ProcessorName>/Forms/<FormName>/ # Каталог формы (рекурсивно)
```
## Что модифицируется
- `<SrcDir>/<ProcessorName>.xml` — убирается `<Form>` из `ChildObjects`
- Если удаляемая форма была DefaultForm — очищается значение DefaultForm
@@ -1,46 +0,0 @@
---
name: epf-remove-template
description: Удалить макет из внешней обработки 1С
argument-hint: <ProcessorName> <TemplateName>
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
---
# /epf-remove-template — Удаление макета
Удаляет макет и убирает его регистрацию из корневого XML обработки.
## Usage
```
/epf-remove-template <ProcessorName> <TemplateName>
```
| Параметр | Обязательный | По умолчанию | Описание |
|---------------|:------------:|--------------|-------------------------------------|
| ProcessorName | да | — | Имя обработки |
| TemplateName | да | — | Имя макета для удаления |
| SrcDir | нет | `src` | Каталог исходников |
## Команда
```powershell
pwsh -NoProfile -File .claude/skills/epf-remove-template/scripts/remove-template.ps1 -ProcessorName "<ProcessorName>" -TemplateName "<TemplateName>" [-SrcDir "<SrcDir>"]
```
## Что удаляется
```
<SrcDir>/<ProcessorName>/Templates/<TemplateName>.xml # Метаданные макета
<SrcDir>/<ProcessorName>/Templates/<TemplateName>/ # Каталог макета (рекурсивно)
```
## Что модифицируется
- `<SrcDir>/<ProcessorName>.xml` — убирается `<Template>` из `ChildObjects`
+47
View File
@@ -0,0 +1,47 @@
---
name: form-remove
description: Удалить форму из объекта 1С (обработка, отчёт, справочник, документ и др.)
argument-hint: <ObjectName> <FormName>
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
---
# /form-remove — Удаление формы
Удаляет форму и убирает её регистрацию из корневого XML объекта.
## Usage
```
/form-remove <ObjectName> <FormName>
```
| Параметр | Обязательный | По умолчанию | Описание |
|------------|:------------:|--------------|-------------------------------------|
| ObjectName | да | — | Имя объекта |
| FormName | да | — | Имя формы для удаления |
| SrcDir | нет | `src` | Каталог исходников |
## Команда
```powershell
powershell.exe -NoProfile -File .claude\skills\form-remove\scripts\remove-form.ps1 -ObjectName "<ObjectName>" -FormName "<FormName>" [-SrcDir "<SrcDir>"]
```
## Что удаляется
```
<SrcDir>/<ObjectName>/Forms/<FormName>.xml # Метаданные формы
<SrcDir>/<ObjectName>/Forms/<FormName>/ # Каталог формы (рекурсивно)
```
## Что модифицируется
- `<SrcDir>/<ObjectName>.xml` — убирается `<Form>` из `ChildObjects`
- Если удаляемая форма была DefaultForm — очищается значение DefaultForm
@@ -1,8 +1,9 @@
# epf-remove-form v1.0 — Remove form from 1C processor
# form-remove v1.1 — Remove form from 1C object
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
[string]$ProcessorName,
[Alias("ProcessorName")]
[string]$ObjectName,
[Parameter(Mandatory)]
[string]$FormName,
@@ -14,13 +15,13 @@ $ErrorActionPreference = "Stop"
# --- Проверки ---
$rootXmlPath = Join-Path $SrcDir "$ProcessorName.xml"
$rootXmlPath = Join-Path $SrcDir "$ObjectName.xml"
if (-not (Test-Path $rootXmlPath)) {
Write-Error "Корневой файл обработки не найден: $rootXmlPath"
exit 1
}
$processorDir = Join-Path $SrcDir $ProcessorName
$processorDir = Join-Path $SrcDir $ObjectName
$formsDir = Join-Path $processorDir "Forms"
$formMetaPath = Join-Path $formsDir "$FormName.xml"
$formDir = Join-Path $formsDir $FormName
+47
View File
@@ -0,0 +1,47 @@
---
name: template-remove
description: Удалить макет из объекта 1С (обработка, отчёт, справочник, документ и др.)
argument-hint: <ObjectName> <TemplateName>
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
---
# /template-remove — Удаление макета
Удаляет макет и убирает его регистрацию из корневого XML объекта.
## Usage
```
/template-remove <ObjectName> <TemplateName>
```
| Параметр | Обязательный | По умолчанию | Описание |
|--------------|:------------:|--------------|-------------------------------------|
| ObjectName | да | — | Имя объекта |
| TemplateName | да | — | Имя макета для удаления |
| SrcDir | нет | `src` | Каталог исходников |
## Команда
```powershell
powershell.exe -NoProfile -File .claude\skills\template-remove\scripts\remove-template.ps1 -ObjectName "<ObjectName>" -TemplateName "<TemplateName>" [-SrcDir "<SrcDir>"]
```
## Что удаляется
```
<SrcDir>/<ObjectName>/Templates/<TemplateName>.xml # Метаданные макета
<SrcDir>/<ObjectName>/Templates/<TemplateName>/ # Каталог макета (рекурсивно)
```
## Что модифицируется
- `<SrcDir>/<ObjectName>.xml` — убирается `<Template>` из `ChildObjects`
- Для ExternalReport/Report: если удалённый макет был указан в `MainDataCompositionSchema` — значение очищается
@@ -1,8 +1,9 @@
# epf-remove-template v1.0 — Remove template from 1C processor
# template-remove v1.1 — Remove template from 1C object
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
[string]$ProcessorName,
[Alias("ProcessorName")]
[string]$ObjectName,
[Parameter(Mandatory)]
[string]$TemplateName,
@@ -14,13 +15,13 @@ $ErrorActionPreference = "Stop"
# --- Проверки ---
$rootXmlPath = Join-Path $SrcDir "$ProcessorName.xml"
$rootXmlPath = Join-Path $SrcDir "$ObjectName.xml"
if (-not (Test-Path $rootXmlPath)) {
Write-Error "Корневой файл обработки не найден: $rootXmlPath"
exit 1
}
$processorDir = Join-Path $SrcDir $ProcessorName
$processorDir = Join-Path $SrcDir $ObjectName
$templatesDir = Join-Path $processorDir "Templates"
$templateMetaPath = Join-Path $templatesDir "$TemplateName.xml"
$templateDir = Join-Path $templatesDir $TemplateName
@@ -65,6 +66,13 @@ foreach ($node in $templateNodes) {
}
}
# Очистить MainDataCompositionSchema если указывала на этот макет
$mainDCS = $xmlDoc.SelectSingleNode("//md:MainDataCompositionSchema", $nsMgr)
if ($mainDCS -and $mainDCS.InnerText -match "Template\.$([regex]::Escape($TemplateName))$") {
$mainDCS.InnerText = ""
Write-Host "[OK] Очищён MainDataCompositionSchema"
}
# Сохранить с BOM
$encBom = New-Object System.Text.UTF8Encoding($true)
$settings = New-Object System.Xml.XmlWriterSettings