mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-15 23:35:17 +03:00
Compare commits
150 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cd3e50c408 | |||
| da6ac2bab8 | |||
| 7a7d03dcff | |||
| 20a243143a | |||
| fea2f37ba6 | |||
| d8457bb307 | |||
| daa7716f24 | |||
| bbed308c85 | |||
| 11ddc2b5a2 | |||
| e59c3281fd | |||
| 609698b00d | |||
| ceaaa8bc55 | |||
| 61cc8f3b9a | |||
| 4630af463f | |||
| dd02dcf3c4 | |||
| e2e3e02a1b | |||
| 9b331aa41d | |||
| 91ef1d07eb | |||
| 8cb7309ee5 | |||
| 0425b79a87 | |||
| c8cba6f7ce | |||
| f34303f9ed | |||
| c230142bf1 | |||
| d9010cd580 | |||
| 19da4df61f | |||
| fe9d8500dc | |||
| 2ad35f484c | |||
| abca61da66 | |||
| db6a1f2212 | |||
| 85d42ec34c | |||
| a7344a1397 | |||
| f642f673d9 | |||
| fdc8c518aa | |||
| 53536b72f5 | |||
| 21ae9a6d80 | |||
| ad99f3db0b | |||
| 3ef4f44028 | |||
| bb7696bf28 | |||
| 0466ae8fd8 | |||
| 796403abe3 | |||
| 639568c039 | |||
| 9ef554a576 | |||
| 1b36aa97c8 | |||
| 573602ae65 | |||
| 632c58eef1 | |||
| 64c2037fe1 | |||
| fb9d29408c | |||
| 730decf9ce | |||
| 48e2b6bd44 | |||
| f75c71064c | |||
| 5ca8ce2b64 | |||
| 5793f91ebb | |||
| b83bbc333f | |||
| a417b76e2c | |||
| 659451815d | |||
| f271a6f6ba | |||
| 342b3f0687 | |||
| 4b3819762c | |||
| 5e864cb05f | |||
| a66246095c | |||
| 9b4bb3d9b8 | |||
| b1eb8bebe3 | |||
| 87bc274346 | |||
| 6a8efc9538 | |||
| 0846740db7 | |||
| 480d828c35 | |||
| 8009a8150f | |||
| 29a9fbe950 | |||
| 3832952400 | |||
| 10fef03681 | |||
| 957af1c421 | |||
| 616ac2a23e | |||
| a9deeee2d0 | |||
| 4af51235db | |||
| da0b326c40 | |||
| 65a2b5870d | |||
| cab0b4d26b | |||
| 092cd8ebb4 | |||
| f19032594c | |||
| a07a105024 | |||
| f5432eb48d | |||
| b8a6783ccf | |||
| 2b8cdc40ca | |||
| 013d3c3a01 | |||
| eee5aaafd3 | |||
| 32e06cbc56 | |||
| 77fc0cee2f | |||
| ac72ca8a51 | |||
| 6e3632e5ff | |||
| e843cd8997 | |||
| 4c26e97abf | |||
| cbad0fe743 | |||
| 03cc59d243 | |||
| 540af9655d | |||
| a7d5c46176 | |||
| 38b5445f15 | |||
| 9aac032ac8 | |||
| f9774d799c | |||
| 49f17ef5fd | |||
| 515c82c398 | |||
| 206fed0125 | |||
| e5e6392b8c | |||
| b58f9aa6a2 | |||
| 2235b11700 | |||
| 04b742fe78 | |||
| 1d75456f4e | |||
| 3e0f6bba02 | |||
| 19c2557778 | |||
| 3453e64bea | |||
| eac0ae5a02 | |||
| a46d5a166b | |||
| bf4005bf76 | |||
| 501abd9fac | |||
| c3a8a9c874 | |||
| 8b71054478 | |||
| 55b80fdc08 | |||
| e0ee927156 | |||
| a1131965cc | |||
| be9ebedf14 | |||
| 7f3a8861ad | |||
| 3119700c71 | |||
| 4bd8f27dec | |||
| a73517ee07 | |||
| 3a68e1cb44 | |||
| cbc9f0cf61 | |||
| 4413a06c49 | |||
| 537adfd3f8 | |||
| 009656991f | |||
| 8cf29c601e | |||
| d8d80af88e | |||
| 48b08d77e5 | |||
| 31d1ae2650 | |||
| 54d4dd6904 | |||
| 840e3ed768 | |||
| 4497b1d4e2 | |||
| 61c4bd418d | |||
| be69bc231c | |||
| 765e1d8885 | |||
| 643211f2fb | |||
| 5ec21f24b4 | |||
| 048edafc15 | |||
| 334241bea4 | |||
| ce1ba0bab1 | |||
| 6e14f2502e | |||
| ff2d8513c4 | |||
| efdf56691c | |||
| 12745b14c3 | |||
| a5a1636918 | |||
| 05374100c1 | |||
| 449f814d16 |
@@ -88,11 +88,20 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-compile.ps1" -V
|
||||
|
||||
Многоязычный заголовок: `"title": { "ru": "...", "en": "..." }`. Применимо везде, где принимается title/presentation (поля, calculatedFields, parameters, settingsVariants, availableValues и пр.). Строка эквивалентна `{ "ru": "..." }`.
|
||||
|
||||
Типы: `string`, `string(N)`, `decimal(D,F)`, `boolean`, `date`, `dateTime`, `CatalogRef.X`, `DocumentRef.X`, `EnumRef.X`, `StandardPeriod`. Ссылочные типы эмитируются с inline namespace `d5p1:` (`http://v8.1c.ru/8.1/data/enterprise/current-config`). Сборка EPF со ссылочными типами требует базу с соответствующей конфигурацией.
|
||||
Типы: `string`, `string(N)`, `decimal`, `decimal(D)`, `decimal(D,F)`, `boolean`, `date`, `dateTime`, `CatalogRef.X`, `DocumentRef.X`, `EnumRef.X`, `StandardPeriod`. Ссылочные типы эмитируются с inline namespace `d5p1:` (`http://v8.1c.ru/8.1/data/enterprise/current-config`). Сборка EPF со ссылочными типами требует базу с соответствующей конфигурацией.
|
||||
|
||||
`decimal` без скобок = `10,2` (деньги по умолчанию), `decimal(N)` = `N,0` (целое); `,nonneg` в конце скобок → AllowedSign=Nonnegative.
|
||||
|
||||
Составной тип (несколько типов значений) — массив в объектной форме: `"type": ["CatalogRef.A", "CatalogRef.B"]`. Квалификаторы (`(N)`, `(D,F)`) применяются к каждому элементу.
|
||||
|
||||
Роли: `@dimension`, `@account`, `@balance`, `@period`.
|
||||
Роли (shorthand или объект):
|
||||
|
||||
- `@`-флаги: `@dimension`, `@account`, `@balance`, `@period`, `@required`, `@autoOrder`, `@ignoreNullValues`
|
||||
- KV: `balanceGroupName`, `balanceType` (`OpeningBalance`/`ClosingBalance`), `parentDimension`, `accountTypeExpression`, `expression`, `orderType` (`Asc`/`Desc`), `periodNumber`, `periodType`
|
||||
|
||||
```
|
||||
"Сумма: decimal(15,2) @balance balanceGroupName=Сумма balanceType=OpeningBalance"
|
||||
```
|
||||
|
||||
Ограничения: `#noField`, `#noFilter`, `#noGroup`, `#noOrder`.
|
||||
|
||||
@@ -101,6 +110,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-compile.ps1" -V
|
||||
Дополнительные ключи объектной формы:
|
||||
- `"presentationExpression": "<выражение>"` — что показывать вместо значения поля. Исходное значение остаётся «под капотом» для перехода/расшифровки.
|
||||
- `"appearance": { "<параметр>": "<значение>" }` — оформление колонки по умолчанию (применяется во всех вариантах настроек). Ключи — параметры платформы (`ГоризонтальноеПоложение`, `МинимальнаяШирина`, `Формат`, `Текст` и т.п.).
|
||||
- `"orderExpression": { "expression": "<выражение>", "orderType": "Asc"/"Desc", "autoOrder": true/false }` — сортировка поля по выражению (например `ЕстьNULL(Поле.Порядок, 10000)`).
|
||||
|
||||
```json
|
||||
{ "field": "Сумма", "title": "Сумма продажи", "type": "decimal(15,2)",
|
||||
@@ -147,6 +157,8 @@ Shorthand: `"Имя [Заголовок]: тип = значение @флаги"
|
||||
|
||||
Объектная форма: `title`, `hidden: true`, `valueListAllowed: true`, `availableAsField: false`, `denyIncompleteValues: true`, `use: "Always"`.
|
||||
|
||||
Если значения по умолчанию нет — пропусти `=` в shorthand или укажи `"value": null` в объектной форме.
|
||||
|
||||
Список допустимых значений (availableValues):
|
||||
|
||||
```json
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
||||
---
|
||||
name: skd-decompile
|
||||
description: Декомпиляция схемы компоновки данных 1С (СКД) в JSON-черновик в формате skd-compile. Используй для scaffold нового отчёта по образцу или структурного рефакторинга. Не для точечных правок
|
||||
argument-hint: <TemplatePath> [-OutputPath <out.json>]
|
||||
disable-model-invocation: true
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
- Write
|
||||
- Glob
|
||||
---
|
||||
|
||||
# /skd-decompile — JSON-черновик из Template.xml СКД
|
||||
|
||||
Читает Template.xml и эмитит JSON в формате `skd-compile`. **Результат — черновик**, а не обратимое представление: см. раздел «Что получаешь».
|
||||
|
||||
## Когда использовать
|
||||
|
||||
- **Scaffold нового отчёта по образцу** — взять существующий СКД, получить JSON, поправить и скомпилировать в новый.
|
||||
- **Структурный рефакторинг** — переписать вариант, перерисовать шаблон, перебрать набор полей.
|
||||
|
||||
## Когда **не** использовать
|
||||
|
||||
- **Точечные правки готового отчёта** (добавить поле, фильтр, итог, переименовать) → `/skd-edit`. Цикл «декомпиляция → правка JSON → компиляция» переписывает шаблон целиком, может терять непокрытые конструкции и даёт большой diff в исходниках. `/skd-edit` правит адресно, без полной реконструкции.
|
||||
|
||||
## Параметры
|
||||
|
||||
| Параметр | Описание |
|
||||
|----------|----------|
|
||||
| `TemplatePath` | Путь к Template.xml (обязательный) |
|
||||
| `OutputPath` | Путь к выходному JSON. Если не задан — JSON в stdout |
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-decompile.ps1" -TemplatePath "<Template.xml>" -OutputPath "<out.json>"
|
||||
```
|
||||
|
||||
## Что получаешь
|
||||
|
||||
JSON-черновик в формате `/skd-compile` — **не полное обратимое представление СКД**. На вход компилятору такой JSON напрямую может не пойти: в нём встречаются sentinel-узлы (маркер `__unsupported__`).
|
||||
|
||||
- **Готовые узлы** — большая часть СКД (поля, параметры, шаблоны, варианты со structure/filter/order/conditionalAppearance и т.п.) ложится в JSON как обычные узлы DSL.
|
||||
- **Sentinel-узлы** — места, где встретилась конструкция, которую декомпилятор не умеет выразить в DSL. JSON остаётся валидным, но компилятор откажется его собирать, пока sentinel не **заменён ручной реализацией** (явный raw `template`, прописанный appearance и т.п.) **или не удалён**, если в новом отчёте конструкция не нужна. Это намеренный барьер — чтобы непокрытое не уехало в финальный отчёт незамеченным.
|
||||
- **`<basename>.warnings.md`** рядом с `OutputPath` — список всех sentinel-узлов с координатами в исходнике, по нему удобно обходить места под ручную доработку.
|
||||
- **Критичные конструкции** (Picture cells, ХранилищеЗначения, вложенные схемы, не-СКД root) — скрипт падает с ненулевым кодом и сообщением в stderr; такой Template как образец не годится.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. `/skd-decompile <Template.xml> -OutputPath draft.json` — получить черновик.
|
||||
2. Открыть `draft.warnings.md`, посмотреть, что не покрылось.
|
||||
3. Поправить JSON под задачу. Sentinel-узлы — заменить на ручную реализацию (через явный raw `template`, через ручное описание appearance и т.п.) либо удалить, если конструкция в новом отчёте не нужна.
|
||||
4. `/skd-compile -DefinitionFile draft.json -OutputPath new-Template.xml` — собрать обратно.
|
||||
5. `/skd-validate` + `/skd-info` — проверить.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -52,6 +52,8 @@ Shorthand: `"Имя [Заголовок]: тип @роль #ограничени
|
||||
|
||||
Поле добавляется в набор и в selection варианта (если нет `-NoSelection`). Дубликат dataPath — предупреждение, пропуск.
|
||||
|
||||
Чтобы поле попало в selection не варианта, а конкретной группировки структуры — используй `-NoSelection` и затем `add-selection "Имя @group=ИмяГруппы"`.
|
||||
|
||||
### add-total — добавить итог
|
||||
|
||||
Shorthand: `"<dataPath>: <выражение>"`. Если выражение — известная аггрегатная функция без скобок (`Сумма`, `Количество`, `Минимум`, `Максимум`, `Среднее`), оно автоматически оборачивается в `Func(dataPath)`. Если функция со скобками или произвольное выражение — используется как есть.
|
||||
@@ -265,7 +267,7 @@ Shorthand: `"старое => новое [@once]"`. По умолчанию за
|
||||
|
||||
`@once` — упасть с ошибкой, если в запросе не **ровно одно** вхождение. Защищает от случайных замен в комментариях и однотипных идентификаторах.
|
||||
|
||||
Многострочные подстроки поддерживаются — переводы строк в `старое`/`новое` сравниваются буквально (включая отступы).
|
||||
Многострочные подстроки поддерживаются.
|
||||
|
||||
### set-outputParameter — установить параметр вывода
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# skd-edit v1.22 — Atomic 1C DCS editor
|
||||
# skd-edit v1.24 — Atomic 1C DCS editor
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -337,7 +337,7 @@ function Parse-CalcShorthand {
|
||||
function Parse-ParamShorthand {
|
||||
param([string]$s)
|
||||
|
||||
$result = @{ name = ""; type = ""; value = $null; autoDates = $false; title = $null; hidden = $false; always = $false; availableValues = @() }
|
||||
$result = @{ name = ""; type = ""; value = $null; autoDates = $false; title = $null; hidden = $false; always = $false; availableValues = @(); valueListAllowed = $false }
|
||||
|
||||
# Extract availableValue=... (must be before main parse — captures to end of string)
|
||||
if ($s -match '\s*availableValue=(.+)$') {
|
||||
@@ -350,6 +350,11 @@ function Parse-ParamShorthand {
|
||||
$s = $s -replace '\s*@autoDates', ''
|
||||
}
|
||||
|
||||
if ($s -match '@valueList\b') {
|
||||
$result.valueListAllowed = $true
|
||||
$s = $s -replace '\s*@valueList\b', ''
|
||||
}
|
||||
|
||||
if ($s -match '@hidden\b') {
|
||||
$result.hidden = $true
|
||||
$s = $s -replace '\s*@hidden\b', ''
|
||||
@@ -366,11 +371,14 @@ function Parse-ParamShorthand {
|
||||
$s = ($s -replace '\s*\[[^\]]*\]\s*', ' ').Trim()
|
||||
}
|
||||
|
||||
if ($s -match '^([^:]+):\s*(\S+)(\s*=\s*(.+))?$') {
|
||||
# Split "Name: Type = Value" — RHS may be empty (`= ` / `=`) → treated as empty-value sentinel
|
||||
if ($s -match '^([^:]+):\s*(\S+)(\s*=\s*(.*))?$') {
|
||||
$result.name = $Matches[1].Trim()
|
||||
$result.type = Resolve-TypeStr ($Matches[2].Trim())
|
||||
if ($Matches[4]) {
|
||||
$result.value = $Matches[4].Trim()
|
||||
$hasEq = $null -ne $Matches[3]
|
||||
$rhs = $Matches[4]
|
||||
if ($hasEq) {
|
||||
$result.value = if ($rhs) { $rhs.Trim() } else { "" }
|
||||
}
|
||||
} else {
|
||||
$result.name = $s.Trim()
|
||||
@@ -490,17 +498,16 @@ function Parse-DataParamShorthand {
|
||||
|
||||
$s = $s.Trim()
|
||||
|
||||
if ($s -match '^([^=]+)=\s*(.+)$') {
|
||||
if ($s -match '^([^=]+)=\s*(.*)$') {
|
||||
$result.parameter = $Matches[1].Trim()
|
||||
$valStr = $Matches[2].Trim()
|
||||
|
||||
$periodVariants = @("Custom","Today","ThisWeek","ThisTenDays","ThisMonth","ThisQuarter","ThisHalfYear","ThisYear","FromBeginningOfThisWeek","FromBeginningOfThisTenDays","FromBeginningOfThisMonth","FromBeginningOfThisQuarter","FromBeginningOfThisHalfYear","FromBeginningOfThisYear","LastWeek","LastTenDays","LastMonth","LastQuarter","LastHalfYear","LastYear","NextDay","NextWeek","NextTenDays","NextMonth","NextQuarter","NextHalfYear","NextYear","TillEndOfThisWeek","TillEndOfThisTenDays","TillEndOfThisMonth","TillEndOfThisQuarter","TillEndOfThisHalfYear","TillEndOfThisYear")
|
||||
if ($periodVariants -contains $valStr) {
|
||||
# Empty / sentinel — record as "" so caller emits xsi:nil
|
||||
if ($valStr -eq "" -or $valStr -eq "_" -or $valStr.ToLowerInvariant() -eq "null") {
|
||||
$result.value = ""
|
||||
} elseif ($periodVariants -contains $valStr) {
|
||||
$result.value = @{ variant = $valStr }
|
||||
} elseif ($valStr -match '^\d{4}-\d{2}-\d{2}T') {
|
||||
$result.value = $valStr
|
||||
} elseif ($valStr -eq "true" -or $valStr -eq "false") {
|
||||
$result.value = $valStr
|
||||
} else {
|
||||
$result.value = $valStr
|
||||
}
|
||||
@@ -744,10 +751,21 @@ function Parse-AvailableValueList {
|
||||
# --- 4. Build-* functions (XML fragment generators) ---
|
||||
|
||||
function Build-ValueTypeXml {
|
||||
param([string]$typeStr, [string]$indent)
|
||||
param($typeStr, [string]$indent)
|
||||
|
||||
if (-not $typeStr) { return "" }
|
||||
$typeStr = Resolve-TypeStr $typeStr
|
||||
|
||||
# Composite: array of types — concatenate per-type fragments
|
||||
if ($typeStr -is [array] -or $typeStr -is [System.Collections.IList]) {
|
||||
$parts = @()
|
||||
foreach ($t in $typeStr) {
|
||||
$p = Build-ValueTypeXml -typeStr "$t" -indent $indent
|
||||
if ($p) { $parts += $p }
|
||||
}
|
||||
return $parts -join "`n"
|
||||
}
|
||||
|
||||
$typeStr = Resolve-TypeStr "$typeStr"
|
||||
$lines = @()
|
||||
|
||||
if ($typeStr -eq "boolean") {
|
||||
@@ -755,20 +773,27 @@ function Build-ValueTypeXml {
|
||||
return $lines -join "`n"
|
||||
}
|
||||
|
||||
if ($typeStr -match '^string(\((\d+)\))?$') {
|
||||
# string, string(N), string(N,fix) — fix → AllowedLength=Fixed
|
||||
if ($typeStr -match '^string(\((\d+)(,(fix|fixed))?\))?$') {
|
||||
$len = if ($Matches[2]) { $Matches[2] } else { "0" }
|
||||
$al = if ($Matches[4]) { "Fixed" } else { "Variable" }
|
||||
$lines += "$indent<v8:Type>xs:string</v8:Type>"
|
||||
$lines += "$indent<v8:StringQualifiers>"
|
||||
$lines += "$indent`t<v8:Length>$len</v8:Length>"
|
||||
$lines += "$indent`t<v8:AllowedLength>Variable</v8:AllowedLength>"
|
||||
$lines += "$indent`t<v8:AllowedLength>$al</v8:AllowedLength>"
|
||||
$lines += "$indent</v8:StringQualifiers>"
|
||||
return $lines -join "`n"
|
||||
}
|
||||
|
||||
if ($typeStr -match '^decimal\((\d+),(\d+)(,nonneg)?\)$') {
|
||||
$digits = $Matches[1]
|
||||
$fraction = $Matches[2]
|
||||
$sign = if ($Matches[3]) { "Nonnegative" } else { "Any" }
|
||||
# decimal forms — bare decimal = money 10,2; decimal(N) = integer N,0
|
||||
if ($typeStr -match '^decimal(\((\d+)(,(\d+))?(,nonneg)?\))?$') {
|
||||
if (-not $Matches[1]) {
|
||||
$digits = "10"; $fraction = "2"; $sign = "Any"
|
||||
} else {
|
||||
$digits = $Matches[2]
|
||||
$fraction = if ($Matches[4]) { $Matches[4] } else { "0" }
|
||||
$sign = if ($Matches[5]) { "Nonnegative" } else { "Any" }
|
||||
}
|
||||
$lines += "$indent<v8:Type>xs:decimal</v8:Type>"
|
||||
$lines += "$indent<v8:NumberQualifiers>"
|
||||
$lines += "$indent`t<v8:Digits>$digits</v8:Digits>"
|
||||
@@ -778,10 +803,12 @@ function Build-ValueTypeXml {
|
||||
return $lines -join "`n"
|
||||
}
|
||||
|
||||
if ($typeStr -match '^(date|dateTime)$') {
|
||||
# date / dateTime / time — all xs:dateTime, differ only in DateFractions
|
||||
if ($typeStr -match '^(date|dateTime|time)$') {
|
||||
$fractions = switch ($typeStr) {
|
||||
"date" { "Date" }
|
||||
"dateTime" { "DateTime" }
|
||||
"time" { "Time" }
|
||||
}
|
||||
$lines += "$indent<v8:Type>xs:dateTime</v8:Type>"
|
||||
$lines += "$indent<v8:DateQualifiers>"
|
||||
@@ -809,6 +836,52 @@ function Build-ValueTypeXml {
|
||||
return $lines -join "`n"
|
||||
}
|
||||
|
||||
# Sentinel-normalized empty check — null / "" / "_" / "null" (case-insensitive).
|
||||
function Test-EmptyValue {
|
||||
param($v)
|
||||
if ($null -eq $v) { return $true }
|
||||
$s = "$v".Trim()
|
||||
if ($s -eq "") { return $true }
|
||||
if ($s -eq "_") { return $true }
|
||||
if ($s.ToLowerInvariant() -eq "null") { return $true }
|
||||
return $false
|
||||
}
|
||||
|
||||
# Returns XML fragment string for a type-aware empty <value>.
|
||||
# Empty + valueListAllowed → omit entirely (returns $null).
|
||||
# tagPrefix used for dcscor: in data parameters.
|
||||
function Build-EmptyValueXml {
|
||||
param([string]$type, [string]$indent, [string]$tagPrefix = "", [string]$tagName = "value", [bool]$valueListAllowed = $false)
|
||||
if ($valueListAllowed) { return $null }
|
||||
$t = if ($null -eq $type) { "" } else { "$type" }
|
||||
# Strip well-known XML schema prefixes so callers can pass raw <v8:Type> text
|
||||
$t = $t -replace '^xs:', '' -replace '^v8:', '' -replace '^d\d+p\d+:', ''
|
||||
$pf = $tagPrefix
|
||||
$tn = $tagName
|
||||
$lines = @()
|
||||
if ($t -eq "") {
|
||||
$lines += "$indent<${pf}${tn} xsi:nil=`"true`"/>"
|
||||
} elseif ($t -eq "StandardPeriod") {
|
||||
$lines += "$indent<${pf}${tn} xsi:type=`"v8:StandardPeriod`">"
|
||||
$lines += "$indent`t<v8:variant xsi:type=`"v8:StandardPeriodVariant`">Custom</v8:variant>"
|
||||
$lines += "$indent`t<v8:startDate>0001-01-01T00:00:00</v8:startDate>"
|
||||
$lines += "$indent`t<v8:endDate>0001-01-01T00:00:00</v8:endDate>"
|
||||
$lines += "$indent</${pf}${tn}>"
|
||||
} elseif ($t -match '^string') {
|
||||
$lines += "$indent<${pf}${tn} xsi:type=`"xs:string`"/>"
|
||||
} elseif ($t -match '^(date|time)') {
|
||||
$lines += "$indent<${pf}${tn} xsi:type=`"xs:dateTime`">0001-01-01T00:00:00</${pf}${tn}>"
|
||||
} elseif ($t -match '^decimal') {
|
||||
$lines += "$indent<${pf}${tn} xsi:type=`"xs:decimal`">0</${pf}${tn}>"
|
||||
} elseif ($t -eq "boolean") {
|
||||
$lines += "$indent<${pf}${tn} xsi:type=`"xs:boolean`">false</${pf}${tn}>"
|
||||
} else {
|
||||
# Ref types or unknown — safe nil
|
||||
$lines += "$indent<${pf}${tn} xsi:nil=`"true`"/>"
|
||||
}
|
||||
return $lines -join "`n"
|
||||
}
|
||||
|
||||
function Build-MLTextXml {
|
||||
param([string]$tag, [string]$text, [string]$indent)
|
||||
$lines = @()
|
||||
@@ -1022,8 +1095,13 @@ function Build-AvailableValueFragment {
|
||||
|
||||
$lines = @()
|
||||
$lines += "$indent<availableValue>"
|
||||
$valueLines = Build-ParamValueXml -type $declaredType -value $item.value -indent "$indent`t"
|
||||
foreach ($vl in $valueLines) { $lines += $vl }
|
||||
if (Test-EmptyValue $item.value) {
|
||||
$emptyXml = Build-EmptyValueXml -type $declaredType -indent "$indent`t" -tagPrefix "" -tagName "value" -valueListAllowed $false
|
||||
if ($emptyXml) { $lines += $emptyXml }
|
||||
} else {
|
||||
$valueLines = Build-ParamValueXml -type $declaredType -value $item.value -indent "$indent`t"
|
||||
foreach ($vl in $valueLines) { $lines += $vl }
|
||||
}
|
||||
if ($item.presentation) {
|
||||
$lines += "$indent`t<presentation xsi:type=`"v8:LocalStringType`">"
|
||||
$lines += "$indent`t`t<v8:item>"
|
||||
@@ -1056,9 +1134,15 @@ function Build-ParamFragment {
|
||||
$lines += "$i`t</valueType>"
|
||||
}
|
||||
|
||||
$vla = [bool]$parsed.valueListAllowed
|
||||
if ($null -ne $parsed.value) {
|
||||
$valueLines = Build-ParamValueXml -type $parsed.type -value $parsed.value -indent "$i`t"
|
||||
foreach ($vl in $valueLines) { $lines += $vl }
|
||||
if (Test-EmptyValue $parsed.value) {
|
||||
$emptyXml = Build-EmptyValueXml -type $parsed.type -indent "$i`t" -tagPrefix "" -tagName "value" -valueListAllowed $vla
|
||||
if ($emptyXml) { $lines += $emptyXml }
|
||||
} else {
|
||||
$valueLines = Build-ParamValueXml -type $parsed.type -value $parsed.value -indent "$i`t"
|
||||
foreach ($vl in $valueLines) { $lines += $vl }
|
||||
}
|
||||
}
|
||||
|
||||
if ($parsed.hidden) {
|
||||
@@ -1066,6 +1150,10 @@ function Build-ParamFragment {
|
||||
$lines += "$i`t<availableAsField>false</availableAsField>"
|
||||
}
|
||||
|
||||
if ($vla) {
|
||||
$lines += "$i`t<valueListAllowed>true</valueListAllowed>"
|
||||
}
|
||||
|
||||
if ($parsed.availableValues -and $parsed.availableValues.Count -gt 0) {
|
||||
foreach ($av in $parsed.availableValues) {
|
||||
$avLines = Build-AvailableValueFragment -item $av -declaredType $parsed.type -indent "$i`t"
|
||||
@@ -1207,6 +1295,8 @@ function Build-DataParamFragment {
|
||||
$lines += "$i`t`t<v8:startDate>0001-01-01T00:00:00</v8:startDate>"
|
||||
$lines += "$i`t`t<v8:endDate>0001-01-01T00:00:00</v8:endDate>"
|
||||
$lines += "$i`t</dcscor:value>"
|
||||
} elseif (Test-EmptyValue $parsed.value) {
|
||||
$lines += "$i`t<dcscor:value xsi:nil=`"true`"/>"
|
||||
} elseif ("$($parsed.value)" -match '^\d{4}-\d{2}-\d{2}T') {
|
||||
$lines += "$i`t<dcscor:value xsi:type=`"xs:dateTime`">$(Esc-Xml "$($parsed.value)")</dcscor:value>"
|
||||
} elseif ("$($parsed.value)" -eq "true" -or "$($parsed.value)" -eq "false") {
|
||||
@@ -1639,6 +1729,131 @@ function Set-OrCreateChildElementWithAttr($parent, [string]$localName, [string]$
|
||||
}
|
||||
}
|
||||
|
||||
function Get-AllDataSets {
|
||||
$schNs = "http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
$root = $xmlDoc.DocumentElement
|
||||
$result = @()
|
||||
foreach ($child in $root.ChildNodes) {
|
||||
if ($child.NodeType -eq 'Element' -and $child.LocalName -eq 'dataSet' -and $child.NamespaceURI -eq $schNs) {
|
||||
$result += $child
|
||||
}
|
||||
}
|
||||
return ,$result
|
||||
}
|
||||
|
||||
function Normalize-LineEndings([string]$s) {
|
||||
if ($null -eq $s) { return $s }
|
||||
return $s.Replace("`r`n", "`n").Replace("`r", "`n")
|
||||
}
|
||||
|
||||
function Escape-Whitespace([string]$s) {
|
||||
$sb = New-Object System.Text.StringBuilder
|
||||
foreach ($c in $s.ToCharArray()) {
|
||||
$code = [int]$c
|
||||
if ($c -eq "`n") { [void]$sb.Append('\n') }
|
||||
elseif ($c -eq "`r") { [void]$sb.Append('\r') }
|
||||
elseif ($c -eq "`t") { [void]$sb.Append('\t') }
|
||||
elseif ($code -lt 32 -or $code -eq 0xA0 -or ($code -ge 0x2000 -and $code -le 0x200F) -or $code -eq 0xFEFF) {
|
||||
[void]$sb.AppendFormat('\u{0:X4}', $code)
|
||||
} else {
|
||||
[void]$sb.Append($c)
|
||||
}
|
||||
}
|
||||
return $sb.ToString()
|
||||
}
|
||||
|
||||
function Collapse-Whitespace([string]$s) {
|
||||
return ([regex]::Replace($s, "[\s ]+", " ")).Trim()
|
||||
}
|
||||
|
||||
function Find-LongestPrefixMatch([string]$haystack, [string]$needle) {
|
||||
# Binary search: largest L such that needle.Substring(0, L) is a substring of haystack.
|
||||
# Monotonic — if length L matches at position P, then length L-1 (prefix) also matches at P.
|
||||
if ($needle.Length -eq 0 -or $haystack.Length -eq 0) {
|
||||
return @{ Length = 0; Offset = -1 }
|
||||
}
|
||||
if ($haystack.IndexOf([string]$needle[0]) -lt 0) {
|
||||
return @{ Length = 0; Offset = -1 }
|
||||
}
|
||||
$lo = 1; $hi = $needle.Length
|
||||
$bestLen = 1; $bestOffset = $haystack.IndexOf([string]$needle[0])
|
||||
while ($lo -le $hi) {
|
||||
$mid = [int](($lo + $hi) / 2)
|
||||
$idx = $haystack.IndexOf($needle.Substring(0, $mid))
|
||||
if ($idx -ge 0) { $bestLen = $mid; $bestOffset = $idx; $lo = $mid + 1 }
|
||||
else { $hi = $mid - 1 }
|
||||
}
|
||||
return @{ Length = $bestLen; Offset = $bestOffset }
|
||||
}
|
||||
|
||||
function Format-PatchQueryNotFound([string]$oldStr, [string]$queryText, $currentDsNode, [string]$dsName) {
|
||||
$schNs = "http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
$lines = @("Substring not found in query of dataset '$dsName'.")
|
||||
|
||||
# Step 1 — cross-dataset probe
|
||||
foreach ($ds in (Get-AllDataSets)) {
|
||||
if ($ds -eq $currentDsNode) { continue }
|
||||
$q = Find-FirstElement $ds @("query") $schNs
|
||||
if (-not $q) { continue }
|
||||
$qt = Normalize-LineEndings $q.InnerText
|
||||
if ($qt.Contains($oldStr)) {
|
||||
$otherName = Get-DataSetName $ds
|
||||
$lines += "Found in dataset '$otherName' instead — wrong -DataSet?"
|
||||
return ($lines -join "`n")
|
||||
}
|
||||
}
|
||||
|
||||
# Step 2 — tolerant probe (whitespace + NBSP collapsed)
|
||||
$normNeedle = Collapse-Whitespace $oldStr
|
||||
$normHay = Collapse-Whitespace $queryText
|
||||
$tolerant = ($normNeedle.Length -gt 0 -and $normHay.Contains($normNeedle))
|
||||
|
||||
# Step 3 — prefix divergence (used by both Step 2 reporting and standalone Step 3)
|
||||
$prefix = Find-LongestPrefixMatch -haystack $queryText -needle $oldStr
|
||||
$divergence = $null
|
||||
if ($prefix.Length -gt 0 -and $prefix.Length -lt $oldStr.Length) {
|
||||
$queryPos = $prefix.Offset + $prefix.Length
|
||||
$searchChar = $oldStr[$prefix.Length]
|
||||
$beforeLen = [Math]::Min(20, $prefix.Length)
|
||||
$before = $oldStr.Substring($prefix.Length - $beforeLen, $beforeLen)
|
||||
$divergence = [ordered]@{
|
||||
matched = $prefix.Length
|
||||
total = $oldStr.Length
|
||||
before = $before
|
||||
searchChar = $searchChar
|
||||
queryChar = $(if ($queryPos -lt $queryText.Length) { $queryText[$queryPos] } else { $null })
|
||||
}
|
||||
}
|
||||
|
||||
if ($tolerant) {
|
||||
$lines += "Not found exactly, but would match with whitespace normalized (tabs/spaces/NBSP)."
|
||||
if ($divergence) {
|
||||
$lines += "Diverged at offset $($divergence.matched) of $($divergence.total):"
|
||||
$lines += " before: '$(Escape-Whitespace $divergence.before)'"
|
||||
$lines += " in search: '$(Escape-Whitespace ([string]$divergence.searchChar))' (U+$('{0:X4}' -f [int]$divergence.searchChar))"
|
||||
if ($null -ne $divergence.queryChar) {
|
||||
$lines += " in query: '$(Escape-Whitespace ([string]$divergence.queryChar))' (U+$('{0:X4}' -f [int]$divergence.queryChar))"
|
||||
}
|
||||
}
|
||||
return ($lines -join "`n")
|
||||
}
|
||||
|
||||
# Step 3 standalone
|
||||
if ($prefix.Length -eq 0) {
|
||||
$lines += "No common prefix with query. Check -DataSet (current: '$dsName')."
|
||||
return ($lines -join "`n")
|
||||
}
|
||||
$lines += "Matched first $($divergence.matched) of $($divergence.total) chars, then diverged:"
|
||||
$lines += " before: '$(Escape-Whitespace $divergence.before)'"
|
||||
$lines += " in search: '$(Escape-Whitespace ([string]$divergence.searchChar))' (U+$('{0:X4}' -f [int]$divergence.searchChar))"
|
||||
if ($null -ne $divergence.queryChar) {
|
||||
$lines += " in query: '$(Escape-Whitespace ([string]$divergence.queryChar))' (U+$('{0:X4}' -f [int]$divergence.queryChar))"
|
||||
} else {
|
||||
$lines += " in query: (end of query)"
|
||||
}
|
||||
return ($lines -join "`n")
|
||||
}
|
||||
|
||||
function Resolve-DataSet {
|
||||
$schNs = "http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
$root = $xmlDoc.DocumentElement
|
||||
@@ -2107,8 +2322,20 @@ switch ($Operation) {
|
||||
}
|
||||
}
|
||||
}
|
||||
$valueLines = Build-ParamValueXml -type $declaredType -value $value -indent $childIndent
|
||||
$fragXml = $valueLines -join "`n"
|
||||
# Detect valueListAllowed flag on the parameter — empty value should be omitted
|
||||
$vlaSet = $false
|
||||
foreach ($ch in $paramEl.ChildNodes) {
|
||||
if ($ch.NodeType -eq 'Element' -and $ch.LocalName -eq 'valueListAllowed' -and $ch.NamespaceURI -eq $schNs) {
|
||||
if ($ch.InnerText.Trim() -eq 'true') { $vlaSet = $true }
|
||||
break
|
||||
}
|
||||
}
|
||||
if (Test-EmptyValue $value) {
|
||||
$fragXml = Build-EmptyValueXml -type $declaredType -indent $childIndent -tagPrefix "" -tagName "value" -valueListAllowed $vlaSet
|
||||
} else {
|
||||
$valueLines = Build-ParamValueXml -type $declaredType -value $value -indent $childIndent
|
||||
$fragXml = $valueLines -join "`n"
|
||||
}
|
||||
|
||||
$wasExisting = ($null -ne $existing)
|
||||
if ($existing) {
|
||||
@@ -2127,9 +2354,11 @@ switch ($Operation) {
|
||||
}
|
||||
}
|
||||
}
|
||||
$nodes = Import-Fragment $xmlDoc $fragXml
|
||||
foreach ($node in $nodes) {
|
||||
Insert-BeforeElement $paramEl $node $refNode $childIndent
|
||||
if ($fragXml) {
|
||||
$nodes = Import-Fragment $xmlDoc $fragXml
|
||||
foreach ($node in $nodes) {
|
||||
Insert-BeforeElement $paramEl $node $refNode $childIndent
|
||||
}
|
||||
}
|
||||
$verb = if ($wasExisting) { "updated" } else { "added" }
|
||||
$script:Dirty = $true; Write-Host "[OK] Parameter `"$paramName`": value $verb to $value"
|
||||
@@ -2593,13 +2822,14 @@ switch ($Operation) {
|
||||
Write-Error "patch-query value must contain ' => ' separator: old => new"
|
||||
exit 1
|
||||
}
|
||||
$oldStr = $val.Substring(0, $sepIdx)
|
||||
$newStr = $val.Substring($sepIdx + 4)
|
||||
$queryText = $queryEl.InnerText
|
||||
$oldStr = Normalize-LineEndings $val.Substring(0, $sepIdx)
|
||||
$newStr = Normalize-LineEndings $val.Substring($sepIdx + 4)
|
||||
$queryText = Normalize-LineEndings $queryEl.InnerText
|
||||
|
||||
$count = ([regex]::Matches($queryText, [regex]::Escape($oldStr))).Count
|
||||
if ($count -eq 0) {
|
||||
Write-Error "Substring not found in query of dataset '$dsName': $oldStr"
|
||||
$diag = Format-PatchQueryNotFound $oldStr $queryText $dsNode $dsName
|
||||
Write-Error $diag
|
||||
exit 1
|
||||
}
|
||||
if ($once -and $count -ne 1) {
|
||||
@@ -3072,6 +3302,8 @@ switch ($Operation) {
|
||||
$valLines += "$itemIndent`t<v8:startDate>0001-01-01T00:00:00</v8:startDate>"
|
||||
$valLines += "$itemIndent`t<v8:endDate>0001-01-01T00:00:00</v8:endDate>"
|
||||
$valLines += "$itemIndent</dcscor:value>"
|
||||
} elseif (Test-EmptyValue $parsed.value) {
|
||||
$valLines += "$itemIndent<dcscor:value xsi:nil=`"true`"/>"
|
||||
} elseif ("$($parsed.value)" -match '^\d{4}-\d{2}-\d{2}T') {
|
||||
$valLines += "$itemIndent<dcscor:value xsi:type=`"xs:dateTime`">$(Esc-Xml "$($parsed.value)")</dcscor:value>"
|
||||
} elseif ("$($parsed.value)" -eq "true" -or "$($parsed.value)" -eq "false") {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# skd-edit v1.22 — Atomic 1C DCS editor (Python port)
|
||||
# skd-edit v1.24 — Atomic 1C DCS editor (Python port)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import os
|
||||
@@ -335,7 +335,7 @@ def parse_calc_shorthand(s):
|
||||
|
||||
|
||||
def parse_param_shorthand(s):
|
||||
result = {"name": "", "type": "", "value": None, "autoDates": False, "title": None, "hidden": False, "always": False, "availableValues": []}
|
||||
result = {"name": "", "type": "", "value": None, "autoDates": False, "title": None, "hidden": False, "always": False, "availableValues": [], "valueListAllowed": False}
|
||||
|
||||
# Extract availableValue=... (must be before main parse — captures to end of string)
|
||||
m_av = re.search(r'\s*availableValue=(.+)$', s)
|
||||
@@ -347,6 +347,10 @@ def parse_param_shorthand(s):
|
||||
result["autoDates"] = True
|
||||
s = re.sub(r'\s*@autoDates', '', s)
|
||||
|
||||
if re.search(r'@valueList\b', s):
|
||||
result["valueListAllowed"] = True
|
||||
s = re.sub(r'\s*@valueList\b', '', s)
|
||||
|
||||
if re.search(r'@hidden\b', s):
|
||||
result["hidden"] = True
|
||||
s = re.sub(r'\s*@hidden\b', '', s)
|
||||
@@ -361,12 +365,13 @@ def parse_param_shorthand(s):
|
||||
result["title"] = m.group(1).strip()
|
||||
s = re.sub(r'\s*\[[^\]]*\]\s*', ' ', s).strip()
|
||||
|
||||
m = re.match(r'^([^:]+):\s*(\S+)(\s*=\s*(.+))?$', s)
|
||||
# Allow empty RHS (`= ` / `=`) as empty-value sentinel
|
||||
m = re.match(r'^([^:]+):\s*(\S+)(\s*=\s*(.*))?$', s)
|
||||
if m:
|
||||
result["name"] = m.group(1).strip()
|
||||
result["type"] = resolve_type_str(m.group(2).strip())
|
||||
if m.group(4):
|
||||
result["value"] = m.group(4).strip()
|
||||
if m.group(3) is not None:
|
||||
result["value"] = m.group(4).strip() if m.group(4) else ""
|
||||
else:
|
||||
result["name"] = s.strip()
|
||||
|
||||
@@ -466,7 +471,7 @@ def parse_data_param_shorthand(s):
|
||||
|
||||
s = s.strip()
|
||||
|
||||
m = re.match(r'^([^=]+)=\s*(.+)$', s)
|
||||
m = re.match(r'^([^=]+)=\s*(.*)$', s)
|
||||
if m:
|
||||
result["parameter"] = m.group(1).strip()
|
||||
val_str = m.group(2).strip()
|
||||
@@ -480,7 +485,10 @@ def parse_data_param_shorthand(s):
|
||||
"TillEndOfThisWeek", "TillEndOfThisTenDays", "TillEndOfThisMonth",
|
||||
"TillEndOfThisQuarter", "TillEndOfThisHalfYear", "TillEndOfThisYear",
|
||||
]
|
||||
if val_str in period_variants:
|
||||
# Empty / sentinel — record as "" so caller emits xsi:nil
|
||||
if val_str == "" or val_str == "_" or val_str.lower() == "null":
|
||||
result["value"] = ""
|
||||
elif val_str in period_variants:
|
||||
result["value"] = {"variant": val_str}
|
||||
else:
|
||||
result["value"] = val_str
|
||||
@@ -684,8 +692,13 @@ def parse_available_value_list(s):
|
||||
def build_available_value_fragment(item, declared_type, indent):
|
||||
"""Return XML lines for a single <availableValue> block."""
|
||||
lines = [f"{indent}<availableValue>"]
|
||||
for vl in build_param_value_xml(declared_type, item["value"], f"{indent}\t"):
|
||||
lines.append(vl)
|
||||
if is_empty_value(item.get("value")):
|
||||
empty_xml = build_empty_value_xml(declared_type, f"{indent}\t", "", "value", False)
|
||||
if empty_xml:
|
||||
lines.append(empty_xml)
|
||||
else:
|
||||
for vl in build_param_value_xml(declared_type, item["value"], f"{indent}\t"):
|
||||
lines.append(vl)
|
||||
if item.get("presentation"):
|
||||
lines.append(f'{indent}\t<presentation xsi:type="v8:LocalStringType">')
|
||||
lines.append(f"{indent}\t\t<v8:item>")
|
||||
@@ -702,27 +715,44 @@ def build_available_value_fragment(item, declared_type, indent):
|
||||
def build_value_type_xml(type_str, indent):
|
||||
if not type_str:
|
||||
return ""
|
||||
type_str = resolve_type_str(type_str)
|
||||
|
||||
# Composite: list/tuple → concatenate per-type fragments
|
||||
if isinstance(type_str, (list, tuple)):
|
||||
parts = []
|
||||
for t in type_str:
|
||||
p = build_value_type_xml(str(t), indent)
|
||||
if p:
|
||||
parts.append(p)
|
||||
return "\n".join(parts)
|
||||
|
||||
type_str = resolve_type_str(str(type_str))
|
||||
lines = []
|
||||
|
||||
if type_str == "boolean":
|
||||
lines.append(f"{indent}<v8:Type>xs:boolean</v8:Type>")
|
||||
return "\n".join(lines)
|
||||
|
||||
m = re.match(r'^string(\((\d+)\))?$', type_str)
|
||||
# string, string(N), string(N,fix) — fix → AllowedLength=Fixed
|
||||
m = re.match(r'^string(\((\d+)(,(fix|fixed))?\))?$', type_str)
|
||||
if m:
|
||||
length = m.group(2) if m.group(2) else "0"
|
||||
al = "Fixed" if m.group(4) else "Variable"
|
||||
lines.append(f"{indent}<v8:Type>xs:string</v8:Type>")
|
||||
lines.append(f"{indent}<v8:StringQualifiers>")
|
||||
lines.append(f"{indent}\t<v8:Length>{length}</v8:Length>")
|
||||
lines.append(f"{indent}\t<v8:AllowedLength>Variable</v8:AllowedLength>")
|
||||
lines.append(f"{indent}\t<v8:AllowedLength>{al}</v8:AllowedLength>")
|
||||
lines.append(f"{indent}</v8:StringQualifiers>")
|
||||
return "\n".join(lines)
|
||||
|
||||
m = re.match(r'^decimal\((\d+),(\d+)(,nonneg)?\)$', type_str)
|
||||
# decimal — bare = 10,2; decimal(N) = N,0
|
||||
m = re.match(r'^decimal(\((\d+)(,(\d+))?(,nonneg)?\))?$', type_str)
|
||||
if m:
|
||||
digits, fraction = m.group(1), m.group(2)
|
||||
sign = "Nonnegative" if m.group(3) else "Any"
|
||||
if not m.group(1):
|
||||
digits, fraction, sign = "10", "2", "Any"
|
||||
else:
|
||||
digits = m.group(2)
|
||||
fraction = m.group(4) if m.group(4) else "0"
|
||||
sign = "Nonnegative" if m.group(5) else "Any"
|
||||
lines.append(f"{indent}<v8:Type>xs:decimal</v8:Type>")
|
||||
lines.append(f"{indent}<v8:NumberQualifiers>")
|
||||
lines.append(f"{indent}\t<v8:Digits>{digits}</v8:Digits>")
|
||||
@@ -731,9 +761,10 @@ def build_value_type_xml(type_str, indent):
|
||||
lines.append(f"{indent}</v8:NumberQualifiers>")
|
||||
return "\n".join(lines)
|
||||
|
||||
m = re.match(r'^(date|dateTime)$', type_str)
|
||||
# date / dateTime / time — all xs:dateTime
|
||||
m = re.match(r'^(date|dateTime|time)$', type_str)
|
||||
if m:
|
||||
fractions = "Date" if type_str == "date" else "DateTime"
|
||||
fractions = {"date": "Date", "dateTime": "DateTime", "time": "Time"}[type_str]
|
||||
lines.append(f"{indent}<v8:Type>xs:dateTime</v8:Type>")
|
||||
lines.append(f"{indent}<v8:DateQualifiers>")
|
||||
lines.append(f"{indent}\t<v8:DateFractions>{fractions}</v8:DateFractions>")
|
||||
@@ -756,6 +787,52 @@ def build_value_type_xml(type_str, indent):
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def is_empty_value(v):
|
||||
"""Empty sentinel — None / '' / '_' / 'null' (case-insensitive)."""
|
||||
if v is None:
|
||||
return True
|
||||
s = str(v).strip()
|
||||
if s == "":
|
||||
return True
|
||||
if s == "_":
|
||||
return True
|
||||
if s.lower() == "null":
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def build_empty_value_xml(type_str, indent, tag_prefix="", tag_name="value", value_list_allowed=False):
|
||||
"""Type-aware empty <value> fragment. Returns None when valueListAllowed (omit)."""
|
||||
if value_list_allowed:
|
||||
return None
|
||||
t = "" if type_str is None else str(type_str)
|
||||
# Strip well-known XML schema prefixes so callers can pass raw <v8:Type> text
|
||||
t = re.sub(r'^xs:', '', t)
|
||||
t = re.sub(r'^v8:', '', t)
|
||||
t = re.sub(r'^d\d+p\d+:', '', t)
|
||||
pf, tn = tag_prefix, tag_name
|
||||
lines = []
|
||||
if t == "":
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:nil="true"/>')
|
||||
elif t == "StandardPeriod":
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:type="v8:StandardPeriod">')
|
||||
lines.append(f'{indent}\t<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>')
|
||||
lines.append(f'{indent}\t<v8:startDate>0001-01-01T00:00:00</v8:startDate>')
|
||||
lines.append(f'{indent}\t<v8:endDate>0001-01-01T00:00:00</v8:endDate>')
|
||||
lines.append(f'{indent}</{pf}{tn}>')
|
||||
elif re.match(r'^string', t):
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:type="xs:string"/>')
|
||||
elif re.match(r'^(date|time)', t):
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:type="xs:dateTime">0001-01-01T00:00:00</{pf}{tn}>')
|
||||
elif re.match(r'^decimal', t):
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:type="xs:decimal">0</{pf}{tn}>')
|
||||
elif t == "boolean":
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:type="xs:boolean">false</{pf}{tn}>')
|
||||
else:
|
||||
lines.append(f'{indent}<{pf}{tn} xsi:nil="true"/>')
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def build_mltext_xml(tag, text, indent):
|
||||
lines = [
|
||||
f'{indent}<{tag} xsi:type="v8:LocalStringType">',
|
||||
@@ -934,14 +1011,23 @@ def build_param_fragment(parsed, indent):
|
||||
lines.append(build_value_type_xml(parsed["type"], f"{i}\t\t"))
|
||||
lines.append(f"{i}\t</valueType>")
|
||||
|
||||
vla = bool(parsed.get("valueListAllowed"))
|
||||
if parsed["value"] is not None:
|
||||
for vl in build_param_value_xml(parsed.get("type", ""), parsed["value"], f"{i}\t"):
|
||||
lines.append(vl)
|
||||
if is_empty_value(parsed["value"]):
|
||||
empty_xml = build_empty_value_xml(parsed.get("type", ""), f"{i}\t", "", "value", vla)
|
||||
if empty_xml:
|
||||
lines.append(empty_xml)
|
||||
else:
|
||||
for vl in build_param_value_xml(parsed.get("type", ""), parsed["value"], f"{i}\t"):
|
||||
lines.append(vl)
|
||||
|
||||
if parsed.get("hidden"):
|
||||
lines.append(f"{i}\t<useRestriction>true</useRestriction>")
|
||||
lines.append(f"{i}\t<availableAsField>false</availableAsField>")
|
||||
|
||||
if vla:
|
||||
lines.append(f"{i}\t<valueListAllowed>true</valueListAllowed>")
|
||||
|
||||
for av in parsed.get("availableValues", []) or []:
|
||||
for l in build_available_value_fragment(av, parsed.get("type", ""), f"{i}\t"):
|
||||
lines.append(l)
|
||||
@@ -1065,6 +1151,8 @@ def build_data_param_fragment(parsed, indent):
|
||||
lines.append(f"{i}\t\t<v8:startDate>0001-01-01T00:00:00</v8:startDate>")
|
||||
lines.append(f"{i}\t\t<v8:endDate>0001-01-01T00:00:00</v8:endDate>")
|
||||
lines.append(f"{i}\t</dcscor:value>")
|
||||
elif is_empty_value(val):
|
||||
lines.append(f'{i}\t<dcscor:value xsi:nil="true"/>')
|
||||
elif re.match(r'^\d{4}-\d{2}-\d{2}T', str(val)):
|
||||
lines.append(f'{i}\t<dcscor:value xsi:type="xs:dateTime">{esc_xml(str(val))}</dcscor:value>')
|
||||
elif str(val) in ("true", "false"):
|
||||
@@ -1436,6 +1524,118 @@ def set_or_create_child_element_with_attr(parent, ln, ns_uri, value, xsi_type, i
|
||||
insert_before_element(parent, node, None, indent)
|
||||
|
||||
|
||||
def get_all_data_sets():
|
||||
return [c for c in xml_doc
|
||||
if isinstance(c.tag, str) and local_name(c) == "dataSet" and etree.QName(c.tag).namespace == SCH_NS]
|
||||
|
||||
|
||||
def normalize_line_endings(s):
|
||||
if s is None:
|
||||
return s
|
||||
return s.replace("\r\n", "\n").replace("\r", "\n")
|
||||
|
||||
|
||||
def escape_whitespace(s):
|
||||
out = []
|
||||
for ch in s:
|
||||
code = ord(ch)
|
||||
if ch == "\n": out.append("\\n")
|
||||
elif ch == "\r": out.append("\\r")
|
||||
elif ch == "\t": out.append("\\t")
|
||||
elif code < 32 or code == 0xA0 or (0x2000 <= code <= 0x200F) or code == 0xFEFF:
|
||||
out.append(f"\\u{code:04X}")
|
||||
else:
|
||||
out.append(ch)
|
||||
return "".join(out)
|
||||
|
||||
|
||||
def collapse_whitespace(s):
|
||||
return re.sub(r"[\s ]+", " ", s).strip()
|
||||
|
||||
|
||||
def find_longest_prefix_match(haystack, needle):
|
||||
"""Binary search: largest L such that needle[:L] is a substring of haystack."""
|
||||
if not needle or not haystack:
|
||||
return (0, -1)
|
||||
first_idx = haystack.find(needle[0])
|
||||
if first_idx < 0:
|
||||
return (0, -1)
|
||||
lo, hi = 1, len(needle)
|
||||
best_len, best_off = 1, first_idx
|
||||
while lo <= hi:
|
||||
mid = (lo + hi) // 2
|
||||
idx = haystack.find(needle[:mid])
|
||||
if idx >= 0:
|
||||
best_len, best_off = mid, idx
|
||||
lo = mid + 1
|
||||
else:
|
||||
hi = mid - 1
|
||||
return (best_len, best_off)
|
||||
|
||||
|
||||
def format_patch_query_not_found(old_str, query_text, current_ds_node, ds_name):
|
||||
lines = [f"Substring not found in query of dataset '{ds_name}'."]
|
||||
|
||||
# Step 1 — cross-dataset probe
|
||||
for ds in get_all_data_sets():
|
||||
if ds is current_ds_node:
|
||||
continue
|
||||
q = find_first_element(ds, ["query"], SCH_NS)
|
||||
if q is None:
|
||||
continue
|
||||
qt = normalize_line_endings(q.text or "")
|
||||
if old_str in qt:
|
||||
other = get_data_set_name(ds)
|
||||
lines.append(f"Found in dataset '{other}' instead — wrong -DataSet?")
|
||||
return "\n".join(lines)
|
||||
|
||||
# Step 2 — tolerant probe
|
||||
norm_needle = collapse_whitespace(old_str)
|
||||
norm_hay = collapse_whitespace(query_text)
|
||||
tolerant = bool(norm_needle) and (norm_needle in norm_hay)
|
||||
|
||||
# Step 3 — divergence
|
||||
matched, off = find_longest_prefix_match(query_text, old_str)
|
||||
divergence = None
|
||||
if 0 < matched < len(old_str):
|
||||
query_pos = off + matched
|
||||
before_len = min(20, matched)
|
||||
divergence = {
|
||||
"matched": matched,
|
||||
"total": len(old_str),
|
||||
"before": old_str[matched - before_len:matched],
|
||||
"search_char": old_str[matched],
|
||||
"query_char": query_text[query_pos] if query_pos < len(query_text) else None,
|
||||
}
|
||||
|
||||
if tolerant:
|
||||
lines.append("Not found exactly, but would match with whitespace normalized (tabs/spaces/NBSP).")
|
||||
if divergence:
|
||||
lines.append(f"Diverged at offset {divergence['matched']} of {divergence['total']}:")
|
||||
lines.append(f" before: '{escape_whitespace(divergence['before'])}'")
|
||||
sc = divergence['search_char']
|
||||
lines.append(f" in search: '{escape_whitespace(sc)}' (U+{ord(sc):04X})")
|
||||
qc = divergence['query_char']
|
||||
if qc is not None:
|
||||
lines.append(f" in query: '{escape_whitespace(qc)}' (U+{ord(qc):04X})")
|
||||
return "\n".join(lines)
|
||||
|
||||
if matched == 0:
|
||||
lines.append(f"No common prefix with query. Check -DataSet (current: '{ds_name}').")
|
||||
return "\n".join(lines)
|
||||
|
||||
lines.append(f"Matched first {divergence['matched']} of {divergence['total']} chars, then diverged:")
|
||||
lines.append(f" before: '{escape_whitespace(divergence['before'])}'")
|
||||
sc = divergence['search_char']
|
||||
lines.append(f" in search: '{escape_whitespace(sc)}' (U+{ord(sc):04X})")
|
||||
qc = divergence['query_char']
|
||||
if qc is not None:
|
||||
lines.append(f" in query: '{escape_whitespace(qc)}' (U+{ord(qc):04X})")
|
||||
else:
|
||||
lines.append(" in query: (end of query)")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def resolve_data_set():
|
||||
root_el = xml_doc
|
||||
|
||||
@@ -1802,8 +2002,16 @@ elif operation == "modify-parameter":
|
||||
if isinstance(tnode.tag, str) and local_name(tnode) == "Type":
|
||||
declared_type = re.sub(r'^d\d+p\d+:', '', (tnode.text or "").strip())
|
||||
break
|
||||
value_lines = build_param_value_xml(declared_type, value, child_indent)
|
||||
frag_xml = "\n".join(value_lines)
|
||||
# Detect valueListAllowed — empty value should be omitted when set
|
||||
vla_set = False
|
||||
vla_el = next((ch for ch in param_el if isinstance(ch.tag, str) and local_name(ch) == "valueListAllowed" and etree.QName(ch.tag).namespace == SCH_NS), None)
|
||||
if vla_el is not None and (vla_el.text or "").strip() == "true":
|
||||
vla_set = True
|
||||
if is_empty_value(value):
|
||||
frag_xml = build_empty_value_xml(declared_type, child_indent, "", "value", vla_set)
|
||||
else:
|
||||
value_lines = build_param_value_xml(declared_type, value, child_indent)
|
||||
frag_xml = "\n".join(value_lines)
|
||||
was_existing = existing is not None
|
||||
if existing is not None:
|
||||
# Find next-element sibling as ref before removing
|
||||
@@ -1812,9 +2020,10 @@ elif operation == "modify-parameter":
|
||||
remove_node_with_whitespace(existing)
|
||||
else:
|
||||
ref_node = next((ch for ch in param_el if isinstance(ch.tag, str) and local_name(ch) in ("useRestriction", "availableValue", "denyIncompleteValues", "use")), None)
|
||||
nodes = import_fragment(xml_doc, frag_xml)
|
||||
for node in nodes:
|
||||
insert_before_element(param_el, node, ref_node, child_indent)
|
||||
if frag_xml:
|
||||
nodes = import_fragment(xml_doc, frag_xml)
|
||||
for node in nodes:
|
||||
insert_before_element(param_el, node, ref_node, child_indent)
|
||||
verb = "updated" if was_existing else "added"
|
||||
dirty = True; print(f'[OK] Parameter "{param_name}": value {verb} to {value}')
|
||||
elif existing is not None:
|
||||
@@ -2158,13 +2367,13 @@ elif operation == "patch-query":
|
||||
if sep_idx < 0:
|
||||
print("patch-query value must contain ' => ' separator: old => new", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
old_str = val[:sep_idx]
|
||||
new_str = val[sep_idx + 4:]
|
||||
query_text = query_el.text or ""
|
||||
old_str = normalize_line_endings(val[:sep_idx])
|
||||
new_str = normalize_line_endings(val[sep_idx + 4:])
|
||||
query_text = normalize_line_endings(query_el.text or "")
|
||||
|
||||
count = query_text.count(old_str)
|
||||
if count == 0:
|
||||
print(f"Substring not found in query of dataset '{ds_name}': {old_str}", file=sys.stderr)
|
||||
print(format_patch_query_not_found(old_str, query_text, ds_node, ds_name), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if once and count != 1:
|
||||
print(f"@once: expected 1 occurrence of '{old_str}' in dataset '{ds_name}', found {count}", file=sys.stderr)
|
||||
@@ -2543,6 +2752,8 @@ elif operation == "modify-dataParameter":
|
||||
val_lines.append(f"{item_indent}\t<v8:startDate>0001-01-01T00:00:00</v8:startDate>")
|
||||
val_lines.append(f"{item_indent}\t<v8:endDate>0001-01-01T00:00:00</v8:endDate>")
|
||||
val_lines.append(f"{item_indent}</dcscor:value>")
|
||||
elif is_empty_value(pv):
|
||||
val_lines.append(f'{item_indent}<dcscor:value xsi:nil="true"/>')
|
||||
elif re.match(r'^\d{4}-\d{2}-\d{2}T', str(pv)):
|
||||
val_lines.append(f'{item_indent}<dcscor:value xsi:type="xs:dateTime">{esc_xml(str(pv))}</dcscor:value>')
|
||||
elif str(pv) in ("true", "false"):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# skd-info v1.4 — Analyze 1C DCS structure
|
||||
# skd-info v1.5 — Analyze 1C DCS structure
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
@@ -1875,7 +1875,12 @@ $totalLines = $result.Count
|
||||
# OutFile
|
||||
if ($OutFile) {
|
||||
$utf8Bom = New-Object System.Text.UTF8Encoding($true)
|
||||
[System.IO.File]::WriteAllLines((Join-Path (Get-Location) $OutFile), $result, $utf8Bom)
|
||||
if ([System.IO.Path]::IsPathRooted($OutFile)) {
|
||||
$outPath = [System.IO.Path]::GetFullPath($OutFile)
|
||||
} else {
|
||||
$outPath = [System.IO.Path]::GetFullPath((Join-Path (Get-Location).Path $OutFile))
|
||||
}
|
||||
[System.IO.File]::WriteAllLines($outPath, $result, $utf8Bom)
|
||||
Write-Host "Written $totalLines lines to $OutFile"
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# skd-info v1.4 — Analyze 1C DCS structure
|
||||
# skd-info v1.5 — Analyze 1C DCS structure
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# skd-validate v1.1 — Validate 1C DCS structure
|
||||
# skd-validate v1.2 — Validate 1C DCS structure
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -438,6 +438,17 @@ if ($script:stopped) { & $finalize; exit 1 }
|
||||
if ($calcFieldNodes.Count -gt 0) {
|
||||
$cfOk = $true
|
||||
$cfSeen = @{}
|
||||
# Collect totalField dataPaths — an empty calculatedField is legitimate if a
|
||||
# totalField with the same dataPath provides the expression (real-world
|
||||
# pattern in vendor ERP/БП reports for fields visible only in totals).
|
||||
$tfPaths = @{}
|
||||
foreach ($tf in $totalFieldNodes) {
|
||||
$tfDp = $tf.SelectSingleNode("s:dataPath", $ns)
|
||||
if ($tfDp -and $tfDp.InnerText) {
|
||||
$tfPaths[$tfDp.InnerText] = $true
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($cf in $calcFieldNodes) {
|
||||
$dp = $cf.SelectSingleNode("s:dataPath", $ns)
|
||||
$expr = $cf.SelectSingleNode("s:expression", $ns)
|
||||
@@ -457,8 +468,15 @@ if ($calcFieldNodes.Count -gt 0) {
|
||||
}
|
||||
|
||||
if (-not $expr -or -not $expr.InnerText.Trim()) {
|
||||
Report-Error "CalculatedField '$path' has empty expression"
|
||||
$cfOk = $false
|
||||
# Empty expression is legitimate in several vendor patterns:
|
||||
# - totalField with same dataPath provides the calculation
|
||||
# - groupTemplate uses the field as group name (declarative only)
|
||||
# - field is referenced only by settingsVariants for grouping
|
||||
# Surface as warning, not error, to avoid false positives on real
|
||||
# ERP/БП reports while still flagging the unusual shape.
|
||||
if (-not $tfPaths.ContainsKey($path)) {
|
||||
Report-Warn "CalculatedField '$path' has empty expression (declarative-only?)"
|
||||
}
|
||||
}
|
||||
|
||||
# Warn if collides with a dataset field
|
||||
@@ -542,14 +560,16 @@ if ($templateNodes.Count -gt 0) {
|
||||
}
|
||||
$tName = $nameNode.InnerText
|
||||
if ($tplSeen.ContainsKey($tName)) {
|
||||
Report-Error "Duplicate template name: $tName"
|
||||
$tplOk = $false
|
||||
# Vendor configs (ERP/БП) ship templates with repeating names — the
|
||||
# platform identifies them by position/context, not by <name>. Demote
|
||||
# to warning so the check still surfaces the collision without failing.
|
||||
Report-Warn "Duplicate template name: $tName (allowed by platform but ambiguous)"
|
||||
} else {
|
||||
$tplSeen[$tName] = $true
|
||||
}
|
||||
}
|
||||
if ($tplOk) {
|
||||
Report-OK "$($templateNodes.Count) template(s): names unique"
|
||||
Report-OK "$($templateNodes.Count) template(s) found"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -581,7 +601,8 @@ if ($script:stopped) { & $finalize; exit 1 }
|
||||
|
||||
$validComparisonTypes = @(
|
||||
"Equal","NotEqual","Greater","GreaterOrEqual","Less","LessOrEqual",
|
||||
"InList","NotInList","InHierarchy","InListByHierarchy",
|
||||
"InList","NotInList","InHierarchy","NotInHierarchy",
|
||||
"InListByHierarchy","NotInListByHierarchy",
|
||||
"Contains","NotContains","BeginsWith","NotBeginsWith",
|
||||
"Filled","NotFilled"
|
||||
)
|
||||
@@ -734,6 +755,176 @@ if ($variantNodes.Count -eq 0) {
|
||||
}
|
||||
}
|
||||
|
||||
# --- 16. valueType structural checks ---
|
||||
# Catches broken XDTO that XML/structural checks miss (decimal without xs:,
|
||||
# missing qualifiers, mismatched qualifier blocks, unknown sign/length tokens).
|
||||
|
||||
$validTypeQualifier = @{
|
||||
'xs:decimal' = 'v8:NumberQualifiers'
|
||||
'xs:string' = 'v8:StringQualifiers'
|
||||
'xs:dateTime' = 'v8:DateQualifiers'
|
||||
'xs:boolean' = ''
|
||||
'v8:StandardPeriod' = ''
|
||||
'v8:UUID' = ''
|
||||
'v8:Null' = ''
|
||||
'v8:Type' = ''
|
||||
'v8:ValueStorage' = ''
|
||||
}
|
||||
$validSign = @('Any', 'Nonnegative', 'Negative')
|
||||
$validLength = @('Variable', 'Fixed')
|
||||
$validFractions = @('Date', 'DateTime', 'Time')
|
||||
|
||||
# DCS supports composite types: multiple <v8:Type> blocks may share a single
|
||||
# trailing qualifier block (e.g. xs:string + CatalogRef.X + StringQualifiers).
|
||||
# So we collect all types and qualifiers per valueType, then check consistency.
|
||||
$qualifierProducers = @{
|
||||
'v8:NumberQualifiers' = 'xs:decimal'
|
||||
'v8:StringQualifiers' = 'xs:string'
|
||||
'v8:DateQualifiers' = 'xs:dateTime'
|
||||
}
|
||||
|
||||
$valueTypeNodes = $root.SelectNodes("//s:valueType", $ns)
|
||||
$vtChecked = 0
|
||||
$vtOk = $true
|
||||
foreach ($vt in $valueTypeNodes) {
|
||||
$vtChecked++
|
||||
$types = @() # list of short type strings; '' marks a ref type
|
||||
$qualifiers = @() # list of @{ name = 'v8:XQualifiers'; node = $child }
|
||||
|
||||
foreach ($child in $vt.ChildNodes) {
|
||||
if ($child.NodeType -ne 'Element') { continue }
|
||||
if ($child.NamespaceURI -ne 'http://v8.1c.ru/8.1/data/core') { continue }
|
||||
$localName = $child.LocalName
|
||||
|
||||
if ($localName -eq 'Type') {
|
||||
$t = "$($child.InnerText)".Trim()
|
||||
if (-not $t) {
|
||||
Report-Error "valueType: <v8:Type> is empty"
|
||||
$vtOk = $false
|
||||
continue
|
||||
}
|
||||
if ($t -match '^([A-Za-z][A-Za-z0-9]*):(.+)$') {
|
||||
$prefix = $Matches[1]
|
||||
$localT = $Matches[2]
|
||||
if ($prefix -eq 'xs' -or $prefix -eq 'v8') {
|
||||
if (-not $validTypeQualifier.ContainsKey($t)) {
|
||||
Report-Error "valueType: unknown type '$t' (allowed: xs:decimal/xs:string/xs:dateTime/xs:boolean/v8:StandardPeriod or <prefix>:*Ref.X)"
|
||||
$vtOk = $false
|
||||
} else {
|
||||
$types += $t
|
||||
}
|
||||
} else {
|
||||
$prefixNs = $child.GetNamespaceOfPrefix($prefix)
|
||||
if ($prefixNs -eq 'http://v8.1c.ru/8.1/data/enterprise/current-config') {
|
||||
if (-not ($localT -match '^[A-Za-z]+(Ref)?\.')) {
|
||||
Report-Error "valueType: ref type '$t' must look like '<prefix>:<Kind>.<Name>' (e.g. d5p1:CatalogRef.X)"
|
||||
$vtOk = $false
|
||||
} else {
|
||||
$types += '' # ref — no qualifier needed
|
||||
}
|
||||
} elseif ($prefixNs -eq 'http://v8.1c.ru/8.1/data/enterprise') {
|
||||
# System types: AccumulationRecordType etc. — no qualifiers
|
||||
if (-not ($localT -match '^[A-Za-z][A-Za-z0-9]*$')) {
|
||||
Report-Error "valueType: system type '$t' has unexpected local-name shape"
|
||||
$vtOk = $false
|
||||
} else {
|
||||
$types += ''
|
||||
}
|
||||
} else {
|
||||
Report-Error "valueType: type '$t' uses prefix '$prefix' bound to unexpected namespace '$prefixNs'"
|
||||
$vtOk = $false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Report-Error "valueType: type '$t' has no namespace prefix (expected xs:/v8:/d5p1: — e.g. xs:decimal not decimal)"
|
||||
$vtOk = $false
|
||||
}
|
||||
} elseif ($localName -match 'Qualifiers$') {
|
||||
$qName = "v8:$localName"
|
||||
$qualifiers += @{ name = $qName; node = $child }
|
||||
# Validate qualifier internals
|
||||
if ($qName -eq 'v8:NumberQualifiers') {
|
||||
$digits = $child.SelectSingleNode("v8:Digits", $ns)
|
||||
$frac = $child.SelectSingleNode("v8:FractionDigits", $ns)
|
||||
$sign = $child.SelectSingleNode("v8:AllowedSign", $ns)
|
||||
if (-not $digits -or -not ($digits.InnerText -match '^\d+$')) {
|
||||
Report-Error "v8:NumberQualifiers: <v8:Digits> missing or not a non-negative integer"
|
||||
$vtOk = $false
|
||||
}
|
||||
if (-not $frac -or -not ($frac.InnerText -match '^\d+$')) {
|
||||
Report-Error "v8:NumberQualifiers: <v8:FractionDigits> missing or not a non-negative integer"
|
||||
$vtOk = $false
|
||||
}
|
||||
if ($sign -and $sign.InnerText -and $sign.InnerText -notin $validSign) {
|
||||
Report-Error "v8:NumberQualifiers: <v8:AllowedSign>$($sign.InnerText)</v8:AllowedSign> — must be one of: $($validSign -join ', ')"
|
||||
$vtOk = $false
|
||||
}
|
||||
} elseif ($qName -eq 'v8:StringQualifiers') {
|
||||
$len = $child.SelectSingleNode("v8:Length", $ns)
|
||||
$al = $child.SelectSingleNode("v8:AllowedLength", $ns)
|
||||
if (-not $len -or -not ($len.InnerText -match '^\d+$')) {
|
||||
Report-Error "v8:StringQualifiers: <v8:Length> missing or not a non-negative integer"
|
||||
$vtOk = $false
|
||||
}
|
||||
if ($al -and $al.InnerText -and $al.InnerText -notin $validLength) {
|
||||
Report-Error "v8:StringQualifiers: <v8:AllowedLength>$($al.InnerText)</v8:AllowedLength> — must be one of: $($validLength -join ', ')"
|
||||
$vtOk = $false
|
||||
}
|
||||
} elseif ($qName -eq 'v8:DateQualifiers') {
|
||||
$df = $child.SelectSingleNode("v8:DateFractions", $ns)
|
||||
if ($df -and $df.InnerText -and $df.InnerText -notin $validFractions) {
|
||||
Report-Error "v8:DateQualifiers: <v8:DateFractions>$($df.InnerText)</v8:DateFractions> — must be one of: $($validFractions -join ', ')"
|
||||
$vtOk = $false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Cross-check: every qualifier must have a matching scalar type in this valueType
|
||||
foreach ($q in $qualifiers) {
|
||||
$producer = $qualifierProducers[$q.name]
|
||||
if (-not $producer) { continue }
|
||||
if ($types -notcontains $producer) {
|
||||
Report-Error "valueType: <$($q.name)> has no matching <v8:Type>$producer</v8:Type> in this valueType"
|
||||
$vtOk = $false
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($vtChecked -gt 0 -and $vtOk) {
|
||||
Report-OK "$vtChecked valueType block(s): structure and qualifiers OK"
|
||||
}
|
||||
|
||||
if ($script:stopped) { & $finalize; exit 1 }
|
||||
|
||||
# --- 17. value content checks ---
|
||||
# Catches literal placeholders ("_") and empty strings in DesignTimeValue refs
|
||||
# that XDTO would reject at db-load-xml.
|
||||
|
||||
$valueNodes = @()
|
||||
$valueNodes += @($root.SelectNodes("//s:value[@xsi:type]", $ns))
|
||||
$valueNodes += @($root.SelectNodes("//dcscor:value[@xsi:type]", $ns))
|
||||
$vChecked = 0
|
||||
$vOk = $true
|
||||
foreach ($vn in $valueNodes) {
|
||||
if (-not $vn) { continue }
|
||||
$vChecked++
|
||||
$xsiType = $vn.GetAttribute("type", "http://www.w3.org/2001/XMLSchema-instance")
|
||||
$text = $vn.InnerText
|
||||
if ($xsiType -eq 'dcscor:DesignTimeValue') {
|
||||
if (-not $text -or $text.Trim() -eq '' -or $text.Trim() -eq '_') {
|
||||
Report-Error "<value xsi:type=`"dcscor:DesignTimeValue`">$text</value> — DesignTimeValue must be a reference path (e.g. Перечисление.X.Y), not '$text'"
|
||||
$vOk = $false
|
||||
} elseif (-not ($text -match '^[A-Za-zА-Яа-яЁё]+\.[A-Za-zА-Яа-яЁё0-9_]+')) {
|
||||
Report-Warn "<value xsi:type=`"dcscor:DesignTimeValue`">$text</value> — doesn't look like a typical ref path"
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($vChecked -gt 0 -and $vOk) {
|
||||
Report-OK "$vChecked <value> element(s) with xsi:type: content OK"
|
||||
}
|
||||
|
||||
if ($script:stopped) { & $finalize; exit 1 }
|
||||
|
||||
# --- Final output ---
|
||||
|
||||
& $finalize
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# skd-validate v1.1 — Validate 1C DCS structure (Python port)
|
||||
# skd-validate v1.2 — Validate 1C DCS structure (Python port)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import os
|
||||
@@ -434,6 +434,15 @@ if stopped:
|
||||
if len(calc_field_nodes) > 0:
|
||||
cf_ok = True
|
||||
cf_seen = {}
|
||||
# Collect totalField dataPaths — an empty calculatedField is legitimate if a
|
||||
# totalField with the same dataPath provides the expression (real-world
|
||||
# pattern in vendor ERP/БП reports for fields visible only in totals).
|
||||
tf_paths = set()
|
||||
for tf in total_field_nodes:
|
||||
tf_dp = find(tf, "s:dataPath")
|
||||
if tf_dp is not None and inner_text(tf_dp):
|
||||
tf_paths.add(inner_text(tf_dp))
|
||||
|
||||
for cf in calc_field_nodes:
|
||||
dp = find(cf, "s:dataPath")
|
||||
expr = find(cf, "s:expression")
|
||||
@@ -451,8 +460,14 @@ if len(calc_field_nodes) > 0:
|
||||
cf_seen[path] = True
|
||||
|
||||
if expr is None or not text_of(expr):
|
||||
report_error(f"CalculatedField '{path}' has empty expression")
|
||||
cf_ok = False
|
||||
# Empty expression is legitimate in several vendor patterns:
|
||||
# - totalField with same dataPath provides the calculation
|
||||
# - groupTemplate uses the field as group name (declarative only)
|
||||
# - field is referenced only by settingsVariants for grouping
|
||||
# Surface as warning, not error, to avoid false positives on real
|
||||
# ERP/БП reports while still flagging the unusual shape.
|
||||
if path not in tf_paths:
|
||||
report_warn(f"CalculatedField '{path}' has empty expression (declarative-only?)")
|
||||
|
||||
# Warn if collides with a dataset field
|
||||
if path in all_field_paths:
|
||||
@@ -526,12 +541,14 @@ if len(template_nodes) > 0:
|
||||
continue
|
||||
t_name = inner_text(name_node)
|
||||
if t_name in tpl_seen:
|
||||
report_error(f"Duplicate template name: {t_name}")
|
||||
tpl_ok = False
|
||||
# Vendor configs (ERP/БП) ship templates with repeating names — the
|
||||
# platform identifies them by position/context, not by <name>. Demote
|
||||
# to warning so the check still surfaces the collision without failing.
|
||||
report_warn(f"Duplicate template name: {t_name} (allowed by platform but ambiguous)")
|
||||
else:
|
||||
tpl_seen[t_name] = True
|
||||
if tpl_ok:
|
||||
report_ok(f"{len(template_nodes)} template(s): names unique")
|
||||
report_ok(f"{len(template_nodes)} template(s) found")
|
||||
|
||||
# ── 13. GroupTemplate checks ─────────────────────────────────
|
||||
|
||||
@@ -558,7 +575,8 @@ if stopped:
|
||||
|
||||
valid_comparison_types = (
|
||||
"Equal", "NotEqual", "Greater", "GreaterOrEqual", "Less", "LessOrEqual",
|
||||
"InList", "NotInList", "InHierarchy", "InListByHierarchy",
|
||||
"InList", "NotInList", "InHierarchy", "NotInHierarchy",
|
||||
"InListByHierarchy", "NotInListByHierarchy",
|
||||
"Contains", "NotContains", "BeginsWith", "NotBeginsWith",
|
||||
"Filled", "NotFilled",
|
||||
)
|
||||
@@ -685,6 +703,166 @@ else:
|
||||
if v_ok:
|
||||
report_ok(f"{len(variant_nodes)} settingsVariant(s) found")
|
||||
|
||||
# ── 16. valueType structural checks ───────────────────────────
|
||||
# Catches broken XDTO that XML/structural checks miss (decimal without xs:,
|
||||
# missing qualifiers, mismatched qualifier blocks, unknown sign/length tokens).
|
||||
|
||||
import re as _re_vt
|
||||
|
||||
_VALID_TYPE_QUALIFIER = {
|
||||
'xs:decimal': 'v8:NumberQualifiers',
|
||||
'xs:string': 'v8:StringQualifiers',
|
||||
'xs:dateTime': 'v8:DateQualifiers',
|
||||
'xs:boolean': '',
|
||||
'v8:StandardPeriod': '',
|
||||
'v8:UUID': '',
|
||||
'v8:Null': '',
|
||||
'v8:Type': '',
|
||||
'v8:ValueStorage': '',
|
||||
}
|
||||
_VALID_SIGN = ('Any', 'Nonnegative', 'Negative')
|
||||
_VALID_LENGTH = ('Variable', 'Fixed')
|
||||
_VALID_FRACTIONS = ('Date', 'DateTime', 'Time')
|
||||
_V8_NS_URI = 'http://v8.1c.ru/8.1/data/core'
|
||||
_CONFIG_NS_URI = 'http://v8.1c.ru/8.1/data/enterprise/current-config'
|
||||
|
||||
# DCS supports composite types: multiple <v8:Type> blocks may share a single
|
||||
# trailing qualifier block (e.g. xs:string + CatalogRef.X + StringQualifiers).
|
||||
# So we collect all types and qualifiers per valueType, then check consistency.
|
||||
_QUALIFIER_PRODUCERS = {
|
||||
'v8:NumberQualifiers': 'xs:decimal',
|
||||
'v8:StringQualifiers': 'xs:string',
|
||||
'v8:DateQualifiers': 'xs:dateTime',
|
||||
}
|
||||
|
||||
vt_nodes = find_all(root, "//s:valueType")
|
||||
vt_checked = 0
|
||||
vt_ok = True
|
||||
for vt in vt_nodes:
|
||||
vt_checked += 1
|
||||
types = [] # short type strings; '' marks a ref type
|
||||
qualifiers = [] # list of (qName, node)
|
||||
|
||||
for child in vt:
|
||||
if not isinstance(child.tag, str):
|
||||
continue
|
||||
qn = etree.QName(child.tag)
|
||||
if qn.namespace != _V8_NS_URI:
|
||||
continue
|
||||
local = qn.localname
|
||||
|
||||
if local == 'Type':
|
||||
t = (child.text or '').strip()
|
||||
if not t:
|
||||
report_error("valueType: <v8:Type> is empty")
|
||||
vt_ok = False
|
||||
continue
|
||||
m = _re_vt.match(r'^([A-Za-z][A-Za-z0-9]*):(.+)$', t)
|
||||
if not m:
|
||||
report_error(f"valueType: type '{t}' has no namespace prefix (expected xs:/v8:/d5p1: — e.g. xs:decimal not decimal)")
|
||||
vt_ok = False
|
||||
continue
|
||||
prefix, local_t = m.group(1), m.group(2)
|
||||
if prefix in ('xs', 'v8'):
|
||||
if t not in _VALID_TYPE_QUALIFIER:
|
||||
report_error(f"valueType: unknown type '{t}' (allowed: xs:decimal/xs:string/xs:dateTime/xs:boolean/v8:StandardPeriod or <prefix>:*Ref.X)")
|
||||
vt_ok = False
|
||||
else:
|
||||
types.append(t)
|
||||
else:
|
||||
prefix_ns = child.nsmap.get(prefix)
|
||||
if prefix_ns == _CONFIG_NS_URI:
|
||||
if not _re_vt.match(r'^[A-Za-z]+(Ref)?\.', local_t):
|
||||
report_error(f"valueType: ref type '{t}' must look like '<prefix>:<Kind>.<Name>' (e.g. d5p1:CatalogRef.X)")
|
||||
vt_ok = False
|
||||
else:
|
||||
types.append('') # ref — no qualifier needed
|
||||
elif prefix_ns == 'http://v8.1c.ru/8.1/data/enterprise':
|
||||
# System types: AccumulationRecordType etc. — no qualifiers
|
||||
if not _re_vt.match(r'^[A-Za-z][A-Za-z0-9]*$', local_t):
|
||||
report_error(f"valueType: system type '{t}' has unexpected local-name shape")
|
||||
vt_ok = False
|
||||
else:
|
||||
types.append('')
|
||||
else:
|
||||
report_error(f"valueType: type '{t}' uses prefix '{prefix}' bound to unexpected namespace '{prefix_ns}'")
|
||||
vt_ok = False
|
||||
|
||||
elif local.endswith('Qualifiers'):
|
||||
q_name = f"v8:{local}"
|
||||
qualifiers.append((q_name, child))
|
||||
if q_name == 'v8:NumberQualifiers':
|
||||
digits = find(child, "v8:Digits")
|
||||
frac = find(child, "v8:FractionDigits")
|
||||
sign = find(child, "v8:AllowedSign")
|
||||
if digits is None or not _re_vt.match(r'^\d+$', text_of(digits)):
|
||||
report_error("v8:NumberQualifiers: <v8:Digits> missing or not a non-negative integer")
|
||||
vt_ok = False
|
||||
if frac is None or not _re_vt.match(r'^\d+$', text_of(frac)):
|
||||
report_error("v8:NumberQualifiers: <v8:FractionDigits> missing or not a non-negative integer")
|
||||
vt_ok = False
|
||||
if sign is not None and text_of(sign) and text_of(sign) not in _VALID_SIGN:
|
||||
report_error(f"v8:NumberQualifiers: <v8:AllowedSign>{text_of(sign)}</v8:AllowedSign> — must be one of: {', '.join(_VALID_SIGN)}")
|
||||
vt_ok = False
|
||||
elif q_name == 'v8:StringQualifiers':
|
||||
length = find(child, "v8:Length")
|
||||
al = find(child, "v8:AllowedLength")
|
||||
if length is None or not _re_vt.match(r'^\d+$', text_of(length)):
|
||||
report_error("v8:StringQualifiers: <v8:Length> missing or not a non-negative integer")
|
||||
vt_ok = False
|
||||
if al is not None and text_of(al) and text_of(al) not in _VALID_LENGTH:
|
||||
report_error(f"v8:StringQualifiers: <v8:AllowedLength>{text_of(al)}</v8:AllowedLength> — must be one of: {', '.join(_VALID_LENGTH)}")
|
||||
vt_ok = False
|
||||
elif q_name == 'v8:DateQualifiers':
|
||||
df = find(child, "v8:DateFractions")
|
||||
if df is not None and text_of(df) and text_of(df) not in _VALID_FRACTIONS:
|
||||
report_error(f"v8:DateQualifiers: <v8:DateFractions>{text_of(df)}</v8:DateFractions> — must be one of: {', '.join(_VALID_FRACTIONS)}")
|
||||
vt_ok = False
|
||||
|
||||
# Cross-check: every qualifier must have a matching scalar type in this valueType
|
||||
for q_name, _ in qualifiers:
|
||||
producer = _QUALIFIER_PRODUCERS.get(q_name)
|
||||
if not producer:
|
||||
continue
|
||||
if producer not in types:
|
||||
report_error(f"valueType: <{q_name}> has no matching <v8:Type>{producer}</v8:Type> in this valueType")
|
||||
vt_ok = False
|
||||
|
||||
if vt_checked > 0 and vt_ok:
|
||||
report_ok(f"{vt_checked} valueType block(s): structure and qualifiers OK")
|
||||
|
||||
if stopped:
|
||||
finalize()
|
||||
sys.exit(1)
|
||||
|
||||
# ── 17. value content checks ──────────────────────────────────
|
||||
# Catches literal placeholders ('_') and empty strings in DesignTimeValue refs
|
||||
# that XDTO would reject at db-load-xml.
|
||||
|
||||
value_nodes = find_all(root, "//s:value[@xsi:type]") + find_all(root, "//dcscor:value[@xsi:type]")
|
||||
v_checked = 0
|
||||
v_ok = True
|
||||
for vn in value_nodes:
|
||||
if vn is None:
|
||||
continue
|
||||
v_checked += 1
|
||||
xsi_type = vn.get(XSI_TYPE) or ''
|
||||
text = vn.text or ''
|
||||
if xsi_type == 'dcscor:DesignTimeValue':
|
||||
stripped = text.strip()
|
||||
if not stripped or stripped == '_':
|
||||
report_error(f"<value xsi:type=\"dcscor:DesignTimeValue\">{text}</value> — DesignTimeValue must be a reference path (e.g. Перечисление.X.Y), not '{text}'")
|
||||
v_ok = False
|
||||
elif not _re_vt.match(r'^[A-Za-zА-Яа-яЁё]+\.[A-Za-zА-Яа-яЁё0-9_]+', stripped):
|
||||
report_warn(f"<value xsi:type=\"dcscor:DesignTimeValue\">{text}</value> — doesn't look like a typical ref path")
|
||||
|
||||
if v_checked > 0 and v_ok:
|
||||
report_ok(f"{v_checked} <value> element(s) with xsi:type: content OK")
|
||||
|
||||
if stopped:
|
||||
finalize()
|
||||
sys.exit(1)
|
||||
|
||||
# ── Final output ──────────────────────────────────────────────
|
||||
|
||||
finalize()
|
||||
|
||||
@@ -49,3 +49,4 @@ __pycache__/
|
||||
.opencode/
|
||||
.roo/
|
||||
.windsurf/
|
||||
debug-templates.txt
|
||||
|
||||
+407
-46
@@ -124,7 +124,8 @@
|
||||
"Организация: CatalogRef.Организации @dimension",
|
||||
"Служебное: string #noFilter #noOrder",
|
||||
"Счёт: CatalogRef.Хозрасчетный @account",
|
||||
"Сумма: decimal(15,2) @balance"
|
||||
"Сумма: decimal(15,2) @balance",
|
||||
"СуммаНач: decimal(15,2) @balance balanceGroupName=Сумма balanceType=OpeningBalance"
|
||||
]
|
||||
```
|
||||
|
||||
@@ -140,15 +141,24 @@
|
||||
"restrict": ["noFilter", "noGroup"],
|
||||
"attrRestrict": ["noFilter"],
|
||||
"appearance": { "Формат": "ЧДЦ=2" },
|
||||
"presentationExpression": "Формат(Сумма, \"ЧДЦ=2\")"
|
||||
"presentationExpression": "Формат(Сумма, \"ЧДЦ=2\")",
|
||||
"orderExpression": { "expression": "ЕстьNULL(Поле.Порядок, 10000)", "orderType": "Asc", "autoOrder": false },
|
||||
// или массив (если на поле несколько <orderExpression> для multi-sort fallback):
|
||||
// "orderExpression": [{...}, {...}]
|
||||
"availableValues": [
|
||||
{ "value": 1, "presentation": { "ru": "Доход", "en": "Income" } },
|
||||
{ "value": 2, "presentation": { "ru": "Расход", "en": "Expense" } }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
`availableValues` — список допустимых значений поля с (опциональной multilang) подписью. Типы значений автоопределяются (`bool`/`decimal`/`dateTime`/`string`); можно указать `valueType` явно. Аналогичное поле существует на `parameters` — см. раздел 6.
|
||||
|
||||
### Парсинг shorthand
|
||||
|
||||
1. Разделить по пробелам; найти `@`-роли и `#`-ограничения
|
||||
1. Извлечь `@`-роли (regex `@(\w+)`), `#`-ограничения (`#(\w+)`), KV-пары роли (`(\w+)=(\S+)`)
|
||||
2. Остаток до первого `:` — `dataPath` (и `field` по умолчанию)
|
||||
3. После `:` до `@`/`#` — тип
|
||||
3. После `:` — тип
|
||||
|
||||
### Типы
|
||||
|
||||
@@ -166,9 +176,12 @@
|
||||
| `EnumRef.XXX` | `d5p1:EnumRef.XXX` | inline xmlns:d5p1 |
|
||||
| `ChartOfAccountsRef.XXX` | `d5p1:ChartOfAccountsRef.XXX` | inline xmlns:d5p1 |
|
||||
| `StandardPeriod` | `v8:StandardPeriod` | — |
|
||||
| `DocumentRef` (без `.XXX`) | `<v8:TypeSet xmlns:d5p1=...>d5p1:DocumentRef</v8:TypeSet>` | композитный тип-набор (все ссылки указанного класса) |
|
||||
|
||||
> **Ссылочные типы** (`CatalogRef.XXX`, `DocumentRef.XXX` и др.) эмитируются с inline namespace declaration: `<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.XXX</v8:Type>`. Использование префикса `cfg:` вместо `d5p1:` с объявлением namespace приводит к ошибке XDTO. Сборка EPF со ссылочными типами требует базу с соответствующей конфигурацией (не пустую).
|
||||
|
||||
> **TypeSet (тип-набор)** — голое имя без точки (`CatalogRef`, `DocumentRef`, `EnumRef`, `ChartOfAccountsRef`, `ChartOfCharacteristicTypesRef`, `ChartOfCalculationTypesRef`, `BusinessProcessRef`, `TaskRef`, `ExchangePlanRef`, `InformationRegisterRef`, `AnyRef`) — указывает на **все** ссылки этого класса конфигурации (а не на конкретный объект). Эмитится как `<v8:TypeSet>` вместо `<v8:Type>`. Используется в параметрах типа «исключаемые документы» и подобных.
|
||||
|
||||
### Синонимы типов
|
||||
|
||||
Все имена типов регистронезависимые. Поддерживаются русские и альтернативные имена:
|
||||
@@ -192,22 +205,36 @@
|
||||
|
||||
### Роли
|
||||
|
||||
| DSL shorthand | Объектная форма | XML |
|
||||
|---------------|----------------|-----|
|
||||
| `@dimension` | `"role": "dimension"` или `{"dimension": true}` | `<dcscom:dimension>true</dcscom:dimension>` |
|
||||
| `@account` | `"role": "account"` или `{"account": true}` | `<dcscom:account>true</dcscom:account>` |
|
||||
| `@balance` | `"role": "balance"` или `{"balance": true}` | `<dcscom:balance>true</dcscom:balance>` |
|
||||
| `@period` | `"role": "period"` или `{"period": true}` | `<dcscom:periodNumber>1</dcscom:periodNumber>` + `<dcscom:periodType>Main</dcscom:periodType>` |
|
||||
Принимаются четыре формы:
|
||||
|
||||
Объектная форма с доп. полями:
|
||||
```json
|
||||
"role": {
|
||||
"account": true,
|
||||
"accountTypeExpression": "Счёт.ВидСчёта",
|
||||
"balanceGroup": "/Остатки"
|
||||
}
|
||||
"role": "dimension" // одиночный флаг
|
||||
"role": ["dimension", "required"] // массив флагов
|
||||
"role": "balance balanceGroupName=Сумма balanceType=OpeningBalance" // shorthand
|
||||
"role": { "balance": true, "balanceGroupName": "Сумма", "balanceType": "OpeningBalance" }
|
||||
```
|
||||
|
||||
Shorthand-формат может быть встроен прямо в shorthand поля:
|
||||
|
||||
```
|
||||
"Сумма: decimal(15,2) @balance balanceGroupName=Сумма balanceType=OpeningBalance"
|
||||
```
|
||||
|
||||
**Парсинг shorthand**: `@(\w+)` → boolean флаги; `(\w+)=(\S+)` → строковые KV; остаток — `dataPath[: type]`.
|
||||
|
||||
**Поддерживаемые ключи**:
|
||||
|
||||
| Категория | Ключи |
|
||||
|-----------|-------|
|
||||
| `@`-флаги (boolean) | `@dimension`, `@account`, `@balance`, `@period`, `@required`, `@autoOrder`, `@ignoreNullValues` |
|
||||
| Строковые KV | `balanceGroupName`, `balanceType` (`OpeningBalance`/`ClosingBalance`), `parentDimension`, `accountTypeExpression`, `expression`, `orderType` (`Asc`/`Desc`), `periodNumber`, `periodType` |
|
||||
|
||||
Whitelist'а нет — любой `<dcscom:KEY>` принимается; перечисленные — типичные. `@period` — sugar для `periodNumber=1` + `periodType=Main` (можно переопределить явно).
|
||||
|
||||
**XML-выход**: `<dcscom:KEY>true</dcscom:KEY>` для флагов; `<dcscom:KEY>VALUE</dcscom:KEY>` для KV.
|
||||
|
||||
> Устаревший ключ `balanceGroup` в object-форме принимается как alias для `balanceGroupName` (имя элемента в реальном XML — `balanceGroupName`).
|
||||
|
||||
### Ограничения
|
||||
|
||||
| DSL shorthand | Объектная форма | XML useRestriction |
|
||||
@@ -371,7 +398,7 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
| `name` | Имя параметра |
|
||||
| `title` | Заголовок (умолч. = name) |
|
||||
| `type` | Тип (см. таблицу типов) |
|
||||
| `value` | Значение по умолчанию |
|
||||
| `value` | Значение по умолчанию (скаляр; для `valueListAllowed=true` — массив значений по умолчанию: `[ "ПланСчетов.Хозрасчетный.X", "...Y", "...Z" ]`) |
|
||||
| `expression` | Выражение для вычисления |
|
||||
| `availableAsField` | `false` — скрыть из полей |
|
||||
| `valueListAllowed` | `true` — разрешить список значений |
|
||||
@@ -379,7 +406,9 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
| `useRestriction` | `true` — скрыть от пользователя |
|
||||
| `use` | `"Always"`, `"Auto"` |
|
||||
| `denyIncompleteValues` | `true` — запретить произвольные значения (только из availableValues) |
|
||||
| `availableValues` | Массив `[{value, presentation}]` — допустимые значения с представлениями |
|
||||
| `availableValues` | Массив `[{value, presentation}]` — допустимые значения с представлениями. Типы (bool/int/decimal) сохраняются нативно в JSON |
|
||||
| `inputParameters` | Параметры ввода (например `ФорматРедактирования`) — массив `[{parameter, value, valueType?, choiceParameters?, choiceParameterLinks?}]`. `valueType: {uri, name}` сохраняет кастомный xsi:type с локальным xmlns (например `d6p1:FoldersAndItemsUse`). В `choiceParameters[i].values` элементы — bool/int/double/string; compile эмитит соответствующий xsi:type (`xs:boolean` / `xs:decimal` / `dcscor:DesignTimeValue`) |
|
||||
| `nilValue` | `true` — эмитить `<value xsi:nil="true"/>` для параметров с явным типом (decimal/string/dateTime), где XML-сериализатор обычно ставит типизированный default. Bit-perfect round-trip |
|
||||
|
||||
### availableValues
|
||||
|
||||
@@ -463,11 +492,16 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
|
||||
| Поле | XML |
|
||||
|------|-----|
|
||||
| `source` | `<sourceDataSet>` |
|
||||
| `dest` | `<destinationDataSet>` |
|
||||
| `sourceExpr` | `<sourceExpression>` |
|
||||
| `destExpr` | `<destinationExpression>` |
|
||||
| `source` / `sourceDataSet` | `<sourceDataSet>` |
|
||||
| `dest` / `destinationDataSet` | `<destinationDataSet>` |
|
||||
| `sourceExpr` / `sourceExpression` | `<sourceExpression>` |
|
||||
| `destExpr` / `destinationExpression` | `<destinationExpression>` |
|
||||
| `parameter` | `<parameter>` (опц.) |
|
||||
| `parameterListAllowed` | `<parameterListAllowed>true</parameterListAllowed>` (опц., bool) |
|
||||
| `startExpression` | `<startExpression>` (опц.) |
|
||||
| `linkConditionExpression` | `<linkConditionExpression>` (опц.) |
|
||||
|
||||
decompile эмитит длинные имена (`sourceDataSet` и т.д.); compile принимает обе формы.
|
||||
|
||||
---
|
||||
|
||||
@@ -478,30 +512,38 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
"name": "Основной",
|
||||
"presentation": "Основной вариант",
|
||||
"settings": {
|
||||
"userFields": [...],
|
||||
"selection": [...],
|
||||
"filter": [...],
|
||||
"order": [...],
|
||||
"conditionalAppearance": [...],
|
||||
"outputParameters": {...},
|
||||
"dataParameters": [...],
|
||||
"structure": [...]
|
||||
"structure": [...],
|
||||
"additionalProperties": { "ВариантНаименование": "...", "Адрес": "..." }
|
||||
}
|
||||
}]
|
||||
```
|
||||
|
||||
`additionalProperties` — словарь служебных свойств варианта (`<dcsset:additionalProperties>` в XML), значения сохраняются как `xs:string`. Платформа использует его для типа «имя варианта», URL временного хранилища и т.п. — для bit-perfect round-trip сохраняется как есть, обычно модели заполнять не нужно.
|
||||
|
||||
### selection
|
||||
|
||||
```json
|
||||
"selection": [
|
||||
"Наименование",
|
||||
{ "field": "Количество", "title": "Кол-во" },
|
||||
{ "field": "Контрагент", "viewMode": "Inaccessible" },
|
||||
{ "field": "Скрытое", "use": false },
|
||||
{ "auto": true, "use": false },
|
||||
"Auto"
|
||||
]
|
||||
```
|
||||
|
||||
- Строка → `SelectedItemField`
|
||||
- `"Auto"` → `SelectedItemAuto` (только на уровне группировок; на верхнем уровне settings игнорируется)
|
||||
- Объект с `field`/`title` → `SelectedItemField` с `lwsTitle`
|
||||
- Объект с `field` + опц. `title`/`viewMode`/`use` → `SelectedItemField`. `use: false` = поле выборки отключено (видно в UI, но не применяется)
|
||||
- Объект `{ auto: true, use: false }` → отключённый `SelectedItemAuto`
|
||||
- Объект с `folder`/`items` → `SelectedItemFolder` — группа полей с заголовком и `placement=Auto`:
|
||||
|
||||
```json
|
||||
@@ -513,6 +555,12 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
]
|
||||
```
|
||||
|
||||
Опциональное поле `placement` (`Auto` / `Horizontally` / `Vertically` / `Special`) задаёт расположение элементов внутри группы (по умолчанию `Auto`):
|
||||
|
||||
```json
|
||||
{"folder": "Экономия ФОТ", "items": ["ЭкономияФОТ", "ЭкономияФОТПроцент"], "placement": "Horizontally"}
|
||||
```
|
||||
|
||||
### filter
|
||||
|
||||
#### Shorthand-строка
|
||||
@@ -532,8 +580,9 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
- `@off` → `use=false`
|
||||
- `@user` → `userSettingID=auto` (генерировать GUID)
|
||||
- `@quickAccess` → `viewMode=QuickAccess`
|
||||
- `@normal` → `viewMode=Normal`
|
||||
- `@normal` → `viewMode=Normal` (явный — для bit-perfect, см. [viewMode](#viewmode-режим-доступности))
|
||||
- `@inaccessible` → `viewMode=Inaccessible`
|
||||
- Типы значений автоопределяются: `true`/`false` → `xs:boolean`, дата `2024-01-01T00:00:00` → `xs:dateTime`, числа → `xs:decimal`, `Перечисление.X.Y`/`Справочник.X.Y`/`ПланСчетов.X.Y` и др. → `dcscor:DesignTimeValue`, остальное → `xs:string`
|
||||
- Типы значений автоопределяются: `true`/`false` → boolean, `2024-01-01T00:00:00` → dateTime, числа → decimal, `Перечисление.*`/`Справочник.*`/`ПланСчетов.*`/`Документ.*` → DesignTimeValue, прочее → string
|
||||
- OrGroup: `{"group": "Or", "items": ["условие1", "условие2"]}` — объединяет условия через ИЛИ
|
||||
|
||||
@@ -543,10 +592,13 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
"filter": [
|
||||
{ "field": "Организация", "op": "=", "use": false, "userSettingID": "auto" },
|
||||
{ "field": "Дата", "op": ">=", "value": "0001-01-01T00:00:00", "valueType": "xs:dateTime" },
|
||||
{ "field": "СуммаДт", "op": "=", "value": "СуммаКт", "valueType": "dcscor:Field" },
|
||||
{ "field": "Статус", "op": "in", "value": [1, 3, 5] },
|
||||
{ "field": "Контрагенты", "op": "in", "value": [], "userSettingID": "auto" },
|
||||
{ "group": "Or", "items": [
|
||||
{ "field": "Статус", "op": "=", "value": true, "valueType": "xs:boolean" },
|
||||
{ "field": "Пометка", "op": "filled" }
|
||||
]}
|
||||
], "userSettingID": "auto" }
|
||||
]
|
||||
```
|
||||
|
||||
@@ -554,14 +606,19 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
|------|----------|
|
||||
| `field` | Имя поля |
|
||||
| `op` | Оператор (см. таблицу) |
|
||||
| `value` | Правая часть (опц.) |
|
||||
| `valueType` | xsi:type для значения (опц.) |
|
||||
| `value` | Правая часть (опц.). См. формы ниже |
|
||||
| `valueType` | xsi:type для значения (опц.). `"dcscor:Field"` = field-to-field comparison (значение — имя другого поля). Для массива `value: [...]` применяется ко всем элементам — нужен когда auto-detect ошибается (например `Перечисление.X.Y` должно остаться `xs:string`, а не `dcscor:DesignTimeValue`) |
|
||||
| `use` | Включён (`true` по умолчанию) |
|
||||
| `presentation` | Текст подсказки |
|
||||
| `viewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` |
|
||||
| `userSettingID` | `"auto"` → генерировать GUID |
|
||||
| `userSettingPresentation` | Отображаемое имя настройки (LocalStringType) |
|
||||
|
||||
**Формы `value`:**
|
||||
- Скаляр (`"X"`, `5`, `true`, `"2024-01-01T00:00:00"`) — single `<right>` (стандартный случай). Тип определяется автоматически: bool / число / дата / строка.
|
||||
- Массив `[a, b, c]` — несколько `<right>` подряд (для `in`/`notIn` с конкретными значениями).
|
||||
- Пустой массив `[]` — `<right xsi:type="v8:ValueListType">` placeholder (типичный паттерн для `in` с пользовательскими настройками — значения заполнит пользователь через UI).
|
||||
|
||||
Операторы:
|
||||
|
||||
| DSL | XML comparisonType |
|
||||
@@ -581,18 +638,24 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
| `filled` | `Filled` |
|
||||
| `notFilled` | `NotFilled` |
|
||||
|
||||
Группа условий: `{ "group": "And"|"Or"|"Not", "items": [...] }` → `FilterItemGroup` с `groupType`.
|
||||
Группа условий: `{ "group": "And"|"Or"|"Not", "items": [...] }` → `FilterItemGroup` с `groupType`. Группа также принимает item-level поля `presentation`, `viewMode`, `userSettingID`, `userSettingPresentation` — для регистрации группы как пункта пользовательских настроек.
|
||||
|
||||
### order
|
||||
|
||||
```json
|
||||
"order": ["Количество desc", "Наименование", "Auto"]
|
||||
"order": [
|
||||
"Количество desc",
|
||||
"Наименование",
|
||||
{ "field": "Контрагент", "direction": "desc", "viewMode": "Inaccessible" },
|
||||
"Auto"
|
||||
]
|
||||
```
|
||||
|
||||
- `"Field"` → `OrderItemField`, `orderType=Asc`
|
||||
- `"Field desc"` → `OrderItemField`, `orderType=Desc`
|
||||
- `"Field asc"` → `OrderItemField`, `orderType=Asc`
|
||||
- `"Auto"` → `OrderItemAuto` (только на уровне группировок; на верхнем уровне settings игнорируется)
|
||||
- Объект `{ field, direction?, viewMode?, use? }` — нужен, когда требуется задать `viewMode`, или отключить сортировку через `use: false` (см. [viewMode](#viewmode-режим-доступности))
|
||||
|
||||
### conditionalAppearance
|
||||
|
||||
@@ -604,14 +667,16 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
"selection": ["Сумма"],
|
||||
"filter": ["Сумма > 1000"],
|
||||
"appearance": { "ЦветТекста": "style:ПросроченныеДанныеЦвет" },
|
||||
"presentation": "Выделять крупные суммы",
|
||||
"presentation": { "ru": "Выделять крупные суммы", "en": "Highlight large amounts" },
|
||||
"viewMode": "Normal",
|
||||
"userSettingID": "auto"
|
||||
},
|
||||
{
|
||||
"filter": ["Статус notFilled"],
|
||||
"appearance": { "Текст": "Не указано", "ЦветТекста": "web:Gray" },
|
||||
"presentation": "Скрывать пустые статусы"
|
||||
"presentation": "Скрывать пустые статусы",
|
||||
"use": false,
|
||||
"useInDontUse": ["group", "fieldsHeader"]
|
||||
}
|
||||
]
|
||||
```
|
||||
@@ -621,15 +686,25 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
| `selection` | Массив полей, к которым применяется. Пусто/опущено = все поля |
|
||||
| `filter` | Условия (shorthand-строки или объекты, как в settings filter) |
|
||||
| `appearance` | Объект `{ "Параметр": "Значение" }` |
|
||||
| `presentation` | Описание правила |
|
||||
| `use` | Включено (`true` по умолчанию) |
|
||||
| `presentation` | Описание правила (строка или multilang dict `{ru, en}`) |
|
||||
| `use` | Включено (`true` по умолчанию). `false` = правило отключено |
|
||||
| `viewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` |
|
||||
| `userSettingID` | `"auto"` → генерировать GUID |
|
||||
| `userSettingPresentation` | Имя в пользовательских настройках (string или multilang) |
|
||||
| `useInDontUse` | Массив контекстов где правило **НЕ** применяется. Возможные имена: `group`, `hierarchicalGroup`, `overall`, `fieldsHeader`, `header`, `parameters`, `filter`, `resourceFieldsHeader`, `overallHeader`, `overallResourceFieldsHeader` |
|
||||
|
||||
**Типы значений appearance** определяются автоматически:
|
||||
- `style:XXX`, `web:XXX`, `win:XXX` → `v8ui:Color`
|
||||
- `style:XXX` → `v8ui:Color` (палитра темы платформы, namespace `http://v8.1c.ru/8.1/data/ui/style`)
|
||||
- `web:XXX` → `v8ui:Color` (web-имена цветов, namespace `http://v8.1c.ru/8.1/data/ui/colors/web`)
|
||||
- `win:XXX` → `v8ui:Color` (системные цвета Windows, namespace `http://v8.1c.ru/8.1/data/ui/colors/windows`)
|
||||
- Ключи `ЦветТекста`/`ЦветФона`/`ЦветГраницы` со значениями типа `auto` или `#XXXXXX` → `v8ui:Color`
|
||||
- Ключ `Размещение` → `dcscor:DataCompositionTextPlacementType`
|
||||
- Ключи `ГоризонтальноеПоложение`/`ВертикальноеПоложение` → `v8ui:HorizontalAlign`/`VerticalAlign`
|
||||
- Ключ `ТипМакета` → `dcsset:DataCompositionGroupTemplateType`
|
||||
- Ключи `Текст`/`Заголовок`/`Формат` → `v8:LocalStringType` (если значение строка)
|
||||
- Числовые строки (`"40"`, `"15"`) → `xs:decimal`
|
||||
- `true`/`false` → `xs:boolean`
|
||||
- Параметр `Формат`, `Текст` или `Заголовок` → `v8:LocalStringType`
|
||||
- Multilang dict `{ru, en}` для любого ключа → `v8:LocalStringType`
|
||||
- Прочее → `xs:string`
|
||||
|
||||
Поддержка `use=false` на уровне параметра:
|
||||
@@ -652,13 +727,72 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
Ключ → `dcscor:parameter`, значение → `dcscor:value`.
|
||||
|
||||
Типы значений определяются автоматически:
|
||||
- `"Заголовок"` → `v8:LocalStringType`
|
||||
- `"Заголовок"` → `v8:LocalStringType` (примет строку или multilang dict)
|
||||
- `"ВыводитьЗаголовок"`, `"ВыводитьПараметрыДанных"`, `"ВыводитьОтбор"` → `dcsset:DataCompositionTextOutputType`
|
||||
- `"РасположениеПолейГруппировки"` → `dcsset:DataCompositionGroupFieldsPlacement`
|
||||
- `"РасположениеРеквизитов"` → `dcsset:DataCompositionAttributesPlacement`
|
||||
- `"ГоризонтальноеРасположениеОбщихИтогов"`, `"ВертикальноеРасположениеОбщихИтогов"` → `dcscor:DataCompositionTotalPlacement`
|
||||
- `"ГоризонтальноеРасположениеОбщихИтогов"`, `"ВертикальноеРасположениеОбщихИтогов"`, `"РасположениеОбщихИтогов"`, `"РасположениеИтогов"` → `dcscor:DataCompositionTotalPlacement`
|
||||
- `"РасположениеГруппировки"` → `dcsset:DataCompositionFieldGroupPlacement`
|
||||
- `"РасположениеРесурсов"` → `dcsset:DataCompositionResourcesPlacement`
|
||||
- `"ТипМакета"` → `dcsset:DataCompositionGroupTemplateType`
|
||||
- Multilang dict `{ru, en}` для любого ключа → `v8:LocalStringType`
|
||||
- Прочие → `xs:string`
|
||||
|
||||
Значение можно обернуть в `{ "value": ..., "use": false }` — отключённый параметр (платформа эмитит `<dcscor:use>false</dcscor:use>`). Такая же форма доступна в `appearance` items (см. раздел conditionalAppearance).
|
||||
|
||||
#### Полная wrapper-форма (bit-perfect round-trip)
|
||||
|
||||
Decompile сохраняет всю периферию каждого outputParameter в wrapper'е:
|
||||
|
||||
```json
|
||||
{
|
||||
"value": "Custom",
|
||||
"valueType": "v8:StandardPeriod", // полный xsi:type если не покрыт type-map'ом
|
||||
"use": false, // <dcscor:use>false</dcscor:use>
|
||||
"items": { // nested sub-параметры (ТипДиаграммы.ВидПодписей)
|
||||
"ТипДиаграммы.ВидПодписей": { "value": "Value", "valueType": "v8ui:ChartLabelType" }
|
||||
},
|
||||
"viewMode": "Normal", // <dcsset:viewMode>Normal</dcsset:viewMode>
|
||||
"userSettingID": "auto",
|
||||
"userSettingPresentation": { "ru": "Тип" }
|
||||
}
|
||||
```
|
||||
|
||||
Wrapper эмитится только при наличии extra-полей; простое `"key": "value"` остаётся как есть.
|
||||
|
||||
#### Шрифт (v8ui:Font) в appearance
|
||||
|
||||
Шрифт — объект с маркером `@type: "Font"`:
|
||||
```json
|
||||
"Шрифт": { "@type": "Font", "ref": "sys:DefaultGUIFont", "height": 10, "bold": "true", "italic": "false", "underline": "false", "strikeout": "false", "kind": "WindowsFont" }
|
||||
```
|
||||
Все атрибуты исходного XML сохраняются — для bit-perfect.
|
||||
|
||||
#### Граница (v8ui:Line) в appearance
|
||||
|
||||
Граница — объект с маркером `@type: "Line"` (атрибуты `width`/`gap` и inner `<v8ui:style>` сериализуются inline):
|
||||
```json
|
||||
"СтильГраницы": { "@type": "Line", "width": 0, "gap": false, "style": "None" }
|
||||
```
|
||||
|
||||
Стороны (`СтильГраницы.Сверху/.Снизу/.Слева/.Справа`) — nested SettingsParameterValue, кладутся в `items` (как у outputParameters wrapper):
|
||||
```json
|
||||
"СтильГраницы": {
|
||||
"@type": "Line", "width": 0, "gap": false, "style": "None",
|
||||
"items": {
|
||||
"СтильГраницы.Сверху": {
|
||||
"value": { "@type": "Line", "width": 1, "gap": false, "style": "Solid" },
|
||||
"use": false
|
||||
},
|
||||
"СтильГраницы.Снизу": {
|
||||
"value": { "@type": "Line", "width": 1, "gap": false, "style": "Double" }
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Top-level Line хранится **плоско** (`@type`/`width`/`gap`/`style` + `use?`/`items?` на одном уровне). Nested items используют универсальный wrapper `{ value, use? }` — у `value` тип любой (Line/Font/color/text). Значения `style`: `None`, `Solid`, `Double`, `LargeDashed`, `SmallDashed`, `Dotted` и т.п. (значения `v8ui:SpreadsheetDocumentCellLineType`).
|
||||
|
||||
### dataParameters
|
||||
|
||||
#### Автогенерация
|
||||
@@ -696,11 +830,26 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
|------|----------|
|
||||
| `parameter` | Имя параметра |
|
||||
| `value` | Значение (объект `{ "variant": "LastMonth" }` для StandardPeriod, или скаляр) |
|
||||
| `valueType` | Полный xsi:type если кастомный (например `dcsset:DataCompositionGroupUseVariant`). Для пустого значения с `use: false` — `"xs:string"` эмитит `<value xsi:type="xs:string"/>` (placeholder отключённого параметра типа DateTime, бит-перфектный аналог `xsi:nil`) |
|
||||
| `use` | Включён (`true` по умолчанию) |
|
||||
| `viewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` |
|
||||
| `userSettingID` | `"auto"` → генерировать GUID |
|
||||
| `userSettingPresentation` | Отображаемое имя настройки (LocalStringType) |
|
||||
|
||||
#### StandardPeriod / StandardBeginningDate — shape inference
|
||||
|
||||
Compile различает варианты по форме `value`:
|
||||
|
||||
| Форма | xsi:type | Когда |
|
||||
|---|---|---|
|
||||
| `{variant, startDate, endDate}` | `v8:StandardPeriod` | Custom с явными датами |
|
||||
| `{variant: "ThisMonth"}` (etc) | `v8:StandardPeriod` | без дат — non-Custom варианты SP |
|
||||
| `{variant, date}` | `v8:StandardBeginningDate` | Custom с явной датой |
|
||||
| `{variant: "BeginningOf*"}` | `v8:StandardBeginningDate` | без даты — variant'ы начинаются с `BeginningOf` |
|
||||
| `"2024-01-15T10:00:00"` (string) | `xs:dateTime` | raw datetime без обёртки |
|
||||
|
||||
Platform-pattern: `startDate`/`endDate`/`date` эмитятся ТОЛЬКО для `variant=Custom`. Для `ThisMonth`/`LastYear`/`BeginningOfThisDay`/... — только `<v8:variant>`.
|
||||
|
||||
### structure
|
||||
|
||||
#### String shorthand (рекомендуется для типичных случаев)
|
||||
@@ -735,16 +884,30 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
|------|----------|
|
||||
| `type` | `"group"` |
|
||||
| `name` | Имя группировки (опц.) |
|
||||
| `groupBy` | Массив полей. Пусто/опущено = детальные записи |
|
||||
| `groupBy` | Массив полей. Каждый элемент — строка (имя поля) или объект `{ field, groupType?, periodAdditionType?, periodAdditionBegin?, periodAdditionEnd? }`. Пусто/опущено = детальные записи. Object-форма нужна когда `groupType ≠ "Items"`, `periodAdditionType ≠ "None"` или задана `periodAdditionBegin/End` (см. ниже) |
|
||||
| `groupType` | `"Items"` (умолч.), `"Hierarchy"`, `"HierarchyOnly"` |
|
||||
| `selection` | Выборка (умолч. `["Auto"]`) |
|
||||
| `filter` | Отборы (как в settings) |
|
||||
| `order` | Сортировка (умолч. `["Auto"]`) |
|
||||
| `outputParameters` | Параметры вывода (как в settings) |
|
||||
| `conditionalAppearance` | Условное оформление группы (как в settings) |
|
||||
| `use` | `false` = ветка структуры отключена (на самой группе) |
|
||||
| `viewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` — режим доступности группы в пользовательских настройках |
|
||||
| `itemsViewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` — режим доступности подэлементов группы |
|
||||
| `userSettingID` | `"auto"` → генерировать GUID. Регистрирует группу как пункт пользовательских настроек |
|
||||
| `userSettingPresentation` | Имя в пользовательских настройках (string или multilang dict) |
|
||||
| `children` | Вложенные элементы структуры |
|
||||
|
||||
Пустой `groupBy` (или `[]`) = детальные записи (без `groupItems` в XML).
|
||||
|
||||
**`periodAdditionBegin` / `periodAdditionEnd`** на field-объекте — даты добавочного периода (`<dcsset:periodAdditionBegin>`/`<dcsset:periodAdditionEnd>`). Compile auto-определяет xsi:type значения: строка вида `2025-01-01T00:00:00` → `xs:dateTime`, иначе (путь к параметру, например `ПараметрыДанных.ДатаНачала`) → `dcscor:Field`.
|
||||
|
||||
```json
|
||||
{ "field": "ПериодМесяц",
|
||||
"periodAdditionBegin": "ПараметрыДанных.ДатаНачала",
|
||||
"periodAdditionEnd": "ПараметрыДанных.ДатаОкончания" }
|
||||
```
|
||||
|
||||
#### Таблица (table)
|
||||
|
||||
```json
|
||||
@@ -755,22 +918,188 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
{ "groupBy": ["Номенклатура"], "selection": ["Auto"], "order": ["Auto"] }
|
||||
],
|
||||
"columns": [
|
||||
{ "groupBy": ["Период"], "selection": ["Auto"], "order": ["Auto"] }
|
||||
{
|
||||
"name": "Период",
|
||||
"groupBy": ["Период"],
|
||||
"filter": ["Сумма > 0"],
|
||||
"selection": ["Auto"],
|
||||
"order": ["Auto"],
|
||||
"outputParameters": { "РасположениеИтогов": "None" },
|
||||
"userSettingID": "auto",
|
||||
"userSettingPresentation": { "ru": "Колонка с периодом" }
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Каждая `column`/`row` принимает те же поля что и `group`: `name`, `groupBy`/`groupFields`, `filter`, `order`, `selection`, `outputParameters`, `conditionalAppearance`, `children` (вложенные `StructureItemGroup`), плюс user-settings — `viewMode`, `userSettingID`, `userSettingPresentation`, `itemsViewMode` (регистрация column/row как пункта «Изменить вариант»).
|
||||
|
||||
На самой `table` (отдельно от column/row) также допустимы `selection`, `conditionalAppearance`, `outputParameters`, плюс user-settings: `viewMode`, `userSettingID`, `userSettingPresentation`, `itemsViewMode`, `columnsViewMode`, `rowsViewMode`, `use` (`false` = таблица отключена).
|
||||
- `columnsViewMode` / `rowsViewMode` — режим доступности секции колонок / строк в пользовательских настройках (значения: `Normal` / `QuickAccess` / `Inaccessible`).
|
||||
|
||||
> **Внутренний паттерн**: `<dcsset:item xsi:type="dcsset:StructureItemGroup">` внутри `<dcsset:row>`/`<dcsset:column>`/`<dcsset:points>`/`<dcsset:series>` платформа всегда сериализует в **короткой форме** `<dcsset:item>` без `xsi:type`. Compile эмитит этот вариант автоматически для `children` table axis.
|
||||
|
||||
#### Диаграмма (chart)
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "chart",
|
||||
"points": { "groupBy": ["Организация"], "order": ["Auto"] },
|
||||
"points": { "groupBy": ["Организация"], "order": ["Auto"], "filter": [...] },
|
||||
"series": { "groupBy": ["Месяц"], "order": ["Auto"] },
|
||||
"selection": ["Сумма"]
|
||||
}
|
||||
```
|
||||
|
||||
`points` и `series` принимают те же поля что table column/row (включая `name` и user-settings).
|
||||
|
||||
На самой chart-item: `viewMode`, `userSettingID`, `userSettingPresentation`, `itemsViewMode`, `pointsViewMode`, `seriesViewMode`, `use: false` (диаграмма отключена). `pointsViewMode`/`seriesViewMode` — аналоги `columnsViewMode`/`rowsViewMode` у таблицы.
|
||||
|
||||
**Multi-series / multi-points** — `points` и `series` могут быть массивом объектов, тогда генерируется несколько `<dcsset:point>` или `<dcsset:series>` подряд (каждый со своими `groupBy`, `filter`, user-settings). Используется например для разделения данных диаграммы на несколько серий по разным фильтрам:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "chart",
|
||||
"points": { "groupBy": ["Период"] },
|
||||
"series": [
|
||||
{ "groupBy": ["Стадия"], "filter": ["Стадия = ЗНАЧЕНИЕ(Перечисление.X.A)"],
|
||||
"viewMode": "Normal", "userSettingID": "auto",
|
||||
"userSettingPresentation": { "ru": "Серия A" } },
|
||||
{ "groupBy": ["Стадия"], "filter": ["Стадия = ЗНАЧЕНИЕ(Перечисление.X.B)"],
|
||||
"viewMode": "Normal", "userSettingID": "auto",
|
||||
"userSettingPresentation": { "ru": "Серия B" } }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### userFields (пользовательские вычисляемые поля)
|
||||
|
||||
Дополнительные поля, которые пользователь может задать в режиме «Изменить вариант» через UI. Хранятся в settings варианта. Два подтипа определяются по содержимому объекта:
|
||||
|
||||
**Expression-форма** — поле вычисляется выражением (опционально с разделением для детальных строк и для итогов):
|
||||
|
||||
```json
|
||||
"userFields": [
|
||||
{
|
||||
"dataPath": "ПользовательскиеПоля.Поле1",
|
||||
"title": { "ru": "Отработано дней", "en": "Days worked" },
|
||||
"detail": {
|
||||
"expression": "Выбор Когда Группа = ... Тогда ОтработаноДней Иначе 0 Конец",
|
||||
"presentation": "Выбор Когда Группа = ... Тогда [Отработано дней] Иначе 0 Конец"
|
||||
},
|
||||
"total": {
|
||||
"expression": "Сумма(Выбор Когда Группа = ... Тогда ОтработаноДней Иначе 0 Конец)",
|
||||
"presentation": "Сумма(Выбор Когда Группа = ... Тогда [Отработано дней] Иначе 0 Конец)"
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
| Поле | Описание |
|
||||
|------|----------|
|
||||
| `dataPath` | Путь поля в формате `ПользовательскиеПоля.ПолеN` |
|
||||
| `title` | Заголовок (строка или multilang dict) |
|
||||
| `detail.expression` | Выражение для детальных записей |
|
||||
| `detail.presentation` | Тот же expression с подстановкой `[Имя поля]` (для UI) |
|
||||
| `total.expression` | Выражение для итоговой строки |
|
||||
| `total.presentation` | Same для UI |
|
||||
|
||||
> **Пустые значения**: XML всегда содержит все четыре элемента (`detailExpression`, `detailExpressionPresentation`, `totalExpression`, `totalExpressionPresentation`) — даже если без значения (`<dcsset:totalExpression/>`). decompile сохраняет ключ с пустой строкой, compile эмитит self-closing тег для пустых строк. Это нужно для bit-perfect round-trip.
|
||||
|
||||
**Case-форма** — поле принимает разные значения в зависимости от условий:
|
||||
|
||||
```json
|
||||
"userFields": [
|
||||
{
|
||||
"dataPath": "ПользовательскиеПоля.Поле1",
|
||||
"title": { "ru": "Вид продаж" },
|
||||
"cases": [
|
||||
{
|
||||
"filter": ["ХозОперация <> Перечисление.ХозяйственныеОперации.РеализацияВРозницу"],
|
||||
"value": 2,
|
||||
"presentation": { "ru": "Только оптовые продажи", "en": "Wholesale only" }
|
||||
},
|
||||
{
|
||||
"filter": ["ХозОперация = Перечисление.ХозяйственныеОперации.РеализацияВРозницу"],
|
||||
"value": 3,
|
||||
"presentation": { "ru": "Только розничные продажи", "en": "Retail only" }
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
| Поле | Описание |
|
||||
|------|----------|
|
||||
| `cases[].filter` | Условие (как в settings filter) |
|
||||
| `cases[].value` | Значение поля если условие выполнено (типы автоопределяются: bool/decimal/string) |
|
||||
| `cases[].presentation` | Текст значения для UI (multilang) |
|
||||
|
||||
Тип элемента определяется автоматически: наличие `cases` → `UserFieldCase`, иначе → `UserFieldExpression`.
|
||||
|
||||
### viewMode (режим доступности)
|
||||
|
||||
`viewMode` управляет доступностью элемента в **пользовательских настройках** отчёта («Изменить вариант…» / «Настройки»). Возможные значения:
|
||||
|
||||
| Значение | Семантика |
|
||||
|----------|-----------|
|
||||
| `"Normal"` | Пользователь видит и может править (default) |
|
||||
| `"Inaccessible"` | Скрыто от пользователя, не редактируется |
|
||||
| `"QuickAccess"` | Вынесено в быстрые настройки (на форму отчёта) |
|
||||
| `"Auto"` | Автоматический режим (наследование от контейнера) |
|
||||
|
||||
Применяется в трёх контекстах:
|
||||
|
||||
**1. Item-level** — на отдельном элементе блока (см. описание объектной формы соответствующего раздела):
|
||||
|
||||
```json
|
||||
"filter": [{ "field": "X", "op": "=", "value": "Y", "viewMode": "Inaccessible" }],
|
||||
"selection": [{ "field": "X", "viewMode": "Inaccessible" }],
|
||||
"order": [{ "field": "X", "viewMode": "Inaccessible" }],
|
||||
"conditionalAppearance": [{ "filter": [...], "appearance": {...}, "viewMode": "Inaccessible" }],
|
||||
"dataParameters": [{ "parameter": "X", "viewMode": "QuickAccess" }]
|
||||
```
|
||||
|
||||
Shorthand-флаги `@inaccessible`, `@quickAccess` доступны для `filter` и `dataParameters` строковых форм.
|
||||
|
||||
**2. Block-level** — на самом блоке (внутри `settings`). Управляет доступностью всей группы как пункта пользовательских настроек:
|
||||
|
||||
```json
|
||||
"settings": {
|
||||
"selectionViewMode": "Inaccessible",
|
||||
"filterViewMode": "Inaccessible",
|
||||
"orderViewMode": "Inaccessible",
|
||||
"conditionalAppearanceViewMode": "Inaccessible",
|
||||
"itemsViewMode": "Inaccessible",
|
||||
"selectionUserSettingID": "auto",
|
||||
"filterUserSettingID": "auto",
|
||||
"orderUserSettingID": "auto",
|
||||
"conditionalAppearanceUserSettingID": "auto",
|
||||
"selection": [...],
|
||||
"filter": [...]
|
||||
}
|
||||
```
|
||||
|
||||
`itemsViewMode` на settings — общий режим для всех подэлементов варианта (`<dcsset:itemsViewMode>` в XML). `XxxUserSettingID` парят с `XxxViewMode` — platform пишет их в block-level пользовательских настроек. Пустые блоки (без items) тоже эмитятся, если есть block-level meta — например `<dcsset:conditionalAppearance><dcsset:viewMode>Normal</dcsset:viewMode></dcsset:conditionalAppearance>`.
|
||||
|
||||
Также `orderViewMode`/`orderUserSettingID` поддержаны на StructureItemGroup для случаев когда block-level meta лежит на nested `<dcsset:order>`.
|
||||
|
||||
**3. Structure item** — на элементе структуры (`group`):
|
||||
|
||||
```json
|
||||
{ "type": "group", "groupBy": ["Организация"], "viewMode": "Inaccessible", "itemsViewMode": "Inaccessible" }
|
||||
```
|
||||
|
||||
**4. Table axis / chart axis** — на самой `column`/`row`/`points`/`series`. Через те же поля `viewMode`, `userSettingID`, `userSettingPresentation` (см. раздел Таблица).
|
||||
|
||||
#### Стратегия сохранения
|
||||
|
||||
Платформа эмитит `viewMode` непоследовательно: в одних местах `<viewMode>Normal</viewMode>` присутствует явно (когда элемент — пункт пользовательских настроек), в других — нет. Для bit-perfect round-trip:
|
||||
|
||||
- `skd-decompile` сохраняет `viewMode` в JSON **точно как было в XML**, включая явный `"Normal"` если он физически присутствовал.
|
||||
- `skd-compile` эмитит `<viewMode>` только если значение задано в JSON (без `implicit Normal`-подстановки).
|
||||
|
||||
При компиляции JSON, написанного с нуля моделью, `viewMode` опускается → платформа применит default `Normal` при загрузке схемы.
|
||||
|
||||
---
|
||||
|
||||
## 10. Макеты и привязки (templates, groupTemplates)
|
||||
@@ -886,13 +1215,45 @@ XML-маппинг — по `<group>` на каждый элемент:
|
||||
|
||||
#### Расшифровка (drilldown) в параметрах шаблона
|
||||
|
||||
Ключ `drilldown` в параметре шаблона автоматически генерирует:
|
||||
1. `DetailsAreaTemplateParameter` с именем `Расшифровка_<значение>`, `fieldExpression` по полю `ИмяРесурса`, `mainAction=DrillDown`
|
||||
2. Привязку `Расшифровка` в appearance ячеек, ссылающихся на этот параметр через `{Имя}`
|
||||
Ключ `drilldown` в параметре шаблона — три формы по типу значения:
|
||||
|
||||
**Форма A (без drilldown)** — обычный `ExpressionAreaTemplateParameter`:
|
||||
```json
|
||||
{ "name": "Дата", "expression": "Документ.Дата" }
|
||||
```
|
||||
|
||||
**Форма B (строка, shortcut)** — `ExpressionAreaTemplateParameter` + автоматический `DetailsAreaTemplateParameter` с именем `Расшифровка_<value>`, `fieldExpression` по полю `ИмяРесурса` (`expression="<value>"`), `mainAction=DrillDown`. Ячейки `{name}` получают appearance `Расшифровка → Расшифровка_<value>` автоматически:
|
||||
```json
|
||||
{ "name": "Сырье", "expression": "ПоступлениеСырья", "drilldown": "ПоступлениеСырья" }
|
||||
```
|
||||
|
||||
**Форма C (объект)** — самостоятельный `DetailsAreaTemplateParameter` с именем `name`, без `ExpressionAreaTemplateParameter`. Используется когда расшифровка ссылается на data-параметр (а не на ИмяРесурса) и/или нужен другой `mainAction` (например `OpenValue`):
|
||||
```json
|
||||
{ "name": "МаршрутныйЛист",
|
||||
"drilldown": { "field": "МаршрутныйЛист",
|
||||
"expression": "МаршрутныйЛист",
|
||||
"action": "OpenValue" } }
|
||||
```
|
||||
`action` по умолчанию `DrillDown`.
|
||||
|
||||
**Override на уровне ячейки** — object-форма `{ value, drilldown }`. Используется когда несколько ячеек должны указывать на один и тот же параметр-расшифровку (объявленный формой C):
|
||||
|
||||
```json
|
||||
"parameters": [
|
||||
{ "name": "Сырье", "expression": "ПоступлениеСырья", "drilldown": "ПоступлениеСырья" }
|
||||
"rows": [
|
||||
[ { "value": "{Номер}", "drilldown": "МаршрутныйЛист" },
|
||||
{ "value": "{Дата}", "drilldown": "МаршрутныйЛист" } ]
|
||||
]
|
||||
```
|
||||
|
||||
Значение `drilldown` в ячейке — это полное имя параметра-расшифровки (как объявлено в `parameters`). Для shortcut form B override не нужен — appearance подставляется автоматически.
|
||||
|
||||
### fieldTemplates
|
||||
|
||||
Привязка именованного area-template к полю — `<fieldTemplate><field>X</field><template>Y</template></fieldTemplate>`. Когда платформа выводит значение поля `X`, используется макет `Y`:
|
||||
|
||||
```json
|
||||
"fieldTemplates": [
|
||||
{ "field": "МаршрутныйЛист", "template": "Макет1" }
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
+11
-2
@@ -8,6 +8,7 @@
|
||||
|-------|-----------|----------|
|
||||
| `/skd-info` | `<TemplatePath> [-Mode] [-Name]` | Анализ структуры СКД: наборы, поля, параметры, ресурсы, варианты (11 режимов, включая full) |
|
||||
| `/skd-compile` | `[-DefinitionFile <json> \| -Value <json-string>] -OutputPath <Template.xml>` | Генерация Template.xml из JSON DSL: наборы, поля, итоги, параметры, варианты |
|
||||
| `/skd-decompile` | `<TemplatePath> [-OutputPath <out.json>]` | Преобразование Template.xml в JSON-черновик в формате `/skd-compile` — для нового отчёта по образцу или структурной переработки существующего. Из соображений предосторожности исключён из автоматического подбора моделью — вызывается только явной командой |
|
||||
| `/skd-edit` | `<TemplatePath> -Operation <op> -Value "<value>"` | Точечное редактирование: 26 атомарных операций (add/set/patch/modify/clear/remove) |
|
||||
| `/skd-validate` | `<TemplatePath> [-MaxErrors 20]` | Валидация структурной корректности: ~30 проверок |
|
||||
|
||||
@@ -15,15 +16,23 @@
|
||||
|
||||
```
|
||||
Описание отчёта (текст) → JSON DSL → /skd-compile → Template.xml → /skd-validate
|
||||
↕ /skd-edit → /skd-info
|
||||
↑ ↕ /skd-edit → /skd-info
|
||||
└──── /skd-decompile ──────┘
|
||||
```
|
||||
|
||||
1. Claude формирует JSON-определение СКД (shorthand-поля, параметры, итоги, варианты)
|
||||
1. Claude формирует JSON-определение СКД (shorthand-поля, параметры, итоги, варианты) — либо с нуля по описанию, либо `/skd-decompile` готовит черновик по существующему Template.xml
|
||||
2. `/skd-compile` генерирует Template.xml с корректными namespace, типами, группировками
|
||||
3. `/skd-edit` вносит точечные изменения: добавление полей, фильтров, наборов данных, вариантов, условного оформления и т.д.
|
||||
4. `/skd-validate` проверяет корректность XML
|
||||
5. `/skd-info` выводит компактную сводку для визуальной проверки
|
||||
|
||||
### Когда `/skd-decompile`, а когда `/skd-edit`
|
||||
|
||||
- **`/skd-edit`** — точечные правки готового отчёта (добавить поле, фильтр, итог, переименовать параметр). Меняет XML адресно, без полной реконструкции, не задевает непокрытые конструкции.
|
||||
- **`/skd-decompile` → правка JSON → `/skd-compile`** — сценарии, где правки структурны: новый отчёт по образцу существующего, переработка варианта, перерисовка макета, перебор набора полей. Цикл переписывает Template.xml целиком.
|
||||
|
||||
**Полнота не гарантируется.** Известные декомпилятору непокрытые конструкции явно отмечаются маркерами в JSON и собираются в файл предупреждений — компилятор откажется собирать такой черновик, пока маркеры не разрешены вручную или не удалены. Но возможны и **тихие потери** — мелкое оформление, редкие настройки, незнакомые декомпилятору расширения. Это даёт валидный XML без части функциональности, и Конфигуратор такой результат не отбракует. Именно поэтому навык не предназначен для точечных правок (для них есть `/skd-edit`) и исключён из автоматического подбора моделью — вызывается только явной командой пользователя. Решение использовать пересобранный Template.xml — на стороне пользователя, и сверка с оригиналом перед коммитом остаётся его ответственностью.
|
||||
|
||||
## JSON DSL — компактный формат
|
||||
|
||||
СКД описываются в JSON с двумя уровнями детализации для каждой секции:
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "decimal — все формы квалификаторов (bare, (N), (N,M), nonneg, синонимы)",
|
||||
"params": { "outputPath": "Template.xml" },
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ 1 КАК Поле1",
|
||||
"fields": [
|
||||
"ДеньгиПоУмолчанию: decimal",
|
||||
"ЦелоеОдинАргумент: decimal(10)",
|
||||
"ОбычныеДеньги: decimal(10,2)",
|
||||
"Положительные: decimal(10,2,nonneg)",
|
||||
"ЦелоеПоложительное: decimal(10,nonneg)",
|
||||
"ЧислоСинонимБезАргументов: число",
|
||||
"ЧислоСинонимЦелое: число(8)",
|
||||
"ЧислоСинонимКоличество: число(15,3)"
|
||||
]
|
||||
}],
|
||||
"parameters": [
|
||||
"ПараметрДеньги: decimal",
|
||||
"ПараметрЦелое: decimal(10)",
|
||||
"ПараметрКоличество: decimal(15,3,nonneg)"
|
||||
]
|
||||
},
|
||||
"validatePath": "Template.xml",
|
||||
"expect": {
|
||||
"files": ["Template.xml"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Параметры с пустыми значениями (все типы, разные sentinel-формы)",
|
||||
"params": { "outputPath": "Template.xml" },
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ 1 КАК Поле1",
|
||||
"fields": ["Поле1: число(1,0)"]
|
||||
}],
|
||||
"parameters": [
|
||||
"Параметр1",
|
||||
"Параметр2: string =",
|
||||
"ПараметрСписок: EnumRef.СтатусТеста @valueList = _",
|
||||
"ПараметрСсылка: CatalogRef.ПлоскийПростой",
|
||||
"ПараметрДата: date = null",
|
||||
{ "name": "ПараметрЧисло", "type": "decimal", "value": null },
|
||||
"ПараметрБулево: boolean = ",
|
||||
"ПараметрСтандартныйПериод: StandardPeriod = _",
|
||||
{ "name": "ПараметрТипНеЗадан", "value": null },
|
||||
"ПараметрСписокСтрок: string @valueList",
|
||||
"ПараметрВремяСЗначением: time = 0001-01-01T12:30:00",
|
||||
"ПараметрВремяПусто: time",
|
||||
"ПараметрСтрокаФиксСЗначением: string(10,fix) = АБВ",
|
||||
"ПараметрСтрокаФиксПусто: string(10,fix)",
|
||||
{ "name": "СоставнойТип", "type": ["string(10,fix)", "CatalogRef.ПлоскийПростой"], "value": null }
|
||||
]
|
||||
},
|
||||
"validatePath": "Template.xml",
|
||||
"expect": {
|
||||
"files": ["Template.xml"]
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -17,7 +10,12 @@
|
||||
<dataPath>Поле</dataPath>
|
||||
<field>Поле</field>
|
||||
<valueType>
|
||||
<v8:Type>decimal</v8:Type>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
@@ -30,9 +28,8 @@
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -47,7 +44,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -65,7 +62,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -77,6 +74,12 @@
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Флаг</name>
|
||||
@@ -84,6 +87,7 @@
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">true</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Сумма</name>
|
||||
@@ -96,6 +100,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Ставка</name>
|
||||
@@ -108,6 +113,7 @@
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">13.5</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Метка</name>
|
||||
@@ -119,6 +125,7 @@
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string">ТестовоеЗначение</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПустаяСтрока</name>
|
||||
@@ -129,6 +136,8 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Валюта</name>
|
||||
@@ -136,6 +145,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Валюты</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Справочник.Валюты.EmptyRef</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
@@ -151,8 +161,6 @@
|
||||
<dcscor:parameter>Период</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>UUID-001</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
@@ -199,12 +207,6 @@
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -93,6 +86,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.Округления</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
@@ -133,6 +127,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Счет</dcsset:field>
|
||||
</dcsset:item>
|
||||
@@ -181,9 +176,6 @@
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemFolder">
|
||||
|
||||
+2
-8
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -58,6 +51,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -91,6 +84,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -86,6 +79,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Основной</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ДеньгиПоУмолчанию</dataPath>
|
||||
<field>ДеньгиПоУмолчанию</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЦелоеОдинАргумент</dataPath>
|
||||
<field>ЦелоеОдинАргумент</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ОбычныеДеньги</dataPath>
|
||||
<field>ОбычныеДеньги</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Положительные</dataPath>
|
||||
<field>Положительные</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЦелоеПоложительное</dataPath>
|
||||
<field>ЦелоеПоложительное</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЧислоСинонимБезАргументов</dataPath>
|
||||
<field>ЧислоСинонимБезАргументов</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЧислоСинонимЦелое</dataPath>
|
||||
<field>ЧислоСинонимЦелое</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>8</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЧислоСинонимКоличество</dataPath>
|
||||
<field>ЧислоСинонимКоличество</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>3</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Поле1</query>
|
||||
</dataSet>
|
||||
<parameter>
|
||||
<name>ПараметрДеньги</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрЦелое</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрКоличество</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>3</v8:FractionDigits>
|
||||
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,199 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Основной</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле1</dataPath>
|
||||
<field>Поле1</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>1</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Поле1</query>
|
||||
</dataSet>
|
||||
<parameter>
|
||||
<name>Параметр1</name>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Параметр2</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСписок</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.СтатусТеста</v8:Type>
|
||||
</valueType>
|
||||
<useRestriction>false</useRestriction>
|
||||
<valueListAllowed>true</valueListAllowed>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСсылка</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ПлоскийПростой</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрДата</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрЧисло</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">0</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрБулево</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">false</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСтандартныйПериод</name>
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрТипНеЗадан</name>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСписокСтрок</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<useRestriction>false</useRestriction>
|
||||
<valueListAllowed>true</valueListAllowed>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрВремяСЗначением</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Time</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T12:30:00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрВремяПусто</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Time</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСтрокаФиксСЗначением</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>10</v8:Length>
|
||||
<v8:AllowedLength>Fixed</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string">АБВ</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПараметрСтрокаФиксПусто</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>10</v8:Length>
|
||||
<v8:AllowedLength>Fixed</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СоставнойТип</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>10</v8:Length>
|
||||
<v8:AllowedLength>Fixed</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ПлоскийПростой</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
+4
-10
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -32,11 +25,11 @@
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>МинимальнаяШирина</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:string">100</dcscor:value>
|
||||
<dcscor:value xsi:type="xs:decimal">100</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:string">true</dcscor:value>
|
||||
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
|
||||
</dcscor:item>
|
||||
</appearance>
|
||||
</field>
|
||||
@@ -73,6 +66,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -58,6 +51,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -91,6 +84,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -65,9 +58,8 @@
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -82,7 +74,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -100,7 +92,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -126,6 +118,7 @@
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:filter>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
@@ -140,8 +133,6 @@
|
||||
<dcscor:parameter>Период</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>UUID-002</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
@@ -156,19 +147,7 @@
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -90,6 +83,7 @@
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
@@ -101,12 +95,6 @@
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
@@ -117,19 +105,7 @@
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -30,6 +23,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -71,6 +64,12 @@
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
@@ -92,6 +91,7 @@
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Маржа</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -69,6 +62,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -17,14 +10,24 @@
|
||||
<dataPath>Поле1</dataPath>
|
||||
<field>Поле1</field>
|
||||
<valueType>
|
||||
<v8:Type>decimal</v8:Type>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле2</dataPath>
|
||||
<field>Поле2</field>
|
||||
<valueType>
|
||||
<v8:Type>decimal</v8:Type>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
@@ -94,12 +97,6 @@
|
||||
</dcsset:item>
|
||||
</dcsset:conditionalAppearance>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
|
||||
+3
-8
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -40,6 +33,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.Округления</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
@@ -69,6 +63,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -26,6 +19,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -68,9 +61,6 @@
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Организация</dcsset:field>
|
||||
@@ -89,9 +79,6 @@
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Номенклатура</dcsset:field>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -58,6 +51,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -60,9 +53,8 @@
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -77,7 +69,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -95,7 +87,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -124,6 +116,7 @@
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:filter>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
@@ -147,19 +140,11 @@
|
||||
<dcscor:parameter>Период</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>UUID-002</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema"
|
||||
xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common"
|
||||
xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
|
||||
xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
|
||||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
@@ -57,9 +50,8 @@
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
@@ -74,7 +66,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -92,7 +84,7 @@
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
@@ -104,6 +96,8 @@
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
@@ -115,6 +109,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"script": "skd-decompile/scripts/skd-decompile",
|
||||
"setup": "none",
|
||||
"args": [
|
||||
{ "flag": "-TemplatePath", "from": "workPath", "field": "templatePath" },
|
||||
{ "flag": "-OutputPath", "from": "outputPath" }
|
||||
],
|
||||
"snapshot": {
|
||||
"root": "workDir",
|
||||
"normalizeUuids": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "Appearance с multilang значением (Формат={ru,en}) — round-trip",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": [
|
||||
{
|
||||
"field": "ДатаДокумента",
|
||||
"type": "date",
|
||||
"appearance": {
|
||||
"Формат": { "ru": "ДЛФ=D", "en": "DLF=D" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}],
|
||||
"settingsVariants": [
|
||||
{
|
||||
"name": "Основной",
|
||||
"settings": {
|
||||
"conditionalAppearance": [
|
||||
{
|
||||
"selection": ["ДатаДокумента"],
|
||||
"appearance": {
|
||||
"Формат": { "ru": "ДЛФ=DT", "en": "DLF=DT" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"name": "calculatedFields, totalFields, parameters с autoDates/valueList/hidden/availableValues",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура",
|
||||
"fields": ["Цена: decimal(15,2)", "Закупка: decimal(15,2)"]
|
||||
}],
|
||||
"calculatedFields": [
|
||||
"Маржа = Цена - Закупка",
|
||||
"Наценка [Наценка, %]: decimal(10,2) = Маржа / Закупка * 100",
|
||||
"Служебное: string = \"\" #noField #noFilter #noGroup #noOrder"
|
||||
],
|
||||
"totalFields": [
|
||||
"Цена: Сумма",
|
||||
"Маржа: Сумма(Цена - Закупка)"
|
||||
],
|
||||
"parameters": [
|
||||
"Период [Отчетный период]: StandardPeriod = LastMonth @autoDates",
|
||||
"Организация: CatalogRef.Организации",
|
||||
"СписокДокументов: CatalogRef.Документы @valueList",
|
||||
"СлужебныйПар: string @hidden",
|
||||
{
|
||||
"name": "ПорядокОкругления",
|
||||
"type": "EnumRef.Округления",
|
||||
"value": "Перечисление.Округления.Окр1",
|
||||
"availableValues": [
|
||||
{"value": "Перечисление.Округления.Окр1_00", "presentation": "руб. коп"},
|
||||
{"value": "Перечисление.Округления.Окр1", "presentation": "руб."}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "DataSetFieldFolder (поле-папка) + GroupItemAuto в structure",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": [
|
||||
"Период: date",
|
||||
{ "field": "СальдоНаНачалоПериода", "folder": true, "title": "Сальдо на начало периода" },
|
||||
"СальдоНаНачалоПериода.Дт: decimal(15,2)",
|
||||
"СальдоНаНачалоПериода.Кт: decimal(15,2)"
|
||||
]
|
||||
}],
|
||||
"settingsVariants": [
|
||||
{
|
||||
"name": "Основной",
|
||||
"settings": {
|
||||
"structure": [
|
||||
{
|
||||
"groupFields": ["Auto"],
|
||||
"children": [
|
||||
{ "groupFields": ["Период"] }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "Многострочный query → внешний .sql файл (@<name>.sql)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "ПродажиПоПериодам",
|
||||
"query": "ВЫБРАТЬ\n\tНоменклатура,\n\tКоличество,\n\tСумма\nИЗ\n\tРегистрНакопления.Продажи\nГДЕ\n\tПериод МЕЖДУ &НачалоПериода И &КонецПериода",
|
||||
"fields": [
|
||||
"Номенклатура: CatalogRef.Номенклатура @dimension",
|
||||
"Количество: decimal(15,3)",
|
||||
"Сумма: decimal(15,2)"
|
||||
]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "DataSetQuery + DataSetObject + DataSetUnion в одной схеме",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [
|
||||
{
|
||||
"name": "Запрос1",
|
||||
"query": "ВЫБРАТЬ Номенклатура.Наименование КАК Имя ИЗ Справочник.Номенклатура КАК Номенклатура",
|
||||
"fields": ["Имя: string"]
|
||||
},
|
||||
{
|
||||
"name": "Журнал",
|
||||
"objectName": "ЖурналОшибок",
|
||||
"fields": ["Сообщение: string(150)", "Уровень: string"]
|
||||
},
|
||||
{
|
||||
"name": "Объединение",
|
||||
"items": [
|
||||
{ "name": "Часть1", "query": "ВЫБРАТЬ 1 КАК Поле", "fields": ["Поле: decimal(10,2)"] },
|
||||
{ "name": "Часть2", "query": "ВЫБРАТЬ 2 КАК Поле", "fields": ["Поле: decimal(10,2)"] }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"name": "Поле: inputParameters (ChoiceParameters, ChoiceParameterLinks, simple typed)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": [
|
||||
{
|
||||
"field": "СегментНоменклатуры",
|
||||
"type": "CatalogRef.СегментыНоменклатуры",
|
||||
"inputParameters": [
|
||||
{ "parameter": "ПараметрыВыбора", "choiceParameters": [
|
||||
{ "name": "Отбор.СпособФормирования", "values": [
|
||||
"Перечисление.СпособыФормированияСегментов.ФормироватьВручную",
|
||||
"Перечисление.СпособыФормированияСегментов.ПериодическиОбновлять"
|
||||
]}
|
||||
]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"field": "Сотрудник",
|
||||
"type": "CatalogRef.Сотрудники",
|
||||
"inputParameters": [
|
||||
{ "parameter": "СвязиПараметровВыбора", "choiceParameterLinks": [
|
||||
{ "name": "Отбор.ТекущаяОрганизация", "value": "Организация", "mode": "Clear" },
|
||||
{ "name": "Отбор.ТекущееПодразделение", "value": "Подразделение", "mode": "Clear" }
|
||||
]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"field": "ПростоЕА",
|
||||
"type": "CatalogRef.Сотрудники",
|
||||
"inputParameters": [
|
||||
{ "parameter": "ПараметрыВыбора", "choiceParameters": [] },
|
||||
{ "parameter": "БыстрыйВыбор", "use": false, "value": true }
|
||||
]
|
||||
}
|
||||
]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "Поле: orderExpression (сортировка по выражению)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.ВидыРасчета",
|
||||
"fields": [
|
||||
{ "field": "ВидРасчета", "type": "CatalogRef.ВидыРасчета", "orderExpression": { "expression": "ЕстьNULL(ВидРасчета.Порядок, 10000)", "orderType": "Asc", "autoOrder": false } }
|
||||
]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "Поле: shorthand-роль с @-флагами и KV (balanceGroupName/balanceType)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ РегистрНакопления.Остатки",
|
||||
"fields": [
|
||||
"Период: date @period",
|
||||
"Контрагент: CatalogRef.Контрагенты @dimension @required",
|
||||
"СуммаНач: decimal(15,2) @balance balanceGroupName=Сумма balanceType=OpeningBalance",
|
||||
"СуммаКон: decimal(15,2) @balance balanceGroupName=Сумма balanceType=ClosingBalance"
|
||||
]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "Поля: типы, роли, restrictions, multilang, appearance, composite, presentation",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура",
|
||||
"fields": [
|
||||
"Наименование",
|
||||
"Количество: decimal(15,2)",
|
||||
"Организация: CatalogRef.Организации @dimension",
|
||||
"Служебное: string #noField #noFilter",
|
||||
"СтрокаФикс: string(50,fix)",
|
||||
"Положительное: decimal(10,nonneg)",
|
||||
"Дата1: date",
|
||||
{ "field": "СПояснением", "title": "Поле с пояснением", "type": "decimal(15,2)", "appearance": { "ГоризонтальноеПоложение": "Right", "МинимальнаяШирина": "80" } },
|
||||
{ "field": "Многоязычное", "title": { "ru": "Русский", "en": "English" }, "type": "string" },
|
||||
{ "field": "СоставноеПоле", "type": ["CatalogRef.Организации", "CatalogRef.Валюты"] },
|
||||
{ "field": "СВыражениемПредставления", "type": "CatalogRef.Номенклатура", "presentationExpression": "Представление(СВыражениемПредставления)" }
|
||||
]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "Минимальный СКД с одним DataSetQuery",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "НаборДанных1",
|
||||
"query": "ВЫБРАТЬ Номенклатура.Наименование КАК Наименование ИЗ Справочник.Номенклатура КАК Номенклатура",
|
||||
"fields": ["Наименование"]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ДатаДокумента</dataPath>
|
||||
<field>ДатаДокумента</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Формат</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>ДЛФ=D</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>en</v8:lang>
|
||||
<v8:content>DLF=D</v8:content>
|
||||
</v8:item>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</appearance>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Сотрудники</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:conditionalAppearance>
|
||||
<dcsset:item>
|
||||
<dcsset:selection>
|
||||
<dcsset:item>
|
||||
<dcsset:field>ДатаДокумента</dcsset:field>
|
||||
</dcsset:item>
|
||||
</dcsset:selection>
|
||||
<dcsset:filter/>
|
||||
<dcsset:appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Формат</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>ДЛФ=DT</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>en</v8:lang>
|
||||
<v8:content>DLF=DT</v8:content>
|
||||
</v8:item>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:appearance>
|
||||
</dcsset:item>
|
||||
</dcsset:conditionalAppearance>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники", "fields": [{ "field": "ДатаДокумента", "type": "date", "appearance": { "Формат": { "ru": "ДЛФ=D", "en": "DLF=D" } } }] }], "settingsVariants": [{ "name": "Основной", "settings": { "conditionalAppearance": [{ "selection": ["ДатаДокумента"], "appearance": { "Формат": { "ru": "ДЛФ=DT", "en": "DLF=DT" } } }] } }] }
|
||||
@@ -0,0 +1,214 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Цена</dataPath>
|
||||
<field>Цена</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Закупка</dataPath>
|
||||
<field>Закупка</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Номенклатура</query>
|
||||
</dataSet>
|
||||
<calculatedField>
|
||||
<dataPath>Маржа</dataPath>
|
||||
<expression>Цена - Закупка</expression>
|
||||
</calculatedField>
|
||||
<calculatedField>
|
||||
<dataPath>Наценка</dataPath>
|
||||
<expression>Маржа / Закупка * 100</expression>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Наценка, %</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</calculatedField>
|
||||
<calculatedField>
|
||||
<dataPath>Служебное</dataPath>
|
||||
<expression>""</expression>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<useRestriction>
|
||||
<field>true</field>
|
||||
<condition>true</condition>
|
||||
<group>true</group>
|
||||
<order>true</order>
|
||||
</useRestriction>
|
||||
</calculatedField>
|
||||
<totalField>
|
||||
<dataPath>Цена</dataPath>
|
||||
<expression>Сумма(Цена)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>Маржа</dataPath>
|
||||
<expression>Сумма(Цена - Закупка)</expression>
|
||||
</totalField>
|
||||
<parameter>
|
||||
<name>Период</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Отчетный период</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>НачалоПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Начало периода</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&Период.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>КонецПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Конец периода</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&Период.ДатаОкончания</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Организация</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СписокДокументов</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Документы</v8:Type>
|
||||
</valueType>
|
||||
<useRestriction>false</useRestriction>
|
||||
<valueListAllowed>true</valueListAllowed>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СлужебныйПар</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>true</useRestriction>
|
||||
<availableAsField>false</availableAsField>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ПорядокОкругления</name>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:EnumRef.Округления</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1_00</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>руб. коп</v8:content>
|
||||
</v8:item>
|
||||
</presentation>
|
||||
</availableValue>
|
||||
<availableValue>
|
||||
<value xsi:type="dcscor:DesignTimeValue">Перечисление.Округления.Окр1</value>
|
||||
<presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>руб.</v8:content>
|
||||
</v8:item>
|
||||
</presentation>
|
||||
</availableValue>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура", "fields": ["Цена: decimal(15,2)", "Закупка: decimal(15,2)"] }],
|
||||
"calculatedFields": ["Маржа = Цена - Закупка", "Наценка [Наценка, %]: decimal(10,2) = Маржа / Закупка * 100", "Служебное: string = \"\" #noField #noFilter #noGroup #noOrder"],
|
||||
"totalFields": ["Цена: Сумма", "Маржа: Сумма(Цена - Закупка)"],
|
||||
"parameters": [
|
||||
"Период [Отчетный период]: StandardPeriod = LastMonth @autoDates",
|
||||
"Организация: CatalogRef.Организации",
|
||||
"СписокДокументов: CatalogRef.Документы @valueList",
|
||||
"СлужебныйПар: string @hidden",
|
||||
{ "name": "ПорядокОкругления", "type": "EnumRef.Округления", "value": "Перечисление.Округления.Окр1", "availableValues": [{ "value": "Перечисление.Округления.Окр1_00", "presentation": "руб. коп" }, { "value": "Перечисление.Округления.Окр1", "presentation": "руб." }] }
|
||||
],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Период</dataPath>
|
||||
<field>Период</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldFolder">
|
||||
<dataPath>СальдоНаНачалоПериода</dataPath>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Сальдо на начало периода</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СальдоНаНачалоПериода.Дт</dataPath>
|
||||
<field>СальдоНаНачалоПериода.Дт</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СальдоНаНачалоПериода.Кт</dataPath>
|
||||
<field>СальдоНаНачалоПериода.Кт</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Сотрудники</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemAuto"/>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Период</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
+1
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники", "fields": ["Период: date", { "field": "СальдоНаНачалоПериода", "folder": true, "title": "Сальдо на начало периода" }, "СальдоНаНачалоПериода.Дт: decimal(15,2)", "СальдоНаНачалоПериода.Кт: decimal(15,2)"] }], "settingsVariants": [{ "name": "Основной", "settings": { "structure": "Auto > Период" } }] }
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>ПродажиПоПериодам</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Номенклатура</dataPath>
|
||||
<field>Номенклатура</field>
|
||||
<role>
|
||||
<dcscom:dimension>true</dcscom:dimension>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Номенклатура</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Количество</dataPath>
|
||||
<field>Количество</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>3</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Сумма</dataPath>
|
||||
<field>Сумма</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ
|
||||
Номенклатура,
|
||||
Количество,
|
||||
Сумма
|
||||
ИЗ
|
||||
РегистрНакопления.Продажи
|
||||
ГДЕ
|
||||
Период МЕЖДУ &НачалоПериода И &КонецПериода</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
ВЫБРАТЬ
|
||||
Номенклатура,
|
||||
Количество,
|
||||
Сумма
|
||||
ИЗ
|
||||
РегистрНакопления.Продажи
|
||||
ГДЕ
|
||||
Период МЕЖДУ &НачалоПериода И &КонецПериода
|
||||
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "ПродажиПоПериодам", "query": "@decompiled-ПродажиПоПериодам.sql", "fields": ["Номенклатура: CatalogRef.Номенклатура @dimension", "Количество: decimal(15,3)", "Сумма: decimal(15,2)"] }], "settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }] }
|
||||
@@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Запрос1</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Имя</dataPath>
|
||||
<field>Имя</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ Номенклатура.Наименование КАК Имя ИЗ Справочник.Номенклатура КАК Номенклатура</query>
|
||||
</dataSet>
|
||||
<dataSet xsi:type="DataSetObject">
|
||||
<name>Журнал</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Сообщение</dataPath>
|
||||
<field>Сообщение</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>150</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Уровень</dataPath>
|
||||
<field>Уровень</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<objectName>ЖурналОшибок</objectName>
|
||||
</dataSet>
|
||||
<dataSet xsi:type="DataSetUnion">
|
||||
<name>Объединение</name>
|
||||
<item xsi:type="DataSetQuery">
|
||||
<name>Часть1</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле</dataPath>
|
||||
<field>Поле</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 1 КАК Поле</query>
|
||||
</item>
|
||||
<item xsi:type="DataSetQuery">
|
||||
<name>Часть2</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле</dataPath>
|
||||
<field>Поле</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ 2 КАК Поле</query>
|
||||
</item>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"dataSets": [
|
||||
{ "name": "Запрос1", "query": "ВЫБРАТЬ Номенклатура.Наименование КАК Имя ИЗ Справочник.Номенклатура КАК Номенклатура", "fields": ["Имя: string"] },
|
||||
{ "name": "Журнал", "objectName": "ЖурналОшибок", "fields": ["Сообщение: string(150)", "Уровень: string"] },
|
||||
{ "name": "Объединение", "items": [{ "name": "Часть1", "query": "ВЫБРАТЬ 1 КАК Поле", "fields": ["Поле: decimal(10,2)"] }, { "name": "Часть2", "query": "ВЫБРАТЬ 2 КАК Поле", "fields": ["Поле: decimal(10,2)"] }] }
|
||||
],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СегментНоменклатуры</dataPath>
|
||||
<field>СегментНоменклатуры</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.СегментыНоменклатуры</v8:Type>
|
||||
</valueType>
|
||||
<inputParameters>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ПараметрыВыбора</dcscor:parameter>
|
||||
<dcscor:value xsi:type="dcscor:ChoiceParameters">
|
||||
<dcscor:item>
|
||||
<dcscor:choiceParameter>Отбор.СпособФормирования</dcscor:choiceParameter>
|
||||
<dcscor:value xsi:type="dcscor:DesignTimeValue">Перечисление.СпособыФормированияСегментов.ФормироватьВручную</dcscor:value>
|
||||
<dcscor:value xsi:type="dcscor:DesignTimeValue">Перечисление.СпособыФормированияСегментов.ПериодическиОбновлять</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</inputParameters>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Сотрудник</dataPath>
|
||||
<field>Сотрудник</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Сотрудники</v8:Type>
|
||||
</valueType>
|
||||
<inputParameters>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СвязиПараметровВыбора</dcscor:parameter>
|
||||
<dcscor:value xsi:type="dcscor:ChoiceParameterLinks">
|
||||
<dcscor:item>
|
||||
<dcscor:choiceParameter>Отбор.ТекущаяОрганизация</dcscor:choiceParameter>
|
||||
<dcscor:value>Организация</dcscor:value>
|
||||
<dcscor:mode xmlns:d8p1="http://v8.1c.ru/8.1/data/enterprise" xsi:type="d8p1:LinkedValueChangeMode">Clear</dcscor:mode>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:choiceParameter>Отбор.ТекущееПодразделение</dcscor:choiceParameter>
|
||||
<dcscor:value>Подразделение</dcscor:value>
|
||||
<dcscor:mode xmlns:d8p1="http://v8.1c.ru/8.1/data/enterprise" xsi:type="d8p1:LinkedValueChangeMode">Clear</dcscor:mode>
|
||||
</dcscor:item>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</inputParameters>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ПростоЕА</dataPath>
|
||||
<field>ПростоЕА</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Сотрудники</v8:Type>
|
||||
</valueType>
|
||||
<inputParameters>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ПараметрыВыбора</dcscor:parameter>
|
||||
<dcscor:value xsi:type="dcscor:ChoiceParameters"/>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:use>false</dcscor:use>
|
||||
<dcscor:parameter>БыстрыйВыбор</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
|
||||
</dcscor:item>
|
||||
</inputParameters>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Сотрудники</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"dataSets": [
|
||||
{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": [
|
||||
{ "field": "СегментНоменклатуры", "type": "CatalogRef.СегментыНоменклатуры", "inputParameters": [{ "parameter": "ПараметрыВыбора", "choiceParameters": [{ "name": "Отбор.СпособФормирования", "values": ["Перечисление.СпособыФормированияСегментов.ФормироватьВручную", "Перечисление.СпособыФормированияСегментов.ПериодическиОбновлять"] }] }] },
|
||||
{ "field": "Сотрудник", "type": "CatalogRef.Сотрудники", "inputParameters": [{ "parameter": "СвязиПараметровВыбора", "choiceParameterLinks": [{ "name": "Отбор.ТекущаяОрганизация", "value": "Организация", "mode": "Clear" }, { "name": "Отбор.ТекущееПодразделение", "value": "Подразделение", "mode": "Clear" }] }] },
|
||||
{ "field": "ПростоЕА", "type": "CatalogRef.Сотрудники", "inputParameters": [{ "parameter": "ПараметрыВыбора", "choiceParameters": [] }, { "parameter": "БыстрыйВыбор", "use": false, "value": true }] }
|
||||
]
|
||||
}
|
||||
],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ВидРасчета</dataPath>
|
||||
<field>ВидРасчета</field>
|
||||
<orderExpression>
|
||||
<dcscom:expression>ЕстьNULL(ВидРасчета.Порядок, 10000)</dcscom:expression>
|
||||
<dcscom:orderType>Asc</dcscom:orderType>
|
||||
<dcscom:autoOrder>false</dcscom:autoOrder>
|
||||
</orderExpression>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ВидыРасчета</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.ВидыРасчета</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.ВидыРасчета", "fields": [{ "field": "ВидРасчета", "type": "CatalogRef.ВидыРасчета", "orderExpression": { "expression": "ЕстьNULL(ВидРасчета.Порядок, 10000)", "orderType": "Asc", "autoOrder": false } }] }],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Период</dataPath>
|
||||
<field>Период</field>
|
||||
<role>
|
||||
<dcscom:periodNumber>1</dcscom:periodNumber>
|
||||
<dcscom:periodType>Main</dcscom:periodType>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Контрагент</dataPath>
|
||||
<field>Контрагент</field>
|
||||
<role>
|
||||
<dcscom:dimension>true</dcscom:dimension>
|
||||
<dcscom:required>true</dcscom:required>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Контрагенты</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СуммаНач</dataPath>
|
||||
<field>СуммаНач</field>
|
||||
<role>
|
||||
<dcscom:balance>true</dcscom:balance>
|
||||
<dcscom:balanceGroupName>Сумма</dcscom:balanceGroupName>
|
||||
<dcscom:balanceType>OpeningBalance</dcscom:balanceType>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СуммаКон</dataPath>
|
||||
<field>СуммаКон</field>
|
||||
<role>
|
||||
<dcscom:balance>true</dcscom:balance>
|
||||
<dcscom:balanceGroupName>Сумма</dcscom:balanceGroupName>
|
||||
<dcscom:balanceType>ClosingBalance</dcscom:balanceType>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ РегистрНакопления.Остатки</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ РегистрНакопления.Остатки", "fields": ["Период: date @period", "Контрагент: CatalogRef.Контрагенты @dimension @required", "СуммаНач: decimal(15,2) @balance balanceGroupName=Сумма balanceType=OpeningBalance", "СуммаКон: decimal(15,2) @balance balanceGroupName=Сумма balanceType=ClosingBalance"] }],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Наименование</dataPath>
|
||||
<field>Наименование</field>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Количество</dataPath>
|
||||
<field>Количество</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Организация</dataPath>
|
||||
<field>Организация</field>
|
||||
<role>
|
||||
<dcscom:dimension>true</dcscom:dimension>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Служебное</dataPath>
|
||||
<field>Служебное</field>
|
||||
<useRestriction>
|
||||
<field>true</field>
|
||||
<condition>true</condition>
|
||||
</useRestriction>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СтрокаФикс</dataPath>
|
||||
<field>СтрокаФикс</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>50</v8:Length>
|
||||
<v8:AllowedLength>Fixed</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Положительное</dataPath>
|
||||
<field>Положительное</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>10</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Дата1</dataPath>
|
||||
<field>Дата1</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СПояснением</dataPath>
|
||||
<field>СПояснением</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Поле с пояснением</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>ГоризонтальноеПоложение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:HorizontalAlign">Right</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>МинимальнаяШирина</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:decimal">80</dcscor:value>
|
||||
</dcscor:item>
|
||||
</appearance>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Многоязычное</dataPath>
|
||||
<field>Многоязычное</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Русский</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>en</v8:lang>
|
||||
<v8:content>English</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СоставноеПоле</dataPath>
|
||||
<field>СоставноеПоле</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Валюты</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>СВыражениемПредставления</dataPath>
|
||||
<field>СВыражениемПредставления</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Номенклатура</v8:Type>
|
||||
</valueType>
|
||||
<presentationExpression>Представление(СВыражениемПредставления)</presentationExpression>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Номенклатура</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"dataSets": [
|
||||
{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура",
|
||||
"fields": [
|
||||
"Наименование",
|
||||
"Количество: decimal(15,2)",
|
||||
"Организация: CatalogRef.Организации @dimension",
|
||||
"Служебное: string #noField #noFilter",
|
||||
"СтрокаФикс: string(50,fix)",
|
||||
"Положительное: decimal(10,nonneg)",
|
||||
"Дата1: date",
|
||||
{ "field": "СПояснением", "title": "Поле с пояснением", "type": "decimal(15,2)", "appearance": { "ГоризонтальноеПоложение": "Right", "МинимальнаяШирина": "80" } },
|
||||
{ "field": "Многоязычное", "title": { "ru": "Русский", "en": "English" }, "type": "string" },
|
||||
{ "field": "СоставноеПоле", "type": ["CatalogRef.Организации", "CatalogRef.Валюты"] },
|
||||
{ "field": "СВыражениемПредставления", "type": "CatalogRef.Номенклатура", "presentationExpression": "Представление(СВыражениемПредставления)" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>НаборДанных1</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Наименование</dataPath>
|
||||
<field>Наименование</field>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ Номенклатура.Наименование КАК Наименование ИЗ Справочник.Номенклатура КАК Номенклатура</query>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "НаборДанных1", "query": "ВЫБРАТЬ Номенклатура.Наименование КАК Наименование ИЗ Справочник.Номенклатура КАК Номенклатура", "fields": ["Наименование"] }], "settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }] }
|
||||
@@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetUnion">
|
||||
<name>DSОбъединение</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Период</dataPath>
|
||||
<field>Период</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ВидРасчета</dataPath>
|
||||
<field>ВидРасчета</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ВидыРасчета</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Сумма</dataPath>
|
||||
<field>Сумма</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Подразделение</dataPath>
|
||||
<field>Подразделение</field>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Подразделения</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<item xsi:type="DataSetObject">
|
||||
<name>Часть1</name>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<objectName>ДанныеЧасть1</objectName>
|
||||
</item>
|
||||
<item xsi:type="DataSetObject">
|
||||
<name>Часть2</name>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<objectName>ДанныеЧасть2</objectName>
|
||||
</item>
|
||||
</dataSet>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Период</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
<dcsset:lwsTitle>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Итого</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:lwsTitle>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemFolder">
|
||||
<dcsset:lwsTitle>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Группа итогов</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:lwsTitle>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ВидРасчета</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
<dcsset:lwsTitle>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Сумма с расшифровкой</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:lwsTitle>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemFolder">
|
||||
<dcsset:lwsTitle>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Подгруппа</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:lwsTitle>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Подразделение</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:placement>Auto</dcsset:placement>
|
||||
</dcsset:item>
|
||||
<dcsset:placement>Auto</dcsset:placement>
|
||||
</dcsset:item>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:name>Группа1</dcsset:name>
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Период</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>Day</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Подразделение</dcsset:field>
|
||||
<dcsset:groupType>Hierarchy</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemNestedObject">
|
||||
<dcsset:objectID>ДанныеЧасть1</dcsset:objectID>
|
||||
<dcsset:settings>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ВидРасчета</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
</dcsset:item>
|
||||
</dcsset:selection>
|
||||
</dcsset:settings>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"dataSets": [{ "name": "DSОбъединение", "items": [{ "name": "Часть1", "objectName": "ДанныеЧасть1" }, { "name": "Часть2", "objectName": "ДанныеЧасть2" }], "fields": ["Период: date", "ВидРасчета: CatalogRef.ВидыРасчета", "Сумма: decimal(15,2)", "Подразделение: CatalogRef.Подразделения"] }],
|
||||
"settingsVariants": [
|
||||
{
|
||||
"name": "Основной",
|
||||
"settings": {
|
||||
"selection": ["Период", { "field": "Сумма", "title": "Итого" }, { "folder": "Группа итогов", "items": ["ВидРасчета", { "field": "Сумма", "title": "Сумма с расшифровкой" }, { "folder": "Подгруппа", "items": ["Подразделение"] }] }],
|
||||
"structure": [{ "name": "Группа1", "groupFields": [{ "field": "Период", "periodAdditionType": "Day" }, { "field": "Подразделение", "groupType": "Hierarchy" }], "children": [{ "type": "nestedObject", "objectID": "ДанныеЧасть1", "settings": { "selection": ["ВидРасчета", "Сумма"] } }] }]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле</dataPath>
|
||||
<field>Поле</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Сотрудники</query>
|
||||
</dataSet>
|
||||
<template>
|
||||
<name>Заголовок</name>
|
||||
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
|
||||
<dcsat:item xsi:type="dcsat:TableRow">
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>A</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportHeaderBackColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветГраницы</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportLineColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="0" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</dcscor:value>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Слева</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Сверху</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Справа</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Снизу</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Calibri" height="11" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ГоризонтальноеПоложение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:HorizontalAlign">Center</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ВертикальноеПоложение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:VerticalAlign">Center</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
</dcsat:item>
|
||||
</template>
|
||||
</template>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники", "fields": ["Поле: string"] }], "templates": [{ "name": "Заголовок", "style": "myHeader", "rows": [["A"]] }], "settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }] }
|
||||
@@ -0,0 +1 @@
|
||||
{ "myHeader": { "font": "Calibri", "fontSize": 11, "bold": false, "italic": false, "hAlign": "Center", "vAlign": "Center", "wrap": false, "bgColor": "style:ReportHeaderBackColor", "textColor": null, "borderColor": "style:ReportLineColor", "borders": true } }
|
||||
@@ -0,0 +1,222 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле</dataPath>
|
||||
<field>Поле</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Сотрудники</query>
|
||||
</dataSet>
|
||||
<template>
|
||||
<name>СмешанныйМакет</name>
|
||||
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
|
||||
<dcsat:item xsi:type="dcsat:TableRow">
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>A</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportGroup1BackColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветГраницы</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportLineColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="0" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</dcscor:value>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Слева</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Сверху</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Справа</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Снизу</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>B</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportHeaderBackColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветГраницы</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportLineColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="0" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</dcscor:value>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Слева</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Сверху</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Справа</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Снизу</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ГоризонтальноеПоложение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:HorizontalAlign">Center</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Размещение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="dcscor:DataCompositionTextPlacementType">Wrap</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>C</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportGroup1BackColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветГраницы</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportLineColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="0" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</dcscor:value>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Слева</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Сверху</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Справа</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Снизу</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
</dcsat:item>
|
||||
</template>
|
||||
</template>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники", "fields": ["Поле: string"] }], "templates": [{ "name": "СмешанныйМакет", "style": "data", "rows": [["A", { "value": "B", "style": "header" }, "C"]] }], "settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }] }
|
||||
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле1</dataPath>
|
||||
<field>Поле1</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Поле2</dataPath>
|
||||
<field>Поле2</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Сотрудники</query>
|
||||
</dataSet>
|
||||
<template>
|
||||
<name>БезСтиля</name>
|
||||
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
|
||||
<dcsat:item xsi:type="dcsat:TableRow">
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>A</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>МинимальнаяШирина</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:decimal">7</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>МаксимальнаяШирина</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:decimal">7</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>B</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>МинимальнаяШирина</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:decimal">7</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>МаксимальнаяШирина</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:decimal">7</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
</dcsat:item>
|
||||
</template>
|
||||
</template>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1 @@
|
||||
{ "dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники", "fields": ["Поле1: string", "Поле2: string"] }], "templates": [{ "name": "БезСтиля", "style": "none", "widths": ["7", "7"], "rows": [["A", "B"]] }], "settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }] }
|
||||
+1159
File diff suppressed because it is too large
Load Diff
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура", "fields": ["Имя: string", "Сумма: decimal(15,2)"] }],
|
||||
"templates": [
|
||||
{ "name": "Шапка", "style": "header", "widths": ["20", "30", "25", "25"], "rows": [["Имя", "Сумма", "Поступление", ">"], ["|", "|", "из произв.", "со сч.40"], ["К1", "К2", "К3", "К4"]] },
|
||||
{ "name": "Данные", "style": "data", "widths": ["20", "30", "25", "25"], "rows": [["{Имя}", "{Сумма}", "{Поступление}", "{СчетПрочее}"]], "parameters": [{ "name": "Имя", "expression": "Имя" }, { "name": "Сумма", "expression": "Сумма" }, { "name": "Поступление", "expression": "СуммаПоступления", "drilldown": "СуммаПоступления" }, { "name": "СчетПрочее", "expression": "СчетПрочее" }] }
|
||||
],
|
||||
"settingsVariants": [{ "name": "Основной", "settings": { "selection": ["Auto"], "structure": [{ "selection": ["Auto"], "order": ["Auto"] }] } }]
|
||||
}
|
||||
@@ -0,0 +1,389 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>Тест</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Организация</dataPath>
|
||||
<field>Организация</field>
|
||||
<role>
|
||||
<dcscom:dimension>true</dcscom:dimension>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Организации</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Номенклатура</dataPath>
|
||||
<field>Номенклатура</field>
|
||||
<role>
|
||||
<dcscom:dimension>true</dcscom:dimension>
|
||||
</role>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.Номенклатура</v8:Type>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Сумма</dataPath>
|
||||
<field>Сумма</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>2</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Количество</dataPath>
|
||||
<field>Количество</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>3</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Статус</dataPath>
|
||||
<field>Статус</field>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ * ИЗ Справочник.Номенклатура</query>
|
||||
</dataSet>
|
||||
<parameter>
|
||||
<name>Период</name>
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>НачалоПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Начало периода</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&Период.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>КонецПериода</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Конец периода</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&Период.ДатаОкончания</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Активные</name>
|
||||
<valueType>
|
||||
<v8:Type>xs:boolean</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="xs:boolean">true</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<template>
|
||||
<name>Шапка</name>
|
||||
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
|
||||
<dcsat:item xsi:type="dcsat:TableRow">
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Орг</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportHeaderBackColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветГраницы</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportLineColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="0" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</dcscor:value>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Слева</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Сверху</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Справа</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Снизу</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ГоризонтальноеПоложение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:HorizontalAlign">Center</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Размещение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="dcscor:DataCompositionTextPlacementType">Wrap</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
<dcsat:tableCell>
|
||||
<dcsat:item xsi:type="dcsat:Field">
|
||||
<dcsat:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Сум</v8:content>
|
||||
</v8:item>
|
||||
</dcsat:value>
|
||||
</dcsat:item>
|
||||
<dcsat:appearance>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportHeaderBackColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ЦветГраницы</dcscor:parameter>
|
||||
<dcscor:value xmlns:d8p1="http://v8.1c.ru/8.1/data/ui/style" xsi:type="v8ui:Color">d8p1:ReportLineColor</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="0" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">None</v8ui:style>
|
||||
</dcscor:value>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Слева</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Сверху</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Справа</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>СтильГраницы.Снизу</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Line" width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Шрифт</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>ГоризонтальноеПоложение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:HorizontalAlign">Center</dcscor:value>
|
||||
</dcscor:item>
|
||||
<dcscor:item>
|
||||
<dcscor:parameter>Размещение</dcscor:parameter>
|
||||
<dcscor:value xsi:type="dcscor:DataCompositionTextPlacementType">Wrap</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsat:appearance>
|
||||
</dcsat:tableCell>
|
||||
</dcsat:item>
|
||||
</template>
|
||||
</template>
|
||||
<groupHeaderTemplate>
|
||||
<groupName>ДанныеОтчета</groupName>
|
||||
<templateType>Header</templateType>
|
||||
<template>Шапка</template>
|
||||
</groupHeaderTemplate>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Основной вариант</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Организация</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemFolder">
|
||||
<dcsset:lwsTitle>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Объёмы</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:lwsTitle>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Количество</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:placement>Auto</dcsset:placement>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
<dcsset:filter>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
<dcsset:use>false</dcsset:use>
|
||||
<dcsset:left xsi:type="dcscor:Field">Организация</dcsset:left>
|
||||
<dcsset:comparisonType>Equal</dcsset:comparisonType>
|
||||
<dcsset:userSettingID>UUID-001</dcsset:userSettingID>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemGroup">
|
||||
<dcsset:groupType>OrGroup</dcsset:groupType>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
<dcsset:left xsi:type="dcscor:Field">Статус</dcsset:left>
|
||||
<dcsset:comparisonType>Equal</dcsset:comparisonType>
|
||||
<dcsset:right xsi:type="xs:string">Активен</dcsset:right>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
<dcsset:left xsi:type="dcscor:Field">Сумма</dcsset:left>
|
||||
<dcsset:comparisonType>Greater</dcsset:comparisonType>
|
||||
<dcsset:right xsi:type="xs:decimal">1000</dcsset:right>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:filter>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemField">
|
||||
<dcsset:field>Сумма</dcsset:field>
|
||||
<dcsset:orderType>Desc</dcsset:orderType>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:conditionalAppearance>
|
||||
<dcsset:item>
|
||||
<dcsset:selection/>
|
||||
<dcsset:filter>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
<dcsset:left xsi:type="dcscor:Field">Сумма</dcsset:left>
|
||||
<dcsset:comparisonType>Greater</dcsset:comparisonType>
|
||||
<dcsset:right xsi:type="xs:decimal">10000</dcsset:right>
|
||||
</dcsset:item>
|
||||
</dcsset:filter>
|
||||
<dcsset:appearance>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>ЦветТекста</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Color">style:НегативныйТекстЦвет</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:appearance>
|
||||
<dcsset:presentation xsi:type="xs:string">Большие суммы</dcsset:presentation>
|
||||
<dcsset:viewMode>Normal</dcsset:viewMode>
|
||||
<dcsset:userSettingID>UUID-002</dcsset:userSettingID>
|
||||
</dcsset:item>
|
||||
</dcsset:conditionalAppearance>
|
||||
<dcsset:outputParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Заголовок</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Сводка по организациям</v8:content>
|
||||
</v8:item>
|
||||
</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:outputParameters>
|
||||
<dcsset:dataParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Период</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">LastMonth</v8:variant>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>UUID-003</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Активные</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
|
||||
<dcsset:userSettingID>UUID-004</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Организация</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Номенклатура</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"dataSets": [{ "name": "Тест", "query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура", "fields": ["Организация: CatalogRef.Организации @dimension", "Номенклатура: CatalogRef.Номенклатура @dimension", "Сумма: decimal(15,2)", "Количество: decimal(15,3)", "Статус: string"] }],
|
||||
"parameters": ["Период: StandardPeriod = LastMonth @autoDates", "Активные: boolean = true"],
|
||||
"templates": [{ "name": "Шапка", "style": "header", "rows": [["Орг", "Сум"]] }],
|
||||
"groupTemplates": [{ "groupName": "ДанныеОтчета", "templateType": "GroupHeader", "template": "Шапка" }],
|
||||
"settingsVariants": [
|
||||
{
|
||||
"name": "Основной",
|
||||
"title": "Основной вариант",
|
||||
"settings": {
|
||||
"selection": ["Организация", { "folder": "Объёмы", "items": ["Сумма", "Количество"] }, "Auto"],
|
||||
"filter": ["Организация = _ @off @user", { "group": "Or", "items": ["Статус = Активен", "Сумма > 1000"] }],
|
||||
"order": ["Сумма desc", "Auto"],
|
||||
"conditionalAppearance": [{ "filter": ["Сумма > 10000"], "appearance": { "ЦветТекста": "style:НегативныйТекстЦвет" }, "presentation": "Большие суммы", "viewMode": "Normal", "userSettingID": "auto" }],
|
||||
"outputParameters": { "Заголовок": "Сводка по организациям" },
|
||||
"dataParameters": "auto",
|
||||
"structure": "Организация > Номенклатура > details"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"name": "Структура: nestedObject + selection с вложенными folder и field-with-title + groupItem object form",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [
|
||||
{
|
||||
"name": "DSОбъединение",
|
||||
"items": [
|
||||
{ "name": "Часть1", "objectName": "ДанныеЧасть1" },
|
||||
{ "name": "Часть2", "objectName": "ДанныеЧасть2" }
|
||||
],
|
||||
"fields": [
|
||||
"Период: date",
|
||||
"ВидРасчета: CatalogRef.ВидыРасчета",
|
||||
"Сумма: decimal(15,2)",
|
||||
"Подразделение: CatalogRef.Подразделения"
|
||||
]
|
||||
}
|
||||
],
|
||||
"settingsVariants": [
|
||||
{
|
||||
"name": "Основной",
|
||||
"settings": {
|
||||
"selection": [
|
||||
"Период",
|
||||
{ "field": "Сумма", "title": "Итого" },
|
||||
{
|
||||
"folder": "Группа итогов",
|
||||
"items": [
|
||||
"ВидРасчета",
|
||||
{ "field": "Сумма", "title": "Сумма с расшифровкой" },
|
||||
{
|
||||
"folder": "Подгруппа",
|
||||
"items": ["Подразделение"]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"structure": [
|
||||
{
|
||||
"name": "Группа1",
|
||||
"groupFields": [
|
||||
{ "field": "Период", "periodAdditionType": "Day" },
|
||||
{ "field": "Подразделение", "groupType": "Hierarchy" }
|
||||
],
|
||||
"children": [
|
||||
{ "type": "nestedObject", "objectID": "ДанныеЧасть1", "settings": {
|
||||
"selection": ["ВидРасчета", "Сумма"]
|
||||
}}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "Шаблон с custom стилем (Calibri 11) — переиспользование user preset из skd-styles.json",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "skd-styles.json",
|
||||
"content": {
|
||||
"myHeader": {
|
||||
"font": "Calibri",
|
||||
"fontSize": 11,
|
||||
"bold": false,
|
||||
"italic": false,
|
||||
"hAlign": "Center",
|
||||
"vAlign": "Center",
|
||||
"wrap": false,
|
||||
"bgColor": "style:ReportHeaderBackColor",
|
||||
"textColor": null,
|
||||
"borderColor": "style:ReportLineColor",
|
||||
"borders": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": ["Поле: string"]
|
||||
}],
|
||||
"templates": [
|
||||
{ "name": "Заголовок", "style": "myHeader", "rows": [["A"]] }
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "Шаблон с inline cell style (data + per-cell override)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": ["Поле: string"]
|
||||
}],
|
||||
"templates": [
|
||||
{
|
||||
"name": "СмешанныйМакет",
|
||||
"style": "data",
|
||||
"rows": [
|
||||
["A", { "value": "B", "style": "header" }, "C"]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "Шаблон без стилевых атрибутов (style=none) — только per-cell width",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
||||
"fields": ["Поле1: string", "Поле2: string"]
|
||||
}],
|
||||
"templates": [
|
||||
{
|
||||
"name": "БезСтиля",
|
||||
"style": "none",
|
||||
"widths": [7, 7],
|
||||
"rows": [["A", "B"]]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"name": "templates с built-in стилями (header/data), merge >/|, drilldown свёрткой",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура",
|
||||
"fields": ["Имя: string", "Сумма: decimal(15,2)"]
|
||||
}],
|
||||
"templates": [
|
||||
{
|
||||
"name": "Шапка",
|
||||
"style": "header",
|
||||
"widths": [20, 30, 25, 25],
|
||||
"rows": [
|
||||
["Имя", "Сумма", "Поступление", ">"],
|
||||
["|", "|", "из произв.", "со сч.40"],
|
||||
["К1", "К2", "К3", "К4"]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Данные",
|
||||
"style": "data",
|
||||
"widths": [20, 30, 25, 25],
|
||||
"rows": [["{Имя}", "{Сумма}", "{Поступление}", "{СчетПрочее}"]],
|
||||
"parameters": [
|
||||
{ "name": "Имя", "expression": "Имя" },
|
||||
{ "name": "Сумма", "expression": "Сумма" },
|
||||
{ "name": "Поступление", "expression": "СуммаПоступления", "drilldown": "СуммаПоступления" },
|
||||
{ "name": "СчетПрочее", "expression": "СчетПрочее" }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"name": "settingsVariant — selection с folder, filter Or, conditionalAppearance, structure shorthand, dataParameters auto",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Тест",
|
||||
"query": "ВЫБРАТЬ * ИЗ Справочник.Номенклатура",
|
||||
"fields": [
|
||||
"Организация: CatalogRef.Организации @dimension",
|
||||
"Номенклатура: CatalogRef.Номенклатура @dimension",
|
||||
"Сумма: decimal(15,2)",
|
||||
"Количество: decimal(15,3)",
|
||||
"Статус: string"
|
||||
]
|
||||
}],
|
||||
"parameters": [
|
||||
"Период: StandardPeriod = LastMonth @autoDates",
|
||||
"Активные: boolean = true"
|
||||
],
|
||||
"templates": [{"name": "Шапка", "style": "header", "rows": [["Орг", "Сум"]]}],
|
||||
"groupTemplates": [{"groupName": "ДанныеОтчета", "templateType": "GroupHeader", "template": "Шапка"}],
|
||||
"settingsVariants": [{
|
||||
"name": "Основной",
|
||||
"title": "Основной вариант",
|
||||
"settings": {
|
||||
"selection": [
|
||||
"Организация",
|
||||
{ "folder": "Объёмы", "items": ["Сумма", "Количество"] },
|
||||
"Auto"
|
||||
],
|
||||
"filter": [
|
||||
"Организация = _ @off @user",
|
||||
{ "group": "Or", "items": [
|
||||
{ "field": "Статус", "op": "=", "value": "Активен" },
|
||||
{ "field": "Сумма", "op": ">", "value": 1000 }
|
||||
]}
|
||||
],
|
||||
"order": ["Сумма desc", "Auto"],
|
||||
"conditionalAppearance": [{
|
||||
"filter": ["Сумма > 10000"],
|
||||
"appearance": { "ЦветТекста": "style:НегативныйТекстЦвет" },
|
||||
"presentation": "Большие суммы",
|
||||
"viewMode": "Normal",
|
||||
"userSettingID": "auto"
|
||||
}],
|
||||
"outputParameters": { "Заголовок": "Сводка по организациям" },
|
||||
"dataParameters": "auto",
|
||||
"structure": "Организация > Номенклатура > details"
|
||||
}
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "Template.xml" },
|
||||
"cwd": "{workDir}"
|
||||
}
|
||||
],
|
||||
"params": { "templatePath": "Template.xml" },
|
||||
"outputPath": "decompiled.json"
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "modify-dataParameter: пустые значения (sentinel-формы) → dcscor:value xsi:nil",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ 1 КАК Поле1",
|
||||
"fields": ["Поле1: decimal(1,0)"]
|
||||
}],
|
||||
"parameters": [
|
||||
"Период: StandardPeriod = LastMonth",
|
||||
"Организация: string = Альфа"
|
||||
],
|
||||
"settingsVariants": [{
|
||||
"name": "Основной",
|
||||
"settings": {
|
||||
"selection": ["Auto"],
|
||||
"dataParameters": ["Период = LastMonth", "Организация = Альфа"],
|
||||
"structure": "details"
|
||||
}
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
|
||||
},
|
||||
{
|
||||
"script": "skd-edit/scripts/skd-edit",
|
||||
"args": { "-TemplatePath": "{workDir}/Template.xml", "-Operation": "modify-dataParameter", "-Value": "Период = _" }
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "modify-dataParameter",
|
||||
"value": "Организация = null"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "add-parameter: пустые значения и расширенные типы (decimal bare, time, string fix, sentinels)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ 1 КАК Поле1",
|
||||
"fields": ["Поле1: decimal(1,0)"]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "add-parameter",
|
||||
"value": "ПарСтрока: string =;;ПарСтрокаНулл: string = null;;ПарСтрокаПодч: string = _;;ПарДата: date =;;ПарВремя: time =;;ПарВремяНепусто: time = 0001-01-01T12:30:00;;ПарДатаВремя: dateTime = _;;ПарЧислоБар: decimal =;;ПарЧислоН: decimal(8) =;;ПарБул: boolean =;;ПарПериод: StandardPeriod = _;;ПарСсылка: CatalogRef.Номенклатура = null;;ПарСтрокаФикс: string(10,fix) =;;ПарСписок: string @valueList = _"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "modify-parameter: установка пустого значения через sentinel-формы (value=_, value=null)",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ 1 КАК Поле1",
|
||||
"fields": ["Поле1: decimal(1,0)"]
|
||||
}],
|
||||
"parameters": [
|
||||
"ПарСтрока: string = ABC",
|
||||
"ПарДата: date = 2025-01-15T00:00:00",
|
||||
"ПарЧисло: decimal = 42",
|
||||
"ПарСсылка: CatalogRef.Номенклатура = Справочник.Номенклатура.НашаОрганизация"
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
|
||||
},
|
||||
{
|
||||
"script": "skd-edit/scripts/skd-edit",
|
||||
"args": { "-TemplatePath": "{workDir}/Template.xml", "-Operation": "modify-parameter", "-Value": "ПарСтрока value=_" }
|
||||
},
|
||||
{
|
||||
"script": "skd-edit/scripts/skd-edit",
|
||||
"args": { "-TemplatePath": "{workDir}/Template.xml", "-Operation": "modify-parameter", "-Value": "ПарДата value=null" }
|
||||
},
|
||||
{
|
||||
"script": "skd-edit/scripts/skd-edit",
|
||||
"args": { "-TemplatePath": "{workDir}/Template.xml", "-Operation": "modify-parameter", "-Value": "ПарЧисло value=_" }
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "modify-parameter",
|
||||
"value": "ПарСсылка value=null"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "patch-query: CRLF в -Value матчит LF-текст в InnerText",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ\n\tТ.Поле\nИЗ\n\tРегистр КАК Т",
|
||||
"fields": ["Поле"]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "patch-query",
|
||||
"value": "ВЫБРАТЬ\r\n\tТ.Поле => ВЫБРАТЬ\r\n\tТ.Имя"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "patch-query: diagnostic — NBSP в search улавливается tolerant probe",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [
|
||||
{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ Т.Поле ИЗ Регистр КАК Т",
|
||||
"fields": [
|
||||
"Поле"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": {
|
||||
"-DefinitionFile": "{inputFile}",
|
||||
"-OutputPath": "{workDir}/Template.xml"
|
||||
}
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "patch-query",
|
||||
"value": "ВЫБРАТЬ Т.Поле => x"
|
||||
},
|
||||
"expectError": "whitespace normalized"
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "patch-query: diagnostic — подстрока в другом dataSet",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [
|
||||
{
|
||||
"name": "Первый",
|
||||
"query": "ВЫБРАТЬ 1 КАК Поле",
|
||||
"fields": ["Поле"]
|
||||
},
|
||||
{
|
||||
"name": "Второй",
|
||||
"query": "ВЫБРАТЬ Т.УникальныйМаркер ИЗ Регистр КАК Т",
|
||||
"fields": ["УникальныйМаркер: string"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "patch-query",
|
||||
"value": "УникальныйМаркер => Новый"
|
||||
},
|
||||
"args_extra": ["-DataSet", "Первый"],
|
||||
"expectError": "Found in dataset 'Второй' instead"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "patch-query: diagnostic — опечатка показывает точку расхождения",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "skd-compile/scripts/skd-compile",
|
||||
"input": {
|
||||
"dataSets": [{
|
||||
"name": "Основной",
|
||||
"query": "ВЫБРАТЬ Т.Наименование ИЗ Регистр КАК Т",
|
||||
"fields": ["Наименование: string"]
|
||||
}]
|
||||
},
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"templatePath": "Template.xml",
|
||||
"operation": "patch-query",
|
||||
"value": "Т.Наеменование => Т.Имя"
|
||||
},
|
||||
"expectError": "diverged"
|
||||
}
|
||||
@@ -66,6 +66,7 @@
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>Служебное</dcsset:field>
|
||||
</dcsset:item>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user