1C Forms - Complete Toolkit
Полный набор инструментов для работы с управляемыми формами 1С. Объединяет практические skills с MCP инструментами для максимальной эффективности.
🎯 Quick Start
Создать новую форму
# 1. Создать структуру формы 1c-forms scaffold add Documents/ЗаказКлиента.xml ФормаДокумента Object "Форма заказа" # 2. Спроектировать форму (JSON DSL) # Создать form-design.json с описанием элементов # 3. Скомпилировать Form.xml 1c-forms compile form-design.json Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml # 4. Валидировать 1c-forms validate Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml
Редактировать существующую форму
# 1. Проанализировать структуру 1c-forms info Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml # 2. Добавить элементы 1c-forms edit Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml --add-input "Комментарий" --add-button "Печать" # 3. Валидировать изменения 1c-forms validate Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml
📦 Включенные Skills
1. scaffold - Создание/удаление форм
Файл: 1c-forms/scaffold/SKILL.md
Что делает:
- •Создает структуру формы (metadata XML + Form.xml + Module.bsl)
- •Регистрирует форму в метаданных объекта
- •Удаляет формы с очисткой метаданных
- •Поддерживает все типы объектов (Document, Catalog, DataProcessor, Register, etc)
Когда использовать:
- •Добавление новой формы к объекту
- •Удаление существующей формы
- •Создание форм для EPF/ERF
MCP интеграция: Использует user-1c-forms-get_xsd_schema для валидации структуры
2. compile - Генерация Form.xml из JSON DSL
Файл: 1c-forms/compile/SKILL.md
Что делает:
- •Компилирует компактный JSON (20-50 строк) в полный Form.xml (100-500+ строк)
- •Автоматически генерирует companion элементы
- •Присваивает последовательные ID
- •Добавляет корректные namespace
Когда использовать:
- •Проектирование формы с нуля
- •Быстрое создание типовых форм
- •Генерация форм по шаблону
MCP интеграция:
- •Использует
user-1c-forms-get_json_schemaдля валидации JSON - •Использует
user-1c-forms-get_xsd_schemaдля валидации результата
3. edit - Редактирование существующих форм
Файл: 1c-forms/edit/SKILL.md
Что делает:
- •Добавляет элементы в существующий Form.xml
- •Добавляет реквизиты с правильными типами
- •Добавляет команды с обработчиками
- •Автоматически выделяет свободные ID
Когда использовать:
- •Добавление полей в форму
- •Добавление кнопок и команд
- •Расширение существующей формы
MCP интеграция: Использует user-1c-forms-get_xsd_schema для валидации
4. info - Анализ структуры формы
Файл: 1c-forms/info/SKILL.md
Что делает:
- •Читает Form.xml и выводит компактную сводку
- •Показывает дерево элементов с типами
- •Перечисляет реквизиты с типами данных
- •Показывает команды и события
Когда использовать:
- •Изучение незнакомой формы
- •Поиск элементов и реквизитов
- •Документирование структуры формы
MCP интеграция: Нет (чтение XML)
5. validate - Валидация Form.xml
Файл: 1c-forms/validate/SKILL.md
Что делает:
- •Проверяет структурные ошибки Form.xml
- •Проверяет уникальность ID
- •Проверяет наличие companion элементов
- •Проверяет корректность ссылок DataPath и команд
Когда использовать:
- •После создания/редактирования формы
- •Перед коммитом изменений
- •При отладке проблем с формой
MCP интеграция: Использует user-1c-forms-get_xsd_schema для валидации
6. patterns - Паттерны проектирования форм
Файл: 1c-forms/patterns/SKILL.md
Что делает:
- •Справочник архетипов форм (Object, List, Choice, Record)
- •Соглашения именования элементов
- •Продвинутые паттерны (master-detail, wizard, search)
- •Best practices для форм
Когда использовать:
- •Проектирование формы с нуля (5+ элементов)
- •Выбор правильного архетипа
- •Изучение best practices
MCP интеграция: Использует user-1c-forms-get_instructions для интеграции
🔄 Workflow: Создание формы с нуля
Шаг 1: Планирование (используй patterns)
Загрузи: 1c-forms/patterns/SKILL.md Определи: - Архетип формы (Object, List, Choice, Record) - Основные элементы (поля, таблицы, кнопки) - События и обработчики
Шаг 2: Создание структуры (используй scaffold)
Загрузи: 1c-forms/scaffold/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/scaffold/scripts/form-add.ps1 ` -ObjectPath "Documents/ЗаказКлиента.xml" ` -FormName "ФормаДокумента" ` -Purpose "Object" ` -Synonym "Форма заказа клиента" ` -SetDefault
Шаг 3: Проектирование (создай JSON DSL)
{
"title": "Заказ клиента",
"properties": {
"autoTitle": false,
"commandBarLocation": "Top"
},
"events": {
"OnCreateAtServer": "ПриСозданииНаСервере"
},
"elements": [
{
"group": "vertical",
"name": "ГруппаШапка",
"title": "Шапка документа",
"elements": [
{ "input": "Дата", "title": "Дата" },
{ "input": "Контрагент", "title": "Контрагент" },
{ "input": "Сумма", "title": "Сумма", "readOnly": true }
]
},
{
"table": "Товары",
"title": "Товары",
"on": ["OnStartEdit", "OnEditEnd"]
},
{
"group": "horizontal",
"name": "ГруппаКоманды",
"elements": [
{ "button": "Провести", "title": "Провести" },
{ "button": "Печать", "title": "Печать" }
]
}
],
"attributes": [
{ "name": "Дата", "type": "Date" },
{ "name": "Контрагент", "type": "CatalogRef.Контрагенты" },
{ "name": "Сумма", "type": "Number", "precision": 15, "scale": 2 }
],
"commands": [
{ "name": "Провести", "action": "ПровестиДокумент" },
{ "name": "Печать", "action": "НапечататьДокумент" }
]
}
Шаг 4: Компиляция (используй compile)
Загрузи: 1c-forms/compile/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/compile/scripts/form-compile.ps1 ` -JsonPath "form-design.json" ` -OutputPath "Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml"
Шаг 5: Валидация (используй validate)
Загрузи: 1c-forms/validate/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/validate/scripts/form-validate.ps1 ` -FormPath "Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml"
Шаг 6: Доработка (используй edit если нужно)
Если нужны дополнительные элементы: Загрузи: 1c-forms/edit/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/edit/scripts/form-edit.ps1 ` -FormPath "Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml" ` -AddInput "НовоеПоле" ` -AddButton "НоваяКоманда"
🔄 Workflow: Редактирование существующей формы
Шаг 1: Анализ (используй info)
Загрузи: 1c-forms/info/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/info/scripts/form-info.ps1 ` -FormPath "Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml" Изучи: - Существующие элементы - Реквизиты и их типы - Команды и обработчики - Используемые ID
Шаг 2: Редактирование (используй edit)
Загрузи: 1c-forms/edit/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/edit/scripts/form-edit.ps1 ` -FormPath "Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml" ` -AddInput "Email" ` -AddButton "ОтправитьEmail"
Шаг 3: Валидация (используй validate)
Загрузи: 1c-forms/validate/SKILL.md Выполни: powershell -NoProfile -File .cursor/skills/1c-forms/validate/scripts/form-validate.ps1 ` -FormPath "Documents/ЗаказКлиента/Forms/ФормаДокумента/Ext/Form.xml"
🎓 MCP Integration
Доступные MCP инструменты
- •
user-1c-forms-get_xsd_schema
- •Получить XSD схему для валидации Form.xml
- •Используется в: scaffold, compile, edit, validate
- •
user-1c-forms-get_json_schema
- •Получить JSON схему для валидации JSON DSL
- •Используется в: compile
- •
user-1c-forms-get_instructions
- •Получить инструкции по интеграции форм в метаданные
- •Используется в: scaffold, patterns
Когда вызывать MCP
Перед созданием формы: - get_xsd_schema: Получить актуальную схему - get_instructions: Понять структуру метаданных Перед компиляцией из JSON: - get_json_schema: Валидировать JSON DSL - get_xsd_schema: Валидировать результат После редактирования: - get_xsd_schema: Валидировать изменения При изучении паттернов: - get_instructions: Узнать best practices
📋 Чеклист качества формы
Структура
- • Форма зарегистрирована в метаданных объекта
- • Все файлы созданы (metadata XML, Form.xml, Module.bsl)
- • UUID уникальны и корректны
- • Namespace объявлены правильно
Элементы
- • Все ID уникальны и последовательны
- • Companion элементы созданы (ExtInfo, ContextMenu, etc)
- • DataPath ссылаются на существующие реквизиты
- • Команды имеют обработчики
Реквизиты
- • Типы данных корректны
- • MainAttribute установлен для основного реквизита
- • Табличные части имеют правильную структуру
Модуль
- • 5 регионов присутствуют
- • ПриСозданииНаСервере реализован
- • Обработчики событий созданы
- • Нет синтаксических ошибок (проверить через BSL LSP)
Валидация
- • XSD валидация пройдена
- • Структурные проверки пройдены
- • Нет предупреждений от validate
🚀 Интеграция с 1c-feature-dev-enhanced
Phase 6: Реализация
Когда в плане есть задача "Создать форму":
1. Загрузить: 1c-forms/patterns/SKILL.md - Выбрать архетип - Определить структуру 2. Загрузить: 1c-forms/scaffold/SKILL.md - Создать структуру формы 3. Создать JSON DSL с описанием формы 4. Загрузить: 1c-forms/compile/SKILL.md - Скомпилировать Form.xml 5. Загрузить: 1c-forms/validate/SKILL.md - Валидировать результат 6. Если нужны доработки: - Загрузить: 1c-forms/edit/SKILL.md - Добавить элементы 7. Финальная валидация
📚 Дополнительные ресурсы
Документация
- •XSD схема:
user-1c-forms-get_xsd_schema - •JSON схема:
user-1c-forms-get_json_schema - •Инструкции:
user-1c-forms-get_instructions
Примеры
- •Простая форма объекта:
1c-forms/compile/examples/simple-object-form.json - •Форма списка:
1c-forms/compile/examples/list-form.json - •Форма с таблицей:
1c-forms/compile/examples/table-form.json - •Wizard форма:
1c-forms/patterns/examples/wizard-pattern.md
Спецификации
- •Form.xml формат:
1c-forms/patterns/specs/form-xml-spec.md - •JSON DSL формат:
1c-forms/compile/specs/json-dsl-spec.md - •Архетипы форм:
1c-forms/patterns/specs/form-archetypes.md
⚠️ Критические правила
- •
Всегда используй MCP перед созданием/редактированием
- •get_xsd_schema для валидации
- •get_json_schema для JSON DSL
- •get_instructions для интеграции
- •
Валидируй после каждого изменения
- •Используй validate skill
- •Проверяй через BSL LSP
- •
Следуй архетипам
- •Загружай patterns для сложных форм (5+ элементов)
- •Используй правильный Purpose
- •
Сохраняй JSON DSL
- •Храни JSON описание формы в репозитории
- •Используй для документации и регенерации
- •
Не редактируй Form.xml вручную
- •Используй edit skill для изменений
- •Или регенерируй через compile
- •
Проверяй интеграцию с метаданными
- •Форма зарегистрирована в объекте
- •DefaultForm установлен корректно
🎯 Быстрые команды
# Создать форму 1c-forms scaffold add <ObjectPath> <FormName> [Purpose] [Synonym] # Скомпилировать из JSON 1c-forms compile <JsonPath> <OutputPath> # Добавить элементы 1c-forms edit <FormPath> --add-input <Name> --add-button <Name> # Проанализировать 1c-forms info <FormPath> # Валидировать 1c-forms validate <FormPath> # Изучить паттерны 1c-forms patterns [archetype]
Last updated: 2026-02-11
Version: 1.0
Source: Творческое объединение cursor_rules_1c + наши MCP интеграции