form-compile — 1c-enterprise form-compile, 1c-ai-development-kit, community, 1c-enterprise, ide skills, ai-agents, code-generation, cursor-ide, development-tools

v1.0.0

Об этом навыке

Идеально подходит для агентов разработки 1C:Enterprise, требующих автоматической генерации Form.xml из компактных определений JSON. Компиляция управляемой формы 1С из компактного JSON-определения. Используй когда нужно создать форму с нуля по описанию элементов

# Core Topics

Arman-Kudaibergenov Arman-Kudaibergenov
[64]
[6]
Updated: 2/24/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 9/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Quality floor passed for review
Review Score
9/11
Quality Score
50
Canonical Locale
ru
Detected Body Locale
ru

Идеально подходит для агентов разработки 1C:Enterprise, требующих автоматической генерации Form.xml из компактных определений JSON. Компиляция управляемой формы 1С из компактного JSON-определения. Используй когда нужно создать форму с нуля по описанию элементов

Зачем использовать этот навык

Наделяет агентов возможностью генерировать полные файлы Form.xml с объявлениями пространства имен, автоматически сгенерированными сопутствующими элементами и последовательными идентификаторами, используя JSON DSL для эффективного разработки форм, и интегрируется без проблем с Cursor IDE и другими агентами ИИ для упрощения проектов 1C:Enterprise.

Подходит лучше всего

Идеально подходит для агентов разработки 1C:Enterprise, требующих автоматической генерации Form.xml из компактных определений JSON.

Реализуемые кейсы использования for form-compile

Генерировать полные файлы Form.xml из компактных определений JSON
Автоматизировать разработку форм для проектов 1C:Enterprise с помощью JSON DSL
Создавать отполированные формы с автоматически сгенерированными сопутствующими элементами и объявлениями пространства имен

! Безопасность и ограничения

  • Требует компактного определения JSON в качестве входных данных
  • Специально разработан для разработки 1C:Enterprise
  • Оптимизирован для форм с 5+ элементами или неясными требованиями, с необязательным вызовом /form-patterns для загрузки справочных материалов

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Curated Collection Review

Reviewed In Curated Collections

This section shows how Killer-Skills has already collected, reviewed, and maintained this skill inside first-party curated paths. For operators and crawlers alike, this is a stronger signal than treating the upstream README as the primary story.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is form-compile?

Идеально подходит для агентов разработки 1C:Enterprise, требующих автоматической генерации Form.xml из компактных определений JSON. Компиляция управляемой формы 1С из компактного JSON-определения. Используй когда нужно создать форму с нуля по описанию элементов

How do I install form-compile?

Run the command: npx killer-skills add Arman-Kudaibergenov/1c-ai-development-kit/form-compile. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for form-compile?

Key use cases include: Генерировать полные файлы Form.xml из компактных определений JSON, Автоматизировать разработку форм для проектов 1C:Enterprise с помощью JSON DSL, Создавать отполированные формы с автоматически сгенерированными сопутствующими элементами и объявлениями пространства имен.

Which IDEs are compatible with form-compile?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for form-compile?

Требует компактного определения JSON в качестве входных данных. Специально разработан для разработки 1C:Enterprise. Оптимизирован для форм с 5+ элементами или неясными требованиями, с необязательным вызовом /form-patterns для загрузки справочных материалов.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add Arman-Kudaibergenov/1c-ai-development-kit/form-compile. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use form-compile immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

form-compile

Install form-compile, an AI agent skill for AI agent workflows and automation. Review the use cases, limitations, and setup path before rollout.

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

/form-compile — Генерация Form.xml из JSON DSL

Принимает компактное JSON-определение формы (20–50 строк) и генерирует полный корректный Form.xml (100–500+ строк) с namespace-декларациями, автогенерированными companion-элементами, последовательными ID.

При проектировании формы с нуля (5+ элементов или нечёткие требования) — вызовите /form-patterns для загрузки справочника: архетипы, конвенции именования, продвинутые паттерны. Для простых форм (1–3 поля, пользователь описал что нужно) — не нужно.

Использование

/form-compile <JsonPath> <OutputPath>

Параметры

ПараметрОбязательныйОписание
JsonPathдаПуть к JSON-определению формы
OutputPathдаПуть к выходному файлу Form.xml

Команда

powershell
1powershell.exe -NoProfile -File .claude/skills/form-compile/scripts/form-compile.ps1 -JsonPath "<json>" -OutputPath "<xml>"

JSON DSL — справка

Структура верхнего уровня

json
1{ 2 "title": "Заголовок формы", 3 "properties": { "autoTitle": false, ... }, 4 "events": { "OnCreateAtServer": "ПриСозданииНаСервере" }, 5 "excludedCommands": ["Reread"], 6 "elements": [ ... ], 7 "attributes": [ ... ], 8 "commands": [ ... ], 9 "parameters": [ ... ] 10}
  • title — заголовок формы (multilingual). Можно указать и в properties, но лучше на верхнем уровне
  • properties — свойства формы: autoTitle, windowOpeningMode, commandBarLocation, saveDataInSettings, width, height и др.
  • events — обработчики событий формы (ключ: имя события 1С, значение: имя процедуры)
  • excludedCommands — исключённые стандартные команды

Элементы (ключ определяет тип)

DSL ключXML элементЗначение ключа
"group"UsualGroup"horizontal" / "vertical" / "alwaysHorizontal" / "alwaysVertical" / "collapsible"
"input"InputFieldимя элемента
"check"CheckBoxFieldимя
"label"LabelDecorationимя (текст задаётся через title)
"labelField"LabelFieldимя
"table"Tableимя
"pages"Pagesимя
"page"Pageимя
"button"Buttonимя
"picture"PictureDecorationимя
"picField"PictureFieldимя
"calendar"CalendarFieldимя
"cmdBar"CommandBarимя
"popup"Popupимя

Общие свойства (все типы элементов)

КлючОписание
nameПереопределить имя (по умолчанию = значение ключа типа)
titleЗаголовок элемента
visible: falseСкрыть (синоним: hidden: true)
enabled: falseСделать недоступным (синоним: disabled: true)
readOnly: trueТолько чтение
on: [...]События с автоименованием обработчиков
handlers: {...}Явное задание имён обработчиков: {"OnChange": "МоёИмя"}

Допустимые имена событий (on)

Компилятор предупреждает о неизвестных событиях. Имена регистрозависимы — используйте точно как указано.

Форма (events): OnCreateAtServer, OnOpen, BeforeClose, OnClose, NotificationProcessing, ChoiceProcessing, OnReadAtServer, BeforeWriteAtServer, OnWriteAtServer, AfterWriteAtServer, BeforeWrite, AfterWrite, FillCheckProcessingAtServer, BeforeLoadDataFromSettingsAtServer, OnLoadDataFromSettingsAtServer, ExternalEvent, Opening

input / picField: OnChange, StartChoice, ChoiceProcessing, AutoComplete, TextEditEnd, Clearing, Creating, EditTextChange

check: OnChange

table: OnStartEdit, OnEditEnd, OnChange, Selection, ValueChoice, BeforeAddRow, BeforeDeleteRow, AfterDeleteRow, BeforeRowChange, BeforeEditEnd, OnActivateRow, OnActivateCell, Drag, DragStart, DragCheck, DragEnd

label / picture: Click, URLProcessing

labelField: OnChange, StartChoice, ChoiceProcessing, Click, URLProcessing, Clearing

button: Click

pages: OnCurrentPageChange

Поле ввода (input)

КлючОписаниеПример
pathDataPath — привязка к данным"Объект.Организация"
titleLocationРазмещение заголовка"none", "left", "top"
multiLine: trueМногострочное полетекстовое поле, комментарий
passwordMode: trueРежим пароля (звёздочки)поле ввода пароля
choiceButton: trueКнопка выбора ("...")ссылочное поле
clearButton: trueКнопка очистки ("X")
spinButton: trueКнопка прокруткичисловые поля
dropListButton: trueКнопка выпадающего списка
markIncomplete: trueПометка незаполненногообязательные поля
skipOnInput: trueПропускать при обходе Tab
inputHintПодсказка в пустом поле"Введите наименование..."
width / heightРазмерчисла
autoMaxWidth: falseОтключить авто-ширинудля фиксированных полей
horizontalStretch: trueРастягивать по ширине

Чекбокс (check)

КлючОписание
pathDataPath
titleLocationРазмещение заголовка

Надпись-декорация (label)

КлючОписание
titleТекст надписи (обязательно)
hyperlink: trueСделать ссылкой
width / heightРазмер

Группа (group)

Значение ключа задаёт ориентацию: "horizontal", "vertical", "alwaysHorizontal", "alwaysVertical", "collapsible".

КлючОписание
showTitle: trueПоказывать заголовок группы
united: falseНе объединять рамку
representation"none", "normal", "weak", "strong"
children: [...]Вложенные элементы

Таблица (table)

Важно: таблица требует связанный реквизит формы типа ValueTable с колонками (см. раздел "Связки").

КлючОписание
pathDataPath (привязка к реквизиту-таблице)
columns: [...]Колонки — массив элементов (обычно input)
changeRowSet: trueРазрешить добавление/удаление строк
changeRowOrder: trueРазрешить перемещение строк
heightВысота в строках таблицы
header: falseСкрыть шапку
footer: trueПоказать подвал
commandBarLocation"None", "Top", "Auto"
searchStringLocation"None", "Top", "Auto"

Страницы (pages + page)

Ключ (pages)Описание
pagesRepresentation"None", "TabsOnTop", "TabsOnBottom" и др.
children: [...]Массив page
Ключ (page)Описание
titleЗаголовок вкладки
groupОриентация внутри страницы
children: [...]Содержимое страницы

Кнопка (button)

КлючОписание
commandИмя команды формы → Form.Command.Имя
stdCommandСтандартная команда: "Close"Form.StandardCommand.Close; с точкой: "Товары.Add"Form.Item.Товары.StandardCommand.Add
defaultButton: trueКнопка по умолчанию
type"usual", "hyperlink", "commandBar"
pictureКартинка кнопки
representation"Auto", "Text", "Picture", "PictureAndText"
locationInCommandBar"Auto", "InCommandBar", "InAdditionalSubmenu"

Командная панель (cmdBar)

КлючОписание
autofill: trueАвтозаполнение стандартными командами
children: [...]Кнопки панели

Выпадающее меню (popup)

КлючОписание
titleЗаголовок подменю
children: [...]Кнопки подменю

Используется внутри cmdBar для группировки кнопок в подменю:

json
1{ "cmdBar": "Панель", "children": [ 2 { "popup": "Добавить", "title": "Добавить", "children": [ 3 { "button": "ДобавитьСтроку", "stdCommand": "Товары.Add" }, 4 { "button": "ДобавитьИзДокумента", "command": "ДобавитьИзДокумента", "title": "Из документа" } 5 ]} 6]}

Реквизиты (attributes)

json
1{ "name": "Объект", "type": "DataProcessorObject.Загрузка", "main": true } 2{ "name": "Итого", "type": "decimal(15,2)" } 3{ "name": "Таблица", "type": "ValueTable", "columns": [ 4 { "name": "Номенклатура", "type": "CatalogRef.Номенклатура" }, 5 { "name": "Количество", "type": "decimal(10,3)" } 6]}
  • savedData: true — сохраняемые данные

Команды (commands)

json
1{ "name": "Загрузить", "action": "ЗагрузитьОбработка", "shortcut": "Ctrl+Enter" }
  • title — заголовок (если отличается от name)
  • picture — картинка команды

Система типов

DSLXML
"string" / "string(100)"xs:string + StringQualifiers
"decimal(15,2)"xs:decimal + NumberQualifiers
"decimal(10,0,nonneg)"с AllowedSign=Nonnegative
"boolean"xs:boolean
"date" / "dateTime" / "time"xs:dateTime + DateFractions
"CatalogRef.XXX"cfg:CatalogRef.XXX
"DocumentRef.XXX"cfg:DocumentRef.XXX
"ValueTable"v8:ValueTable
"ValueList"v8:ValueListType
"Type1 | Type2"составной тип

Связки: элемент + реквизит

Таблица и некоторые поля требуют связанный реквизит. Элемент ссылается на реквизит через path.

Таблица — элемент table + реквизит ValueTable:

json
1{ 2 "elements": [ 3 { "table": "Товары", "path": "Объект.Товары", "columns": [ 4 { "input": "Номенклатура", "path": "Объект.Товары.Номенклатура" } 5 ]} 6 ], 7 "attributes": [ 8 { "name": "Объект", "type": "DataProcessorObject.Загрузка", "main": true, 9 "columns": [ 10 { "name": "Товары", "type": "ValueTable", "columns": [ 11 { "name": "Номенклатура", "type": "CatalogRef.Номенклатура" } 12 ]} 13 ] 14 } 15 ] 16}

Или, если таблица привязана к реквизиту формы (не к Объект):

json
1{ 2 "elements": [ 3 { "table": "ТаблицаДанных", "path": "ТаблицаДанных", "columns": [ 4 { "input": "Наименование", "path": "ТаблицаДанных.Наименование" } 5 ]} 6 ], 7 "attributes": [ 8 { "name": "ТаблицаДанных", "type": "ValueTable", "columns": [ 9 { "name": "Наименование", "type": "string(150)" } 10 ]} 11 ] 12}

Паттерны

Диалог загрузки файла

json
1{ 2 "title": "Загрузка из файла", 3 "properties": { "autoTitle": false }, 4 "events": { "OnCreateAtServer": "ПриСозданииНаСервере" }, 5 "elements": [ 6 { "group": "horizontal", "name": "ГруппаФайл", "children": [ 7 { "input": "ИмяФайла", "path": "ИмяФайла", "title": "Файл", "inputHint": "Выберите файл...", "choiceButton": true, "on": ["StartChoice"] }, 8 { "check": "ПерваяСтрокаЗаголовок", "path": "ПерваяСтрокаЗаголовок" } 9 ]}, 10 { "input": "Результат", "path": "Результат", "multiLine": true, "height": 8, "readOnly": true, "title": "Лог" }, 11 { "group": "horizontal", "name": "ГруппаКнопок", "children": [ 12 { "button": "Загрузить", "command": "Загрузить", "defaultButton": true }, 13 { "button": "Закрыть", "stdCommand": "Close" } 14 ]} 15 ], 16 "attributes": [ 17 { "name": "Объект", "type": "ExternalDataProcessorObject.ЗагрузкаИзФайла", "main": true }, 18 { "name": "ИмяФайла", "type": "string" }, 19 { "name": "ПерваяСтрокаЗаголовок", "type": "boolean" }, 20 { "name": "Результат", "type": "string" } 21 ], 22 "commands": [ 23 { "name": "Загрузить", "action": "ЗагрузитьОбработка", "shortcut": "Ctrl+Enter" } 24 ] 25}

Мастер (wizard) с шагами

json
1{ 2 "title": "Мастер настройки", 3 "properties": { "autoTitle": false }, 4 "elements": [ 5 { "pages": "СтраницыМастера", "pagesRepresentation": "None", "children": [ 6 { "page": "Шаг1", "title": "Параметры", "children": [ 7 { "input": "Параметр1", "path": "Параметр1" } 8 ]}, 9 { "page": "Шаг2", "title": "Результат", "children": [ 10 { "input": "Итог", "path": "Итог", "readOnly": true } 11 ]} 12 ]}, 13 { "group": "horizontal", "name": "Навигация", "children": [ 14 { "button": "Назад", "command": "Назад", "title": "< Назад" }, 15 { "button": "Далее", "command": "Далее", "title": "Далее >" } 16 ]} 17 ], 18 "attributes": [ 19 { "name": "Объект", "type": "ExternalDataProcessorObject.Мастер", "main": true }, 20 { "name": "Параметр1", "type": "string" }, 21 { "name": "Итог", "type": "string" } 22 ], 23 "commands": [ 24 { "name": "Назад", "action": "НазадОбработка" }, 25 { "name": "Далее", "action": "ДалееОбработка" } 26 ] 27}

Список с фильтром и таблицей

json
1{ 2 "title": "Просмотр данных", 3 "elements": [ 4 { "group": "horizontal", "name": "Фильтр", "children": [ 5 { "input": "Период", "path": "Период", "on": ["OnChange"] }, 6 { "input": "Организация", "path": "Организация", "on": ["OnChange"] } 7 ]}, 8 { "table": "Данные", "path": "Данные", "changeRowSet": true, "columns": [ 9 { "input": "Дата", "path": "Данные.Дата" }, 10 { "input": "Сумма", "path": "Данные.Сумма" }, 11 { "input": "Комментарий", "path": "Данные.Комментарий" } 12 ]} 13 ], 14 "attributes": [ 15 { "name": "Объект", "type": "ExternalDataProcessorObject.Просмотр", "main": true }, 16 { "name": "Период", "type": "date" }, 17 { "name": "Организация", "type": "string" }, 18 { "name": "Данные", "type": "ValueTable", "columns": [ 19 { "name": "Дата", "type": "date" }, 20 { "name": "Сумма", "type": "decimal(15,2)" }, 21 { "name": "Комментарий", "type": "string(200)" } 22 ]} 23 ] 24}

Автогенерация

  • Companion-элементы: ContextMenu, ExtendedTooltip и др. создаются автоматически
  • Обработчики событий: "on": ["OnChange"]ОрганизацияПриИзменении
  • Namespace: все 17 namespace-деклараций
  • ID: последовательная нумерация, AutoCommandBar = id="-1"
  • Unknown keys: выводится предупреждение о нераспознанных ключах

Верификация

/form-validate <OutputPath>    — проверка корректности XML
/form-info <OutputPath>        — визуальная сводка структуры

Особенности для внешних обработок (EPF)

  • Тип главного реквизита: ExternalDataProcessorObject.ИмяОбработки (не DataProcessorObject)
  • DataPath: используйте реквизиты формы (ИмяРеквизита), а не Объект.ИмяРеквизита — у внешних обработок нет реквизитов объекта в метаданных
  • Ссылочные типы: CatalogRef.XXX, DocumentRef.XXX допустимы в XML, но для сборки EPF потребуется база с целевой конфигурацией (см. /epf-build)

Связанные навыки

Looking for an alternative to form-compile or another community skill for your workflow? Explore these related open-source skills.

Показать все

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

widget-generator

Logo of f
f

Generate customizable widget plugins for the prompts.chat feed system

flags

Logo of vercel
vercel

The React Framework

138.4k
0
Браузер

pr-review

Logo of pytorch
pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

98.6k
0
Разработчик