api-design
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Справочник паттернов компоновки и UX-правил управляемых форм 1С. Используй как справочник при проектировании форм — архетипы, конвенции, UX-правила элементов, продвинутые приёмы
$ npx -y skills add IngvarConsulting/unica --skill form-patterns --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/form-patternsContext preview
The summary Claude sees to decide when to auto-load this skill.
Справочник паттернов компоновки и UX-правил управляемых форм 1С. Используй как справочник при проектировании форм — архетипы, конвенции, UX-правила элементов, продвинутые приёмы
name: form-patterns description: Справочник паттернов компоновки и UX-правил управляемых форм 1С. Используй как справочник при проектировании форм — архетипы, конвенции, UX-правила элементов, продвинутые приёмы argument-hint: (no arguments) allowed-tools: - Read
Справочник типовых паттернов дизайна управляемых форм 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
Параметры (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
Страницы (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.
---
Перед выбором элементов и компоновки прочитай этот раздел в [справочнике форм](../../references/specs/form-patterns.md). Он содержит UX-рекомендации, примеры и ограничения поддерживаемых элементов.
---
JSON ниже — внутреннее описание формы из справки `form-compile`, а не аргументы `item.add`. Через `unica.apply` каждый элемент добавляется отдельно: вложенный — `item.add` на адресе контейнера, обраб
Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…
Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…
Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…
Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…
Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля