mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-18 07:35:52 +03:00
Checks: unique IDs (per pool), companion elements, DataPath→attribute refs, button→command refs, event handlers, command actions, MainAttribute. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
79 lines
3.4 KiB
Markdown
79 lines
3.4 KiB
Markdown
---
|
|
name: form-validate
|
|
description: Валидация структурной корректности управляемой формы 1С (Form.xml)
|
|
argument-hint: <FormPath>
|
|
allowed-tools:
|
|
- Bash
|
|
- Read
|
|
- Glob
|
|
---
|
|
|
|
# /form-validate — Валидатор формы
|
|
|
|
Проверяет Form.xml управляемой формы на структурные ошибки: уникальность ID, наличие companion-элементов, корректность ссылок DataPath и команд.
|
|
|
|
## Использование
|
|
|
|
```
|
|
/form-validate <FormPath>
|
|
```
|
|
|
|
## Параметры
|
|
|
|
| Параметр | Обязательный | По умолчанию | Описание |
|
|
|-----------|:------------:|--------------|-----------------------------|
|
|
| FormPath | да | — | Путь к файлу Form.xml |
|
|
| MaxErrors | нет | 30 | Остановиться после N ошибок |
|
|
|
|
## Команда
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -File .claude\skills\form-validate\scripts\form-validate.ps1 -FormPath "<путь>"
|
|
```
|
|
|
|
## Выполняемые проверки
|
|
|
|
| # | Проверка | Серьёзность |
|
|
|---|---|---|
|
|
| 1 | Корневой элемент `<Form>`, version="2.17" | ERROR / WARN |
|
|
| 2 | `<AutoCommandBar>` присутствует, id="-1" | ERROR |
|
|
| 3 | Уникальность ID элементов (отдельный пул) | ERROR |
|
|
| 4 | Уникальность ID реквизитов (отдельный пул) | ERROR |
|
|
| 5 | Уникальность ID команд (отдельный пул) | ERROR |
|
|
| 6 | Companion-элементы (ContextMenu, ExtendedTooltip, и др.) | ERROR |
|
|
| 7 | DataPath → ссылается на существующий реквизит | ERROR |
|
|
| 8 | CommandName кнопок → ссылается на существующую команду | ERROR |
|
|
| 9 | События имеют непустые имена обработчиков | ERROR |
|
|
| 10 | Команды имеют Action (обработчик) | ERROR |
|
|
| 11 | Не более одного MainAttribute | ERROR |
|
|
|
|
## Вывод
|
|
|
|
```
|
|
=== Validation: ФормаДокумента ===
|
|
|
|
[OK] Root element: Form version=2.17
|
|
[OK] AutoCommandBar: name='ФормаКоманднаяПанель', id=-1
|
|
[OK] Unique element IDs: 96 elements
|
|
[OK] Unique attribute IDs: 38 entries
|
|
[OK] Unique command IDs: 5 entries
|
|
[OK] Companion elements: 86 elements checked
|
|
[OK] DataPath references: 53 paths checked
|
|
[OK] Command references: 2 buttons checked
|
|
[OK] Event handlers: 41 events checked
|
|
[OK] Command actions: 5 commands checked
|
|
[OK] MainAttribute: 1 main attribute
|
|
|
|
---
|
|
Total: 96 elements, 38 attributes, 5 commands
|
|
All checks passed.
|
|
```
|
|
|
|
Код возврата: 0 = все проверки пройдены, 1 = есть ошибки.
|
|
|
|
## Когда использовать
|
|
|
|
- **После `/form-compile`**: проверить корректность сгенерированной формы
|
|
- **После ручного редактирования Form.xml**: убедиться что ID уникальны, companions на месте, ссылки валидны
|
|
- **При отладке**: выявить ошибки в структуре формы до сборки EPF
|