diff --git a/docs/skd-dsl-spec.md b/docs/skd-dsl-spec.md index 1d9f1467..cf334480 100644 --- a/docs/skd-dsl-spec.md +++ b/docs/skd-dsl-spec.md @@ -378,6 +378,27 @@ XML-маппинг — по `` на каждый элемент: | `hidden` | `true` — скрытый параметр (авто `availableAsField=false`, исключение из `dataParameters: auto`) | | `useRestriction` | `true` — скрыть от пользователя | | `use` | `"Always"`, `"Auto"` | +| `denyIncompleteValues` | `true` — запретить произвольные значения (только из availableValues) | +| `availableValues` | Массив `[{value, presentation}]` — допустимые значения с представлениями | + +### availableValues + +Список допустимых значений параметра. Тип значения определяется автоматически (`Перечисление.*`, `Справочник.*` и др. → `dcscor:DesignTimeValue`): + +```json +{ + "name": "ПорядокОкругления", + "type": "EnumRef.Округления", + "value": "Перечисление.Округления.Окр1_00", + "use": "Always", + "denyIncompleteValues": true, + "availableValues": [ + {"value": "Перечисление.Округления.Окр1_00", "presentation": "руб. коп"}, + {"value": "Перечисление.Округления.Окр1", "presentation": "руб."}, + {"value": "Перечисление.Округления.Окр1000", "presentation": "тыс. руб"} + ] +} +``` ### Значения параметров по типу @@ -481,6 +502,16 @@ XML-маппинг — по `` на каждый элемент: - Строка → `SelectedItemField` - `"Auto"` → `SelectedItemAuto` (только на уровне группировок; на верхнем уровне settings игнорируется) - Объект с `field`/`title` → `SelectedItemField` с `lwsTitle` +- Объект с `folder`/`items` → `SelectedItemFolder` — группа полей с заголовком и `placement=Auto`: + +```json +"selection": [ + "Auto", + "Счет", + {"folder": "Поступление", "items": ["ПолеА", "ПолеБ", "ПолеВ"]}, + {"folder": "Выбытие", "items": ["ВыбытиеРеализовано", "ВыбытиеПрочее"]} +] +``` ### filter @@ -503,7 +534,8 @@ XML-маппинг — по `` на каждый элемент: - `@quickAccess` → `viewMode=QuickAccess` - `@normal` → `viewMode=Normal` - `@inaccessible` → `viewMode=Inaccessible` -- Типы значений автоопределяются: `true`/`false` → boolean, `2024-01-01T00:00:00` → dateTime, числа → decimal, прочее → string +- Типы значений автоопределяются: `true`/`false` → boolean, `2024-01-01T00:00:00` → dateTime, числа → decimal, `Перечисление.*`/`Справочник.*`/`ПланСчетов.*`/`Документ.*` → DesignTimeValue, прочее → string +- OrGroup: `{"group": "Or", "items": ["условие1", "условие2"]}` — объединяет условия через ИЛИ #### Объектная форма @@ -597,7 +629,7 @@ XML-маппинг — по `` на каждый элемент: **Типы значений appearance** определяются автоматически: - `style:XXX`, `web:XXX`, `win:XXX` → `v8ui:Color` - `true`/`false` → `xs:boolean` -- Параметр `Текст` или `Заголовок` → `v8:LocalStringType` +- Параметр `Формат`, `Текст` или `Заголовок` → `v8:LocalStringType` - Прочее → `xs:string` Поддержка `use=false` на уровне параметра: diff --git a/docs/skd-guide.md b/docs/skd-guide.md index cda86ddb..661be5d1 100644 --- a/docs/skd-guide.md +++ b/docs/skd-guide.md @@ -98,7 +98,9 @@ - **filter shorthand**: `"Поле оператор значение @флаги"` — флаги `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible` - **dataParameters shorthand**: `"Имя = значение @флаги"`, или `"auto"` — автогенерация для всех не-hidden параметров - **structure shorthand**: `"Поле1 > Поле2 > details"` — `>` разделяет уровни группировки -- **conditionalAppearance**: условное оформление с автоопределением типов значений (Color, Boolean, LocalStringType) +- **conditionalAppearance**: условное оформление с автоопределением типов (Color, Boolean, LocalStringType для Формат/Текст/Заголовок, DesignTimeValue для ссылок), OrGroup через `{"group": "Or", "items": [...]}` +- **selection**: поддержка `{"folder": "Название", "items": [...]}` для группировки полей (SelectedItemFolder) +- **parameters**: `availableValues`, `denyIncompleteValues`, `use: "Always"` в объектной форме ### Шаблоны вывода — компактный DSL