Skip to content
Development
Skill

/form-patterns

Справочник паттернов компоновки и UX-правил управляемых форм 1С. Используй как справочник при проектировании форм — архетипы, конвенции, UX-правила элементов, продвинутые приёмы

BOOST
From plugin
unica
22749 skills1 MCP
Install
$ npx -y skills add IngvarConsulting/unica --skill form-patterns --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/form-patterns

Context preview

The summary Claude sees to decide when to auto-load this skill.

Справочник паттернов компоновки и UX-правил управляемых форм 1С. Используй как справочник при проектировании форм — архетипы, конвенции, UX-правила элементов, продвинутые приёмы

SKILL.md

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

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

Справочник типовых паттернов дизайна управляемых форм 1С. Используй **перед** созданием формы через `unica.apply` с операциями `form.add` и `item.add`, когда требования пользователя не детализируют расположение элементов.

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

---

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

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

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

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

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

Параметры (vertical)
├─ Группа полей ввода (Организация, Период, режимы работы)
├─ Информационные надписи (label, hyperlink)
Рабочая область
├─ Таблица данных или Pages с вкладками
Кнопки действий
├─ Выполнить / Применить (defaultButton)
├─ Закрыть (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: результат
Кнопки (horizontal)
├─ Назад (command), Далее (command, defaultButton), Выполнить (command)
└─ Закрыть (stdCommand: Close)

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

---

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

Группы

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

Элементы

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

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

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

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

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

---

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

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

---

UX-правила для элементов и компоновки форм

Перед выбором элементов и компоновки прочитай этот раздел в [справочнике форм](../../references/specs/form-patterns.md). Он содержит UX-рекомендации, примеры и ограничения поддерживаемых элементов.

---

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

JSON ниже — внутреннее описание формы из справки `form-compile`, а не аргументы `item.add`. Через `unica.apply` каждый элемент добавляется отдельно: вложенный — `item.add` на адресе контейнера, обраб

Read more
Ships withunica

Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.

Get the whole plugin

Other skills on unica.

api-design
Skill

api-design

Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…

autonomous-server
Skill

autonomous-server

Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…

background-jobs
Skill

background-jobs

Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…

bsp-patterns
Skill

bsp-patterns

Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…

cf-edit
Skill

cf-edit

Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…

cf-init
Skill

cf-init

Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля