form-add — Claude Code skill: what it does, how to install
Generates 1C managed form scaffolds and registers them in configuration metadata XML. Handy when adding new forms to documents, catalogs, or registers.
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skillsWhat form-add does
The skill generates the standard file structure for a 1C managed form: the metadata XML, Form.xml, and an empty Module.bsl logic file. It also registers the reference inside the root XML definition of the target entity, such as a catalog or document.
Execution relies on form-add.ps1. You supply the entity path, form name, and an optional -Purpose argument like Object or List. The script verifies compatibility against the entity type and can set the form as default with -SetDefault. Incompatible purpose combinations produce an explicit error listing valid options.
Without powershell.exe in PATH, the generation fails immediately. Note that 1C constants lack standalone forms because the platform relies on shared CommonForm objects instead.
What it helps with
- generate a 1C managed form file triad with Form.xml and Module.bsl
- register a new form reference into the entity root XML file
- assign default form roles such as Object, List, or Record
- attach forms to external data source tables
Example prompts for the agent
- /form-add Documents/ExpenseReport.xml DocumentForm -Purpose Object
- /form-add Catalogs/Products.xml ChoiceForm -Purpose Choice -Synonym "Product Choice"
- /form-add InformationRegisters/CurrencyRates.xml RecordForm -Purpose Record -SetDefault
How to install form-add
1Plugin marketplace
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills/plugin install 1c-skills@cc-1c-skillsThis installs the whole 1c-skills plugin with all its skills
2Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill form-add -a claude-code3Manually: put the files in place
~/.claude/skills/form-add/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/form-add/
1Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill form-add -a codex2Manually: put the files in place
.agents/skills/form-add/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/form-add/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Nikolay-Shirokov/cc-1c-skills form-add2Manually: put the files in place
.github/skills/form-add/SKILL.mdPlatform CLI
gemini skills install https://github.com/Nikolay-Shirokov/cc-1c-skills --path .claude/skills/form-addManually: put the files in place
.devin/skills/form-add/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about form-add
How do I install form-add in Claude Code?
Run /plugin marketplace add Nikolay-Shirokov/cc-1c-skills first, then run /plugin install 1c-skills@cc-1c-skills.
What does form-add do?
It creates the metadata XML file, Form.xml, and Module.bsl, while registering the form inside the object XML definition.
Can form-add create a form for a 1C constant?
No, 1C constants do not support individual forms. The platform uses shared CommonForm objects for them, so the tool rejects constant paths.
Source text
SKILL.md · MIT
---
name: form-add
description: Добавить пустую управляемую форму к объекту 1С. Используй когда нужно создать у объекта новую форму
argument-hint: <ObjectPath> <FormName> [-Purpose <Purpose>] [-Synonym <Synonym>] [-SetDefault]
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
---
# /form-add — Добавление формы к объекту конфигурации
Создаёт управляемую форму (metadata XML + Form.xml + Module.bsl) и регистрирует её в корневом XML объекта конфигурации (Document, Catalog, InformationRegister и др.).
## Usage
```
/form-add <ObjectPath> <FormName> [-Purpose <Purpose>] [-Synonym <Synonym>] [-SetDefault]
```
| Параметр | Обязательный | По умолчанию | Описание |
|-------------|:------------:|--------------|----------------------------------------------|
| ObjectPath | да | — | Путь к XML-файлу объекта (Documents/Док.xml) |
| FormName | да | — | Имя формы (ФормаДокумента) |
| Purpose | нет | основная форма вида | Назначение формы — см. таблицу ниже: у справочника это форма объекта, у регистра сведений — форма записи, у журнала — форма списка |
| Synonym | нет | = FormName | Синоним формы |
| -SetDefault | нет | авто | Сделать основной. Без флага основной становится первая форма каждого назначения |
## Команда
```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-add.ps1" -ObjectPath "<ObjectPath>" -FormName "<FormName>" [-Purpose "<Purpose>"] [-Synonym "<Synonym>"] [-SetDefault]
```
## Purpose — назначение формы
| Purpose | Какая форма | Становится основной |
|---------|-------------|---------------------|
| Object | форма объекта (элемента, документа, обработки) | да |
| List | форма списка | да |
| Choice | форма выбора | да |
| Folder | форма группы | да |
| FolderChoice | форма выбора группы | да |
| Record | форма записи | да |
| RecordSet | форма набора записей | нет — в платформе нет такого свойства |
| Save | форма сохранения настроек | да |
| Load | форма загрузки настроек | да |
| Custom | произвольная форма, без привязки к объекту | нет |
### Что доступно типу объекта
| Тип объекта | Назначения |
|-------------|------------|
| Catalog, ChartOfCharacteristicTypes | Object, Folder, List, Choice, FolderChoice, Custom |
| Document, ChartOfAccounts, ChartOfCalculationTypes, ExchangePlan, BusinessProcess, Task | Object, List, Choice, Custom |
| DataProcessor, Report, ExternalDataProcessor, ExternalReport | Object, Custom |
| InformationRegister | Record, List, RecordSet, Custom |
| AccumulationRegister, AccountingRegister, CalculationRegister | List, RecordSet, Custom |
| DocumentJournal, FilterCriterion | List, Custom |
| Enum | List, Choice, Custom |
| SettingsStorage | Save, Load, Custom |
| Table (таблица внешнего источника) | `tableDataType=ObjectData` — Object, List, Choice, Custom; `NonobjectData` — Record, List, Choice, Custom |
Недопустимое сочетание отклоняется со списком доступных для этого типа. У константы собственных
форм нет — для неё используется общая форма (`CommonForm`).
Таблица внешнего источника адресуется файлом таблицы:
`ExternalDataSources/<Источник>/Tables/<Таблица>.xml`. Ссылки в такой форме трёхчастные;
без `-Purpose` берётся форма объекта, а у таблицы с составным ключом — форма записи.
## Примеры
```
# Форма документа
/form-add Documents/АвансовыйОтчет.xml ФормаДокумента -Purpose Object
# Форма списка каталога
/form-add Catalogs/Контрагенты.xml ФормаСписка -Purpose List
# Форма записи регистра сведений
/form-add InformationRegisters/КурсыВалют.xml ФормаЗаписи -Purpose Record
# Форма выбора с синонимом
/form-add Catalogs/Номенклатура.xml ФормаВыбора -Purpose Choice -Synonym "Выбор номенклатуры"
# Установить как форму по умолчанию
/form-add Documents/Заказ.xml ФормаДокументаНовая -Purpose Object -SetDefault
```
## Workflow
1. `/form-add` — создать каркас формы
2. `/form-compile` или `/form-edit` — наполнить Form.xml элементами
3. `/form-validate` — проверить корректность
4. `/form-info` — проанализировать результат
© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills