Files
cc-1c-skills/docs/form-guide.md
T
Nick Shirokov 580124a971 Add form-info skill for compact analysis of 1C managed forms
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>
2026-02-09 11:09:42 +03:00

7.0 KiB
Raw Blame History

Управляемые формы (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 работает с формами из любых источников — конфигурации и внешних обработок. При работе с обработками:

  1. /epf-add-form — создать форму
  2. /form-info — проанализировать существующую форму
  3. Модифицировать Form.xml, ориентируясь на сводку
  4. /epf-build — собрать EPF

Спецификации