mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
Форма могла удаляться, оставляя ссылки на себя в других объектах: платформа затем отвергала загрузку с «Неизвестный объект метаданных». Навык правил только файл своего объекта и про остальную конфигурацию не знал. Теперь перед удалением конфигурация сканируется на ссылки на эту форму (слоты Default*/Auxiliary*Form и ChoiceForm, ChoiceForm и SettingsStorage внутри форм, элементы начальной страницы). Есть ссылки — удаление останавливается со списком мест; с -Force форма удаляется, а ссылки очищаются: слот пустеет, элемент начальной страницы вырезается. Заодно починен матч ссылки: сравнение шло по хвосту «Form.<Имя>» без вида и объекта, поэтому при удалении своей ФормаСписка обнулялась и ссылка на DocumentJournal.Ж.Form.ФормаСписка в том же файле. Сравнение путей переведено на длинную форму: Resolve-Path отдаёт короткое имя 8.3, перечисление файлов — длинное, из-за чего собственный файл объекта не исключался из скана. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
---
|
|
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` | Каталог исходников |
|
|
| Force | нет | — | Удалить, даже если на форму ссылаются, и очистить ссылки |
|
|
|
|
## Команда
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/remove-form.ps1" -ObjectName "<ObjectName>" -FormName "<FormName>" [-SrcDir "<SrcDir>"] [-Force]
|
|
```
|
|
|
|
## Что удаляется
|
|
|
|
```
|
|
<SrcDir>/<ObjectName>/Forms/<FormName>.xml # Метаданные формы
|
|
<SrcDir>/<ObjectName>/Forms/<FormName>/ # Каталог формы (рекурсивно)
|
|
```
|
|
|
|
## Что модифицируется
|
|
|
|
- `<SrcDir>/<ObjectName>.xml` — убирается `<Form>` из `ChildObjects`
|
|
- Свойства объекта, указывавшие на удалённую форму — очищаются
|