From 138219420104ba2fe50c48ad26a2cc204c180703 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Wed, 11 Feb 2026 13:22:35 +0300 Subject: [PATCH] Fix @period role to emit periodNumber/periodType instead of period Real DCS files use 1 and Main for period fields. The element does not exist in the XDTO schema and causes build failures. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/skd-compile/scripts/skd-compile.ps1 | 8 +++++++- docs/1c-dcs-spec.md | 3 ++- docs/skd-dsl-spec.md | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index f6828a3d..8ba7a00d 100644 --- a/.claude/skills/skd-compile/scripts/skd-compile.ps1 +++ b/.claude/skills/skd-compile/scripts/skd-compile.ps1 @@ -564,7 +564,13 @@ function Emit-Field { if ($f.roles.Count -gt 0 -or $f["roleObj"]) { X "$indent`t" foreach ($role in $f.roles) { - X "$indent`t`ttrue" + if ($role -eq "period") { + # @period -> periodNumber + periodType (not ) + X "$indent`t`t1" + X "$indent`t`tMain" + } else { + X "$indent`t`ttrue" + } } if ($f["roleObj"]) { $ro = $f["roleObj"] diff --git a/docs/1c-dcs-spec.md b/docs/1c-dcs-spec.md index 3eac72a1..cb0ca398 100644 --- a/docs/1c-dcs-spec.md +++ b/docs/1c-dcs-spec.md @@ -299,7 +299,8 @@ DataCompositionSchema | `dcscom:accountTypeExpression` | Выражение для определения типа счёта | | `dcscom:balance` | Поле является остатком | | `dcscom:balanceGroup` | Группа остатка | -| `dcscom:period` | Поле — период | +| `dcscom:periodNumber` | Номер периода (обычно `1`) | +| `dcscom:periodType` | Тип периода (`Main`, `Additional`) | ### 4.7. Тип значения (valueType) diff --git a/docs/skd-dsl-spec.md b/docs/skd-dsl-spec.md index 50c57661..71899815 100644 --- a/docs/skd-dsl-spec.md +++ b/docs/skd-dsl-spec.md @@ -183,7 +183,7 @@ | `@dimension` | `"role": "dimension"` или `{"dimension": true}` | `true` | | `@account` | `"role": "account"` или `{"account": true}` | `true` | | `@balance` | `"role": "balance"` или `{"balance": true}` | `true` | -| `@period` | `"role": "period"` или `{"period": true}` | `true` | +| `@period` | `"role": "period"` или `{"period": true}` | `1` + `Main` | Объектная форма с доп. полями: ```json