К основному содержанию
скилл CX Codex

form-patterns — скилл для Claude Code: что делает и как установить

Справочник паттернов управляемых форм 1С для проектирования структуры, имён элементов и обработчиков. Нужен перед сборкой формы.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills
Открыть на GitHub

Что делает form-patterns

Скилл описывает архетипы форм документа, обработки, списка, элемента справочника и мастера. Он подсказывает, как размещать шапку, таблицы, страницы, фильтры, итоги и командную панель, а также какие свойства и события использовать.

Внутри есть конвенции имён групп, полей, фильтров и обработчиков, правила для autoCmdBar, DynamicList, labelField, скрытых предупреждений и сворачиваемых секций. Продвинутые примеры охватывают popup-меню, гиперссылки и модальные формы. Если расположение элементов не задано, вызывайте /form-patterns перед /form-compile.

Какие задачи решает

  • спроектировать структуру управляемой формы 1С
  • выбрать архетип формы документа или обработки
  • разложить реквизиты по колонкам и страницам
  • задать имена элементов и обработчиков
  • оформить фильтры, итоги и командную панель

Примеры запросов агенту

  • Вызови /form-patterns и предложи структуру формы документа 1С для этих реквизитов.
  • Перед /form-compile выбери архетип формы списка и опиши нужные фильтры.
  • Спроектируй мастер 1С по паттернам из /form-patterns, включая страницы и кнопки.

Как установить form-patterns

1Через маркетплейс плагинов

/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills

Команда ставит плагин 1c-skills целиком, со всеми его скиллами

2Через Skills CLI (Vercel)

npx skills add Nikolay-Shirokov/cc-1c-skills --skill form-patterns -a claude-code

3Вручную: положить файлы

~/.claude/skills/form-patterns/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/form-patterns/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о form-patterns

Как установить form-patterns в Claude Code?

В Claude Code выполните /plugin marketplace add Nikolay-Shirokov/cc-1c-skills без пробела после обратного апострофа? Затем установите плагин командой /plugin install 1c-skills@cc-1c-skills.

Что делает form-patterns?

Скилл помогает проектировать управляемые формы 1С: выбирает архетип, задаёт структуру элементов и предлагает конвенции имён, свойства и события.

Когда вызывать form-patterns перед form-compile?

Вызывайте его перед /form-compile, если требования пользователя не описывают расположение элементов формы.

Исходный текст

SKILL.md · MIT
---
name: form-patterns
description: Справочник паттернов компоновки управляемых форм 1С. Используй как справочник при проектировании форм — архетипы, конвенции, продвинутые приёмы
argument-hint: (no arguments)
allowed-tools: []
---

# /form-patterns — паттерны компоновки форм

Справочник типовых паттернов дизайна управляемых форм 1С. Вызывай **перед** проектированием формы через `/form-compile`, когда требования пользователя не детализируют расположение элементов.

**Как использовать:** выбери подходящий архетип, применяй конвенции именования, при необходимости используй продвинутые паттерны.

---

## Архетипы форм

### Форма документа

```
Шапка (horizontal, 2 колонки)
├─ Левая (vertical): НомерДата (H: Номер + Дата "от"), Контрагент, Договор
├─ Правая (vertical): Организация, Подразделение, ЦеныИВалюта (надпись-ссылка)
Страницы (pages)
├─ Товары: таблица Объект.Товары
├─ Услуги: таблица Объект.Услуги (опционально)
└─ Дополнительно: прочие реквизиты
Подвал (vertical)
├─ Итоги (horizontal): Всего, НДС, Скидка
└─ КомментарийОтветственный (horizontal): Комментарий + Ответственный
```

**События:** OnCreateAtServer, OnReadAtServer, OnOpen, BeforeWriteAtServer, AfterWriteAtServer, AfterWrite, NotificationProcessing
**Свойства:** autoTitle=false

### Форма обработки (DataProcessor)

```
Параметры (vertical)
├─ Группа полей ввода (Организация, Период, режимы работы)
├─ Информационные надписи (label, hyperlink)
Рабочая область
├─ Таблица данных или Pages с вкладками
Главная АКП формы (autoCmdBar)
├─ Выполнить / Применить (defaultButton: true)
└─ Закрыть (stdCommand: Close)
```

**События:** OnCreateAtServer, OnOpen, NotificationProcessing
**Свойства:** windowOpeningMode=LockOwnerWindow (если диалог), autoTitle=false

### Форма списка

```
Отборы (group: alwaysHorizontal)
├─ ГруппаОтбор[Поле] (H): Флажок + Поле ввода (для каждого фильтра)
Список (table, DynamicList)
├─ Колонки: labelField (не input — данные только для чтения)
```

**События:** OnCreateAtServer, OnOpen, NotificationProcessing, OnLoadDataFromSettingsAtServer
**Свойства:** autoSaveDataInSettings=Use
**Фильтры:** пара реквизитов на каждый — `Отбор[Поле]` (значение) + `Отбор[Поле]Использование` (boolean)

### Форма элемента справочника

**Простая:**
```
ГруппаРеквизитов (horizontal)
├─ Наименование -> Объект.Description
└─ Код -> Объект.Code (если нужен)
```

**Сложная:**
```
Главное (vertical)
├─ Наименование -> Объект.Description
├─ Параметры (horizontal, 2 колонки)
│  ├─ Левая: основные реквизиты
│  └─ Правая: дополнительные реквизиты
└─ КонтактныеДанные / Дополнительно (vertical)
```

**События:** OnCreateAtServer, OnReadAtServer, BeforeWriteAtServer, NotificationProcessing

### Мастер (Wizard)

```
Страницы (pages, OnCurrentPageChange)
├─ Шаг1: описание + параметры
├─ Шаг2: основная работа
└─ Шаг3: результат
Главная АКП формы (autoCmdBar)
├─ Назад, Далее (defaultButton: true), Выполнить
└─ Закрыть (stdCommand: Close)
```

**Свойства:** windowOpeningMode=LockOwnerWindow

---

## Конвенции именования

### Группы

| Назначение | Имя | Тип |
|-----------|-----|-----|
| Шапка | `ГруппаШапка` | horizontal |
| Левая колонка | `ГруппаШапкаЛевая` | vertical |
| Правая колонка | `ГруппаШапкаПравая` | vertical |
| Номер+Дата | `ГруппаНомерДата` | horizontal |
| Подвал | `ГруппаПодвал` | vertical |
| Итоги | `ГруппаИтоги` | horizontal |
| Главная АКП формы | `ФормаКоманднаяПанель` | autoCmdBar |
| Страницы | `ГруппаСтраницы` / `Страницы` | pages |
| Предупреждение | `ГруппаПредупреждение` | horizontal, visible:false |
| Доп. секция | `ГруппаДополнительно` / `ГруппаПрочее` | vertical, collapse |

### Элементы

| Назначение | Имя |
|-----------|-----|
| Поле в таблице | `[Таблица][Поле]` |
| Итог | `Итоги[Поле]` |
| Надпись-ссылка | `[Поле]Надпись` |
| Фильтр | `Отбор[Поле]` |
| Флажок фильтра | `Отбор[Поле]Использование` |
| Кнопка команды | `[Команда]Кнопка` |
| Баннер-картинка | `[Баннер]Картинка` |
| Баннер-надпись | `[Баннер]Надпись` |
| Подменю | `Подменю[Действие]` |

### Обработчики событий

Имя = имя элемента + суффикс на русском:

| Событие | Суффикс | Пример |
|---------|---------|--------|
| OnChange | ПриИзменении | `ОрганизацияПриИзменении` |
| StartChoice | НачалоВыбора | `КонтрагентНачалоВыбора` |
| Click | Нажатие | `ЦеныИВалютаНажатие` |
| OnEditEnd | ПриОкончанииРедактирования | `ТоварыПриОкончанииРедактирования` |
| OnStartEdit | ПриНачалеРедактирования | `ТоварыПриНачалеРедактирования` |

Обработчики формы: `ПриСозданииНаСервере`, `ПриОткрытии`, `ПередЗакрытием`, `ОбработкаОповещения`.

---

## Принципы компоновки

1. **Порядок чтения.** Сверху вниз, слева направо. Самое важное — вверху.
2. **Двухколоночная шапка.** Основные реквизиты слева (контрагент, склад), организационные справа (организация, подразделение).
3. **Кнопки действий — на главной АКП формы** (`autoCmdBar`), не в отдельной группе на форме. Главная кнопка — `defaultButton: true`. Закрыть — всегда последняя.
4. **Таблицы — основная область.** Табличные части занимают большую часть формы, обычно на Pages.
5. **Итоги рядом с таблицей.** В подвале, горизонтальная группа, все поля readOnly.
6. **Фильтры — отдельная зона.** Над списком, alwaysHorizontal, пара «флажок + поле» на каждый фильтр.
7. **Скрытые элементы для состояний.** Баннеры, предупреждения — `visible: false`, показываются программно.
8. **Надписи-ссылки для диалогов.** `labelField` с `hyperlink: true` и событием Click.

---

## Продвинутые паттерны (ERP)

### Сворачиваемые группы

Для необязательных секций (подписи, дополнительно, прочее):

```json
{ "group": "collapsible", "name": "ГруппаПодписи", "title": "Подписи",
  "collapsed": true, "children": [...] }
```

### Баннер-предупреждение

Группа «картинка + надпись», скрыта по умолчанию, показывается программно:

```json
{ "group": "horizontal", "name": "ГруппаПредупреждение", "showTitle": false,
  "visible": false, "children": [
    { "picture": "ПредупреждениеКартинка" },
    { "label": "ПредупреждениеНадпись", "title": "Текст", "maxWidth": 76, "autoMaxWidth": false }
]}
```

### Popup-меню в командной панели

Группировка связанных команд (печать, отправка) в одну кнопку с иконкой:

```json
{ "cmdBar": "КоманднаяПанель", "children": [
    { "popup": "ПодменюПечать", "title": "Печать",
      "picture": "StdPicture.Print", "representation": "Picture", "children": [
        { "button": "ПечатьНакладная", "command": "Печать" },
        { "button": "ПечатьСчёт", "command": "ПечатьСчёт" }
    ]}
]}
```

### Форма без стандартной командной панели

Для модальных диалогов и мастеров:

```json
{ "properties": { "commandBarLocation": "None", "windowOpeningMode": "LockWholeInterface" } }
```

### Надпись-гиперссылка

Вместо кнопки для открытия подформ (ЦеныИВалюта, УчётнаяПолитика):

```json
{ "labelField": "ЦеныИВалютаНадпись", "path": "ЦеныИВалюта", "hyperlink": true, "on": ["Click"] }
```

---

## Пример: форма обработки (полный DSL)

```json
{
  "title": "Загрузка данных из CSV",
  "properties": { "autoTitle": false, "windowOpeningMode": "LockOwnerWindow" },
  "events": { "OnCreateAtServer": "ПриСозданииНаСервере" },
  "elements": [
    { "group": "vertical", "name": "ГруппаПараметры", "children": [
      { "input": "ФайлЗагрузки", "path": "ФайлЗагрузки", "title": "Файл", "clearButton": true, "horizontalStretch": true, "on": ["StartChoice"] },
      { "input": "Кодировка", "path": "Кодировка" },
      { "input": "Разделитель", "path": "Разделитель", "title": "Разделитель колонок" }
    ]},
    { "table": "Данные", "path": "Объект.Данные", "on": ["OnStartEdit"], "columns": [
      { "input": "ДанныеНомерСтроки", "path": "Объект.Данные.LineNumber", "readOnly": true, "title": "№" },
      { "input": "ДанныеНаименование", "path": "Объект.Данные.Наименование" },
      { "input": "ДанныеКоличество", "path": "Объект.Данные.Количество", "on": ["OnChange"] },
      { "input": "ДанныеСумма", "path": "Объект.Данные.Сумма", "readOnly": true }
    ]},
    { "autoCmdBar": "ФормаКоманднаяПанель", "children": [
      { "button": "Загрузить", "command": "Загрузить", "title": "Загрузить из файла", "defaultButton": true },
      { "button": "Очистить", "command": "Очистить", "title": "Очистить таблицу" },
      { "button": "Закрыть", "stdCommand": "Close" }
    ]}
  ],
  "attributes": [
    { "name": "Объект", "type": "ExternalDataProcessorObject.ЗагрузкаИзCSV", "main": true },
    { "name": "ФайлЗагрузки", "type": "string" },
    { "name": "Кодировка", "type": "string(20)" },
    { "name": "Разделитель", "type": "string(5)" }
  ],
  "commands": [
    { "name": "Загрузить", "action": "ЗагрузитьОбработка" },
    { "name": "Очистить", "action": "ОчиститьОбработка" }
  ]
}
```

© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills

Похожие скиллы

Каталог скиллов SKILL.md →
ui-design-patterns manutej Справочник по типовым паттернам интерфейса: навигация, формы, вывод данных, обратная связь и доступность. Пригодится, когда проектируешь компоненты или разбираешь чужой UI. CX Codex +1 853установок form-design Owl-Listener Проектирует веб-формы от порядка полей и группировки до валидации и доступности. Пригодится при сборке ввода данных любого масштаба — от одиночных полей до многошаговых сценариев. CX Codex +1 1 900установок k2f-intake-form suzheng Скилл проектирует формы приёма клиентов, пациентов и проектов: порядок разделов, плотность полей, замысел заполняемого макета. Пригодится, когда нужно собрать анкету с нуля или переделать старый PDF. CX Codex +1 559установок recipe-collect-form-responses официальный googleworkspace Тянет ответы из Google Forms через CLI gws: находит нужную форму, показывает её структуру и выводит заполненные ответы таблицей. CX Codex +1 30 100установок playwright-automation-fill-in-form официальный github Заполняет заданную форму через Playwright MCP, загружает изображение и останавливается перед отправкой. Нужен для демонстрационного сценария Playwright Live. 13 693установок PDF Form Filler claude-office-skills Скилл заполняет PDF-формы по вашим данным и вытаскивает значения полей из готовых документов. Пригодится, когда форм много или они повторяются. CX Codex +1 4 700установок

Из того же набора32

skd-info Скилл разбирает схему компоновки данных 1С: показывает наборы, поля, параметры, варианты и запросы. Нужен для анализа отчёта. CX Codex 47установок epf-build Собирает внешнюю обработку 1С в файл EPF или ERF из XML-исходников и проверяет модули до сборки. CX Codex 47установок erf-init Генерирует минимальный набор XML-исходников внешнего отчёта 1С: корневой файл метаданных и каталог отчёта. Пригодится, когда начинаешь новый отчёт и не хочешь собирать каркас руками. CX Codex 46установок subsystem-edit Скилл меняет состав и свойства подсистемы 1С в XML. Подходит для добавления объектов, дочерних подсистем и точечных правок. CX Codex 45установок form-compile Собирает управляемую форму 1С в Form.xml из JSON-описания элементов или автоматически из метаданных объекта. Нужен, когда форму надо создать с нуля или получить типовую. CX Codex 45установок web-stop Останавливает Apache HTTP Server в проекте с веб-публикацией. Подходит, когда сервер нужно выключить, сохранив опубликованные базы. CX Codex 44установок web-publish Готовит default.vrd, правит httpd.conf и поднимает Apache, чтобы база 1С открывалась в браузере. Повторный запуск просто обновляет конфигурацию. CX Codex 44установок interface-validate Проверяет CommandInterface.xml командного интерфейса 1С на структурные ошибки. Нужен после настройки интерфейса подсистемы. CX Codex 44установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой