mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 22:35:16 +03:00
docs(skd): update specs for hidden, valueListAllowed, drilldown, groupHeaderTemplate
- skd-dsl-spec: @valueList, @hidden, field alias, dataParameters auto, drilldown, groupName/GroupHeader - skd-guide: new parameter flags, dataParameters auto, groupName, drilldown - 1c-dcs-spec: valueListAllowed element, DetailsAreaTemplateParameter, groupHeaderTemplate Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+43
-7
@@ -515,6 +515,7 @@ DataCompositionSchema
|
|||||||
| `useRestriction` | нет | `true` — параметр скрыт от пользователя, `false` — доступен |
|
| `useRestriction` | нет | `true` — параметр скрыт от пользователя, `false` — доступен |
|
||||||
| `expression` | нет | Выражение для автоматического вычисления (например, `&Период.ДатаНачала`) |
|
| `expression` | нет | Выражение для автоматического вычисления (например, `&Период.ДатаНачала`) |
|
||||||
| `availableAsField` | нет | `false` — параметр недоступен как поле в отчёте |
|
| `availableAsField` | нет | `false` — параметр недоступен как поле в отчёте |
|
||||||
|
| `valueListAllowed` | нет | `true` — разрешает передавать список значений в параметр |
|
||||||
| `use` | нет | Режим: `Always` (всегда), `Auto` (автоматически) |
|
| `use` | нет | Режим: `Always` (всегда), `Auto` (автоматически) |
|
||||||
|
|
||||||
### Типы значений параметров
|
### Типы значений параметров
|
||||||
@@ -562,26 +563,61 @@ DataCompositionSchema
|
|||||||
|---|---|
|
|---|---|
|
||||||
| `name` | Имя макета (ссылаются groupTemplate) |
|
| `name` | Имя макета (ссылаются groupTemplate) |
|
||||||
| `template` (вложенный) | Описание строк/ячеек (`dcsat:AreaTemplate`) |
|
| `template` (вложенный) | Описание строк/ячеек (`dcsat:AreaTemplate`) |
|
||||||
| `parameter` | Параметры макета (`dcsat:ExpressionAreaTemplateParameter`) — выражения для подстановки |
|
| `parameter` (Expression) | Параметры макета (`dcsat:ExpressionAreaTemplateParameter`) — выражения для подстановки |
|
||||||
|
| `parameter` (Details) | Параметры расшифровки (`dcsat:DetailsAreaTemplateParameter`) — для drilldown |
|
||||||
|
|
||||||
|
#### DetailsAreaTemplateParameter
|
||||||
|
|
||||||
|
Параметр расшифровки — активирует drilldown при клике на ячейку:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template"
|
||||||
|
xsi:type="dcsat:DetailsAreaTemplateParameter">
|
||||||
|
<dcsat:name>Расшифровка_ПоступлениеСырья</dcsat:name>
|
||||||
|
<dcsat:fieldExpression>
|
||||||
|
<dcsat:field>ИмяРесурса</dcsat:field>
|
||||||
|
<dcsat:expression>"ПоступлениеСырья"</dcsat:expression>
|
||||||
|
</dcsat:fieldExpression>
|
||||||
|
<dcsat:mainAction>DrillDown</dcsat:mainAction>
|
||||||
|
</parameter>
|
||||||
|
```
|
||||||
|
|
||||||
|
Привязка к ячейке — через appearance `Расшифровка`:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<dcscor:item>
|
||||||
|
<dcscor:parameter>Расшифровка</dcscor:parameter>
|
||||||
|
<dcscor:value xsi:type="dcscor:Parameter">Расшифровка_ПоступлениеСырья</dcscor:value>
|
||||||
|
</dcscor:item>
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 10. Привязки макетов группировок (groupTemplate)
|
## 10. Привязки макетов группировок (groupTemplate, groupHeaderTemplate)
|
||||||
|
|
||||||
Связывают группировку с пользовательским макетом:
|
Связывают группировку с пользовательским макетом. Два XML-элемента:
|
||||||
|
|
||||||
|
- `<groupTemplate>` — шаблон строки данных (`Header`) и итогов (`OverallHeader`)
|
||||||
|
- `<groupHeaderTemplate>` — шаблон заголовка группировки (шапка таблицы)
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<groupTemplate>
|
<groupHeaderTemplate>
|
||||||
<groupField>ТипЦен</groupField>
|
<groupName>ДанныеОтчета</groupName>
|
||||||
<templateType>Header</templateType>
|
<templateType>Header</templateType>
|
||||||
<template>Макет1</template>
|
<template>Макет1</template>
|
||||||
|
</groupHeaderTemplate>
|
||||||
|
<groupTemplate>
|
||||||
|
<groupField>Счет</groupField>
|
||||||
|
<templateType>Header</templateType>
|
||||||
|
<template>Макет2</template>
|
||||||
</groupTemplate>
|
</groupTemplate>
|
||||||
```
|
```
|
||||||
|
|
||||||
| Элемент | Описание |
|
| Элемент | Описание |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `groupField` | Имя поля группировки |
|
| `groupField` | Привязка к полю группировки |
|
||||||
| `templateType` | Тип: `Header` (заголовок), `Footer` (подвал), `Overall` (общий) |
|
| `groupName` | Привязка к именованной группировке в структуре варианта |
|
||||||
|
| `templateType` | `Header` (строки данных), `OverallHeader` (итоги) |
|
||||||
| `template` | Ссылка на имя template из раздела 9 |
|
| `template` | Ссылка на имя template из раздела 9 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+55
-3
@@ -297,7 +297,7 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
### Shorthand
|
### Shorthand
|
||||||
|
|
||||||
```
|
```
|
||||||
"<name>: <type> [= <default>] [@autoDates]"
|
"<name>: <type> [= <default>] [@autoDates] [@valueList] [@hidden]"
|
||||||
```
|
```
|
||||||
|
|
||||||
Примеры:
|
Примеры:
|
||||||
@@ -332,6 +332,25 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
"parameters": ["Период: StandardPeriod = LastMonth @autoDates"]
|
"parameters": ["Период: StandardPeriod = LastMonth @autoDates"]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### @valueList
|
||||||
|
|
||||||
|
Флаг `@valueList` генерирует `<valueListAllowed>true</valueListAllowed>` — разрешает передавать список значений в параметр:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"parameters": ["Организации: CatalogRef.Организации @valueList"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### @hidden
|
||||||
|
|
||||||
|
Флаг `@hidden` — скрытый параметр. Автоматически ставит `availableAsField=false` и исключает параметр из автогенерируемых `dataParameters` при `"dataParameters": "auto"`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"parameters": [
|
||||||
|
{ "name": "Счет43", "type": "ChartOfAccountsRef.Хозрасчетный", "value": "...", "hidden": true },
|
||||||
|
"СкрытыйПараметр: string = test @hidden"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
### Объектная форма
|
### Объектная форма
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@@ -355,6 +374,8 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
| `value` | Значение по умолчанию |
|
| `value` | Значение по умолчанию |
|
||||||
| `expression` | Выражение для вычисления |
|
| `expression` | Выражение для вычисления |
|
||||||
| `availableAsField` | `false` — скрыть из полей |
|
| `availableAsField` | `false` — скрыть из полей |
|
||||||
|
| `valueListAllowed` | `true` — разрешить список значений |
|
||||||
|
| `hidden` | `true` — скрытый параметр (авто `availableAsField=false`, исключение из `dataParameters: auto`) |
|
||||||
| `useRestriction` | `true` — скрыть от пользователя |
|
| `useRestriction` | `true` — скрыть от пользователя |
|
||||||
| `use` | `"Always"`, `"Auto"` |
|
| `use` | `"Always"`, `"Auto"` |
|
||||||
|
|
||||||
@@ -399,6 +420,8 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Ключ `field` — алиас для `dataPath` (используется если `dataPath` не указан).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8. Связи наборов (dataSetLinks)
|
## 8. Связи наборов (dataSetLinks)
|
||||||
@@ -606,6 +629,14 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
|
|
||||||
### dataParameters
|
### dataParameters
|
||||||
|
|
||||||
|
#### Автогенерация
|
||||||
|
|
||||||
|
```json
|
||||||
|
"dataParameters": "auto"
|
||||||
|
```
|
||||||
|
|
||||||
|
Генерирует записи `dataParameters` для всех не-hidden параметров с `userSettingID`. Скрытые параметры (`hidden: true` / `@hidden`) исключаются.
|
||||||
|
|
||||||
#### Shorthand-строка
|
#### Shorthand-строка
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@@ -760,7 +791,7 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
| `style` | Именованный пресет оформления (по умолчанию `"data"`) |
|
| `style` | Именованный пресет оформления (по умолчанию `"data"`) |
|
||||||
| `widths` | Массив ширин колонок (применяется ко всем строкам) |
|
| `widths` | Массив ширин колонок (применяется ко всем строкам) |
|
||||||
| `minHeight` | Минимальная высота первой строки (для шапок) |
|
| `minHeight` | Минимальная высота первой строки (для шапок) |
|
||||||
| `parameters` | Параметры макета — выражения для подстановки |
|
| `parameters` | Параметры макета — выражения для подстановки (поддерживают `drilldown`) |
|
||||||
|
|
||||||
#### Синтаксис ячеек
|
#### Синтаксис ячеек
|
||||||
|
|
||||||
@@ -820,14 +851,35 @@ XML-маппинг — по `<group>` на каждый элемент:
|
|||||||
|
|
||||||
Детект: если есть `rows` — используется компактный DSL, иначе — raw XML из `template`.
|
Детект: если есть `rows` — используется компактный DSL, иначе — raw XML из `template`.
|
||||||
|
|
||||||
|
#### Расшифровка (drilldown) в параметрах шаблона
|
||||||
|
|
||||||
|
Ключ `drilldown` в параметре шаблона автоматически генерирует:
|
||||||
|
1. `DetailsAreaTemplateParameter` с именем `Расшифровка_<значение>`, `fieldExpression` по полю `ИмяРесурса`, `mainAction=DrillDown`
|
||||||
|
2. Привязку `Расшифровка` в appearance ячеек, ссылающихся на этот параметр через `{Имя}`
|
||||||
|
|
||||||
|
```json
|
||||||
|
"parameters": [
|
||||||
|
{ "name": "Сырье", "expression": "ПоступлениеСырья", "drilldown": "ПоступлениеСырья" }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
### groupTemplates
|
### groupTemplates
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"groupTemplates": [
|
"groupTemplates": [
|
||||||
{ "groupField": "ТипЦен", "templateType": "Header", "template": "Макет1" }
|
{ "groupName": "ДанныеОтчета", "templateType": "GroupHeader", "template": "Макет1" },
|
||||||
|
{ "groupField": "Счет", "templateType": "Header", "template": "Макет2" },
|
||||||
|
{ "groupField": "Счет", "templateType": "OverallHeader", "template": "Макет3" }
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
| Ключ | Описание |
|
||||||
|
|------|----------|
|
||||||
|
| `groupField` | Привязка к полю группировки → `<groupField>` |
|
||||||
|
| `groupName` | Привязка к именованной группировке в структуре варианта → `<groupName>` |
|
||||||
|
| `templateType` | `Header` / `OverallHeader` → `<groupTemplate>`, `GroupHeader` → `<groupHeaderTemplate>` |
|
||||||
|
| `template` | Имя макета |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 11. Полный пример — минимальный
|
## 11. Полный пример — минимальный
|
||||||
|
|||||||
+7
-3
@@ -71,7 +71,7 @@
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
`@autoDates` автоматически генерирует параметры `ДатаНачала`/`ДатаОкончания` (заменяет 5 строк на 1).
|
Флаги: `@autoDates` (авто ДатаНачала/ДатаОкончания), `@valueList` (разрешить список значений), `@hidden` (скрыть параметр, исключить из `dataParameters: auto`).
|
||||||
|
|
||||||
### Вычисляемые поля — shorthand
|
### Вычисляемые поля — shorthand
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
- **filter shorthand**: `"Поле оператор значение @флаги"` — флаги `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`
|
- **filter shorthand**: `"Поле оператор значение @флаги"` — флаги `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`
|
||||||
- **dataParameters shorthand**: `"Имя = значение @флаги"`
|
- **dataParameters shorthand**: `"Имя = значение @флаги"`, или `"auto"` — автогенерация для всех не-hidden параметров
|
||||||
- **structure shorthand**: `"Поле1 > Поле2 > details"` — `>` разделяет уровни группировки
|
- **structure shorthand**: `"Поле1 > Поле2 > details"` — `>` разделяет уровни группировки
|
||||||
- **conditionalAppearance**: условное оформление с автоопределением типов значений (Color, Boolean, LocalStringType)
|
- **conditionalAppearance**: условное оформление с автоопределением типов значений (Color, Boolean, LocalStringType)
|
||||||
|
|
||||||
@@ -125,13 +125,17 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"groupTemplates": [
|
"groupTemplates": [
|
||||||
{ "groupField": "Счет", "templateType": "GroupHeader", "template": "Макет1" },
|
{ "groupName": "ДанныеОтчета", "templateType": "GroupHeader", "template": "Макет1" },
|
||||||
{ "groupField": "Счет", "templateType": "Header", "template": "Макет2" }
|
{ "groupField": "Счет", "templateType": "Header", "template": "Макет2" }
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
Синтаксис ячеек: `"текст"` — статика, `"{Имя}"` — параметр, `"|"` — объединение с ячейкой выше, `null` — пустая.
|
Синтаксис ячеек: `"текст"` — статика, `"{Имя}"` — параметр, `"|"` — объединение с ячейкой выше, `null` — пустая.
|
||||||
|
|
||||||
|
Привязки: `groupField` — к полю, `groupName` — к именованной группировке. `templateType`: `Header`/`OverallHeader` → `<groupTemplate>`, `GroupHeader` → `<groupHeaderTemplate>`.
|
||||||
|
|
||||||
|
Расшифровка (drilldown): ключ `drilldown` в параметре шаблона генерирует `DetailsAreaTemplateParameter` и привязку `Расшифровка` в appearance ячеек.
|
||||||
|
|
||||||
Встроенные стили: `header` (фон, центр, перенос), `data` (фон группы), `subheader` (без фона, центр), `total` (без фона). Все — Arial 10, рамки Solid 1px, цвета через стили платформы. Пользовательские стили — через `skd-styles.json` в директории проекта.
|
Встроенные стили: `header` (фон, центр, перенос), `data` (фон группы), `subheader` (без фона, центр), `total` (без фона). Все — Arial 10, рамки Solid 1px, цвета через стили платформы. Пользовательские стили — через `skd-styles.json` в директории проекта.
|
||||||
|
|
||||||
### Объектная форма
|
### Объектная форма
|
||||||
|
|||||||
Reference in New Issue
Block a user