Валидация управляемой формы 1С. Используй после создания или модификации формы для проверки корректности. При наличии BaseForm автоматически проверяет callType и ID расширений
Scanned 9/2/2026
Install to Claude Code
npx -y skills add Desko77/claude-code-skills-1c --skill 1c-form-validate --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of 1c Form Validate?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/desko77-1c-form-validate)More formats (shields.io, HTML) on the badges page.
---
name: 1c-form-validate
description: Валидация управляемой формы 1С. Используй после создания или модификации формы для проверки корректности. При наличии BaseForm автоматически проверяет callType и ID расширений
argument-hint: <FormPath> [-IndexPath index.json] [-Detailed] [-MaxErrors 30]
allowed-tools:
- Bash
- Read
- Glob
---
# /form-validate - валидация управляемой формы 1С
Проверяет Form.xml на структурные ошибки: уникальность ID, наличие companion-элементов, корректность ссылок DataPath и команд.
## Параметры
| Параметр | Обяз. | Умолч. | Описание |
|-----------|:-----:|---------|-----------------------------------------|
| FormPath | да | - | Путь к файлу Form.xml |
| Detailed | нет | - | Подробный вывод (все проверки, включая успешные) |
| MaxErrors | нет | 30 | Остановиться после N ошибок |
| IndexPath | нет | - | Индекс конфигурации от `1c-config-index`: включает сверку путей данных с объектом-владельцем |
## Команда
```powershell
powershell.exe -NoProfile -File skills/1c-form-validate/scripts/form-validate.ps1 -FormPath "Catalogs/Номенклатура/Forms/ФормаЭлемента"
powershell.exe -NoProfile -File skills/1c-form-validate/scripts/form-validate.ps1 -FormPath "src/МояОбработка/Forms/Форма/Ext/Form.xml"
```
## Сверка путей данных с объектом-владельцем (проверка 13)
Проверка 5 убеждается, что КОРЕНЬ пути данных - существующий реквизит формы. Дальше путь не
разбирался вовсе: `Объект.ИНН` при отсутствующем `ИНН` у справочника проходил молча, потому что
валидатор ничего не знал про конфигурацию.
С `-IndexPath` он узнает. Владелец определяется по ТИПУ реквизита формы (`cfg:CatalogObject.Контрагенты`),
а не по пути файла: так работает и для формы записи регистра, и для формы, лежащей не там, где
принято. Дальше сверяются вторая часть пути (реквизит, табличная часть, измерение, ресурс,
стандартный реквизит) и третья (колонка табличной части).
Чего проверка НЕ делает намеренно:
- реквизит формы составного типа пропускается - путь может вести в любой из типов;
- реквизит типа `DynamicList` или `ValueTable` пропускается: его состав задается запросом или
колонками формы, а не метаданными;
- объект без блока `StandardAttributes` пропускается целиком, иначе любой `Объект.Code` был бы
объявлен несуществующим;
- дальше третьей части путь не разбирается - навигация по ссылке потребовала бы разрешать типы
цепочкой.
Тяжесть - предупреждение. Проверка новая и кросс-объектная, а ложное срабатывание в валидаторе
дороже пропуска: тот, кто однажды получил ложную ошибку, отключает проверку целиком.
Стандартные реквизиты в путях данных пишутся внутренними английскими именами (`Объект.Description`,
`Объект.Code`, `Запись.Period`) - индекс отдает их ровно в таком виде, потому что берет из блока
`StandardAttributes` самой выгрузки.
```bash
python skills/1c-config-index/scripts/config-index.py -ConfigPath src -OutFile .cache/index.json
python skills/1c-form-validate/scripts/form-validate.py -FormPath src/Catalogs/Контрагенты/Forms/ФормаЭлемента -IndexPath .cache/index.json
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!