Parses Form.xml (up to 28K lines) and outputs a compact summary (40-180 lines): element tree with group orientation, data bindings, events, visibility flags, attributes with types, commands, and parameters. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
7.0 KiB
Управляемые формы (Form)
Навыки группы /form-* позволяют анализировать управляемые формы 1С:Предприятия 8.3 из XML-исходников конфигурации, не читая тысячи строк XML.
Навыки
| Навык | Параметры | Описание |
|---|---|---|
/form-info |
<FormPath> |
Компактная сводка: дерево элементов, реквизиты, команды, события |
Сценарии использования
Анализ формы перед модификацией
Файлы Form.xml содержат от сотен до десятков тысяч строк XML. 80% объёма — визуальный шум (цвета, шрифты, размеры, автогенерированные подсказки). /form-info извлекает суть.
> Покажи структуру формы документа РеализацияТоваровУслуг
Claude найдёт Form.xml и вызовет /form-info. Результат — компактная сводка (40–100 строк вместо тысяч):
=== Form: ФормаДокумента (Documents.РеализацияТоваровУслуг) ===
Properties: AutoTitle=false, CommandBarLocation=None
Events:
OnCreateAtServer -> ПриСозданииНаСервере
OnOpen -> ПриОткрытии
Elements:
├─ [Group:AH] ГруппаШапка
│ ├─ [Input] Организация -> Объект.Организация {OnChange}
│ └─ [Input] Контрагент -> Объект.Контрагент {OnChange, StartChoice}
├─ [Table] Товары -> Объект.Товары
│ ├─ [Input] Номенклатура -> Объект.Товары.Номенклатура {OnChange}
│ └─ [Input] Сумма -> Объект.Товары.Сумма [ro]
└─ [Pages] Страницы
├─ [Page] Основное (5 items)
└─ [Page] Печать (2 items)
Attributes:
*Объект: DocumentObject.РеализацияТоваровУслуг (main)
Валюта: CatalogRef.Валюты
...
Commands:
Печать -> ПечатьДокумента [Ctrl+P]
Добавление элемента на форму
Чтобы добавить поле на форму, нужно знать структуру групп и ориентацию (горизонтальная/вертикальная). /form-info показывает это в дереве элементов.
> Добавь поле "Склад" в шапку формы документа
Claude вызовет /form-info, увидит [Group:AH] ГруппаШапка → [Group:V] ГруппаШапкаЛевая, поймёт куда вставить элемент в XML.
Поиск обработчиков и привязок
Из сводки видно, какие события подключены к каким элементам:
> Какие обработчики срабатывают при изменении контрагента?
Claude вызовет /form-info и найдёт: [Input] Контрагент -> Объект.Контрагент {OnChange, StartChoice} — далее откроет модуль формы и найдёт процедуры по именам событий.
Точечное погружение в детали
Сводка — это карта. Для деталей по конкретному элементу достаточно grep по имени из сводки:
> Покажи все свойства элемента ДоговорКонтрагента
Claude сделает grep по Form.xml и найдёт полный XML-блок с ChoiceParameters, ChoiceFoldersAndItems, стилями и прочими свойствами.
Чтение вывода
Дерево элементов
| Обозначение | Элемент |
|---|---|
[Group:V] [Group:H] [Group:AH] [Group:AV] |
Группа (Vertical / Horizontal / AlwaysHorizontal / AlwaysVertical) |
[Input] |
Поле ввода |
[Check] |
Флажок |
[Label] |
Декоративная надпись |
[LabelField] |
Поле надписи (привязанное к данным) |
[Table] |
Таблица |
[Pages] / [Page] |
Вкладки (страницы показывают количество элементов) |
[Button] |
Кнопка |
[CmdBar] |
Командная панель |
[Popup] |
Выпадающее меню |
[Picture] |
Декоративная картинка |
[PicField] |
Поле картинки |
[Calendar] |
Календарь |
Флаги
Показываются только при отклонении от умолчания:
[hidden]— элемент скрыт (Visible=false)[disabled]— элемент недоступен (Enabled=false)[ro]— только чтение (ReadOnly=true),collapse— сворачиваемая группа (Behavior=Collapsible)
Привязки и события
-> Объект.Поле— DataPath (привязка к данным)-> Form.Command.Имя— привязка к команде формы{OnChange, StartChoice}— имена подключённых событий[title:Текст]— заголовок, если отличается от имени элемента
Реквизиты
*Объект: DocumentObject.Реализация (main)— основной реквизит формыТаблица: ValueTable [Кол1: тип, Кол2: тип]— таблица значений с колонкамиСписок: DynamicList -> Catalog.Пользователи— динамический список с основной таблицей
Примеры слеш-команд
> /form-info upload/acc_8.3.24/Documents/РеализацияТоваровУслуг/Forms/ФормаДокумента/Ext/Form.xml
> /form-info src/МояОбработка/Forms/Форма/Ext/Form.xml
Связь с EPF-навыками
/form-info работает с формами из любых источников — конфигурации и внешних обработок. При работе с обработками:
/epf-add-form— создать форму/form-info— проанализировать существующую форму- Модифицировать Form.xml, ориентируясь на сводку
/epf-build— собрать EPF
Спецификации
- Управляемая форма — Form.xml, элементы, команды, реквизиты, система типов