mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-17 16:25:16 +03:00
Add advanced ERP patterns to form layout guide
Collapsible groups, status banners, popup menus, custom command bars, hyperlink labels — with DSL examples for each pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -104,6 +104,8 @@
|
|||||||
| Итоги | `ГруппаИтоги` | horizontal |
|
| Итоги | `ГруппаИтоги` | horizontal |
|
||||||
| Кнопки | `ГруппаКнопок` | horizontal |
|
| Кнопки | `ГруппаКнопок` | horizontal |
|
||||||
| Страницы | `ГруппаСтраницы` / `Страницы` | pages |
|
| Страницы | `ГруппаСтраницы` / `Страницы` | pages |
|
||||||
|
| Предупреждение | `ГруппаПредупреждение` | horizontal, visible:false |
|
||||||
|
| Доп. секция | `ГруппаДополнительно` / `ГруппаПрочее` | vertical, collapse |
|
||||||
|
|
||||||
### Элементы
|
### Элементы
|
||||||
|
|
||||||
@@ -115,6 +117,9 @@
|
|||||||
| Фильтр | `Отбор[Поле]` | — |
|
| Фильтр | `Отбор[Поле]` | — |
|
||||||
| Флажок фильтра | `Отбор[Поле]Использование` | — |
|
| Флажок фильтра | `Отбор[Поле]Использование` | — |
|
||||||
| Кнопка команды | `[Команда]Кнопка` | — |
|
| Кнопка команды | `[Команда]Кнопка` | — |
|
||||||
|
| Баннер-картинка | `[Баннер]Картинка` | — |
|
||||||
|
| Баннер-надпись | `[Баннер]Надпись` | — |
|
||||||
|
| Подменю | `Подменю[Действие]` | — |
|
||||||
|
|
||||||
### Обработчики событий
|
### Обработчики событий
|
||||||
|
|
||||||
@@ -141,6 +146,119 @@
|
|||||||
7. **Скрытые элементы для состояний.** Баннеры, предупреждения — `visible: false` по умолчанию, показываются программно.
|
7. **Скрытые элементы для состояний.** Баннеры, предупреждения — `visible: false` по умолчанию, показываются программно.
|
||||||
8. **Надписи-ссылки для диалогов.** `labelField` с `hyperlink: true` и событием Click — для открытия подформ (ЦеныИВалюта, УчётнаяПолитика).
|
8. **Надписи-ссылки для диалогов.** `labelField` с `hyperlink: true` и событием Click — для открытия подформ (ЦеныИВалюта, УчётнаяПолитика).
|
||||||
|
|
||||||
|
## Продвинутые паттерны (ERP)
|
||||||
|
|
||||||
|
Извлечены из конфигурации «Управление предприятием» (ERP 8.3.24). Применяйте в сложных формах.
|
||||||
|
|
||||||
|
### Сворачиваемые группы (Collapsible)
|
||||||
|
|
||||||
|
Для необязательных секций — «Подписи», «Дополнительно», «Прочее». Сворачиваются по умолчанию, экономят место.
|
||||||
|
|
||||||
|
```
|
||||||
|
ГруппаПодписи (vertical, collapse, collapsed)
|
||||||
|
├─ Руководитель -> Объект.Руководитель
|
||||||
|
└─ ГлавныйБухгалтер -> Объект.ГлавныйБухгалтер
|
||||||
|
```
|
||||||
|
|
||||||
|
DSL:
|
||||||
|
```json
|
||||||
|
{ "group": "vertical", "name": "ГруппаПодписи", "title": "Подписи",
|
||||||
|
"behavior": "Collapsible", "collapsed": true, "children": [
|
||||||
|
{ "input": "Руководитель", "path": "Объект.Руководитель" },
|
||||||
|
{ "input": "ГлавныйБухгалтер", "path": "Объект.ГлавныйБухгалтер" }
|
||||||
|
]}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Баннер-предупреждение (Status Banner)
|
||||||
|
|
||||||
|
Группа «картинка + надпись» без заголовка, скрыта по умолчанию. Показывается программно при определённых условиях (просрочка, блокировка, информация).
|
||||||
|
|
||||||
|
```
|
||||||
|
ГруппаПредупреждение (horizontal, showTitle:false, visible:false)
|
||||||
|
├─ [Picture] ПредупреждениеКартинка -> StdPicture.Information
|
||||||
|
└─ [Label] ПредупреждениеНадпись (maxWidth:76, textColor:style:ПоясняющийТекст)
|
||||||
|
```
|
||||||
|
|
||||||
|
DSL:
|
||||||
|
```json
|
||||||
|
{ "group": "horizontal", "name": "ГруппаПредупреждение", "showTitle": false,
|
||||||
|
"visible": false, "children": [
|
||||||
|
{ "picture": "ПредупреждениеКартинка" },
|
||||||
|
{ "label": "ПредупреждениеНадпись", "title": "Текст предупреждения",
|
||||||
|
"maxWidth": 76, "autoMaxWidth": false }
|
||||||
|
]}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Выпадающее меню в командной панели (Popup)
|
||||||
|
|
||||||
|
Группировка связанных команд (печать, отправка, выгрузка) в одну кнопку-меню с иконкой.
|
||||||
|
|
||||||
|
```
|
||||||
|
[CmdBar] КоманднаяПанель
|
||||||
|
├─ [Popup] ПодменюПечать (picture: StdPicture.Print, representation: Picture)
|
||||||
|
│ ├─ [Button] ПечатьНакладная -> Печать [cmd]
|
||||||
|
│ └─ [Button] ПечатьСчёт -> ПечатьСчёт [cmd]
|
||||||
|
└─ [Popup] ПодменюОтправить (picture: StdPicture.SendByEmail)
|
||||||
|
└─ [Button] ОтправитьПоПочте -> Отправить [cmd]
|
||||||
|
```
|
||||||
|
|
||||||
|
DSL:
|
||||||
|
```json
|
||||||
|
{ "cmdBar": "КоманднаяПанель", "children": [
|
||||||
|
{ "popup": "ПодменюПечать", "title": "Печать",
|
||||||
|
"picture": "StdPicture.Print", "representation": "Picture", "children": [
|
||||||
|
{ "button": "ПечатьНакладная", "command": "Печать" },
|
||||||
|
{ "button": "ПечатьСчёт", "command": "ПечатьСчёт" }
|
||||||
|
]},
|
||||||
|
{ "popup": "ПодменюОтправить", "title": "Отправить",
|
||||||
|
"picture": "StdPicture.SendByEmail", "representation": "Picture", "children": [
|
||||||
|
{ "button": "ОтправитьПоПочте", "command": "Отправить" }
|
||||||
|
]}
|
||||||
|
]}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Форма без стандартной командной панели
|
||||||
|
|
||||||
|
Для модальных диалогов и мастеров — отключение стандартной командной панели, полностью ручное управление кнопками.
|
||||||
|
|
||||||
|
```
|
||||||
|
properties: commandBarLocation=None, windowOpeningMode=LockWholeInterface
|
||||||
|
Содержимое (vertical)
|
||||||
|
├─ ... рабочая область ...
|
||||||
|
ГруппаКнопок (horizontal)
|
||||||
|
├─ Назад (command), Далее (command, defaultButton)
|
||||||
|
└─ Закрыть (stdCommand: Close)
|
||||||
|
```
|
||||||
|
|
||||||
|
DSL:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"properties": { "commandBarLocation": "None", "windowOpeningMode": "LockWholeInterface" },
|
||||||
|
"elements": [
|
||||||
|
{ "group": "vertical", "name": "Содержимое", "children": [ "..." ] },
|
||||||
|
{ "group": "horizontal", "name": "ГруппаКнопок", "children": [
|
||||||
|
{ "button": "Назад", "command": "Назад" },
|
||||||
|
{ "button": "Далее", "command": "Далее", "defaultButton": true },
|
||||||
|
{ "button": "Закрыть", "stdCommand": "Close" }
|
||||||
|
]}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Надпись-гиперссылка для открытия подформ
|
||||||
|
|
||||||
|
`labelField` с `hyperlink: true` и событием Click — вместо кнопки. Типичный приём для «ЦеныИВалюта», «УчётнаяПолитика» и подобных.
|
||||||
|
|
||||||
|
```
|
||||||
|
[LabelField] ЦеныИВалютаНадпись -> ЦеныИВалюта (hyperlink) {Click}
|
||||||
|
```
|
||||||
|
|
||||||
|
DSL:
|
||||||
|
```json
|
||||||
|
{ "labelField": "ЦеныИВалютаНадпись", "path": "ЦеныИВалюта",
|
||||||
|
"hyperlink": true, "on": ["Click"] }
|
||||||
|
```
|
||||||
|
|
||||||
## Примеры DSL
|
## Примеры DSL
|
||||||
|
|
||||||
### Типичная форма обработки
|
### Типичная форма обработки
|
||||||
|
|||||||
Reference in New Issue
Block a user