diff --git a/.claude/skills/skd-compile/SKILL.md b/.claude/skills/skd-compile/SKILL.md
index c98ca4d7..a6e7fa1a 100644
--- a/.claude/skills/skd-compile/SKILL.md
+++ b/.claude/skills/skd-compile/SKILL.md
@@ -119,7 +119,7 @@ Shorthand: `"Имя [Заголовок]: тип = Выражение #noField #
Shorthand: `"Имя [Заголовок]: тип = значение @флаги"`. `[Заголовок]` опциональный — добавляет `
` (LocalStringType).
Флаги shorthand:
-- `@autoDates` — добавляет к параметру StandardPeriod пару дат `НачалоПериода`/`КонецПериода`, вычисляемых из него. Используй их в тексте запроса как `&НачалоПериода`/`&КонецПериода`; пользователь выбирает только сам период.
+- `@autoDates` — добавляет к параметру StandardPeriod пару дат `НачалоПериода`/`КонецПериода`, вычисляемых из него. Используй их в тексте запроса как `&НачалоПериода`/`&КонецПериода`; пользователь выбирает только сам период. По умолчанию сам параметр получает `use=Always` и `denyIncompleteValues=true` (чтобы производные даты всегда были заполнены); в объектной форме можно явно переопределить.
- `@valueList` — `true` — разрешает передавать список значений
- `@hidden` — скрытый параметр: `availableAsField=false` + исключается из `"dataParameters": "auto"`
diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1
index 58e83992..ef2b9c29 100644
--- a/.claude/skills/skd-compile/scripts/skd-compile.ps1
+++ b/.claude/skills/skd-compile/scripts/skd-compile.ps1
@@ -1,4 +1,4 @@
-# skd-compile v1.17 — Compile 1C DCS from JSON
+# skd-compile v1.18 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -1006,13 +1006,18 @@ function Emit-SingleParam {
}
# DenyIncompleteValues
- if ($p -isnot [string] -and $p.denyIncompleteValues -eq $true) {
+ $deny = $parsed.denyIncompleteValues -eq $true -or (
+ $null -ne $p -and $p -isnot [string] -and $p.denyIncompleteValues -eq $true)
+ if ($deny) {
X "`t`ttrue"
}
- # Use
- if ($p -isnot [string] -and $p.use) {
- X "`t`t"
+ # Use — object form wins, else parsed (set by @autoDates default)
+ $useVal = $null
+ if ($null -ne $p -and $p -isnot [string] -and $p.use) { $useVal = "$($p.use)" }
+ elseif ($parsed.use) { $useVal = "$($parsed.use)" }
+ if ($useVal) {
+ X "`t`t"
}
X "`t"
@@ -1039,6 +1044,15 @@ function Emit-Parameters {
if ($p.autoDates -eq $true) { $parsed.autoDates = $true }
}
+ # @autoDates implies use=Always + denyIncompleteValues=true by default
+ # (derived &НачалоПериода/&КонецПериода need a populated period).
+ # Explicit values in object form override these defaults.
+ if ($parsed.autoDates) {
+ $isObj = ($p -isnot [string]) -and ($null -ne $p)
+ if (-not ($isObj -and $null -ne $p.use)) { $parsed.use = 'Always' }
+ if (-not ($isObj -and $null -ne $p.denyIncompleteValues)) { $parsed.denyIncompleteValues = $true }
+ }
+
Emit-SingleParam -p $p -parsed $parsed
# Track parameter for auto dataParameters
diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py
index f1dc2157..0352bfe7 100644
--- a/.claude/skills/skd-compile/scripts/skd-compile.py
+++ b/.claude/skills/skd-compile/scripts/skd-compile.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# skd-compile v1.17 — Compile 1C DCS from JSON
+# skd-compile v1.18 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -867,12 +867,19 @@ def emit_single_param(lines, p, parsed):
lines.append('\t\t')
# DenyIncompleteValues
- if p is not None and not isinstance(p, str) and p.get('denyIncompleteValues') is True:
+ deny = parsed.get('denyIncompleteValues') is True or (
+ p is not None and not isinstance(p, str) and p.get('denyIncompleteValues') is True)
+ if deny:
lines.append('\t\ttrue')
# Use
+ use_val = None
if p is not None and not isinstance(p, str) and p.get('use'):
- lines.append(f'\t\t')
+ use_val = str(p['use'])
+ elif parsed.get('use'):
+ use_val = str(parsed['use'])
+ if use_val:
+ lines.append(f'\t\t')
lines.append('\t')
@@ -906,6 +913,16 @@ def emit_parameters(lines, defn):
if p.get('autoDates') is True:
parsed['autoDates'] = True
+ # @autoDates implies use=Always + denyIncompleteValues=true by default
+ # (derived &НачалоПериода/&КонецПериода need a populated period).
+ # Explicit values in object form override these defaults.
+ if parsed.get('autoDates'):
+ is_obj = p is not None and not isinstance(p, str)
+ if not (is_obj and p.get('use') is not None):
+ parsed['use'] = 'Always'
+ if not (is_obj and p.get('denyIncompleteValues') is not None):
+ parsed['denyIncompleteValues'] = True
+
emit_single_param(lines, p, parsed)
# Track parameter for auto dataParameters
diff --git a/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml b/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml
index a6771bb2..c1f7b2ca 100644
--- a/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml
@@ -33,6 +33,8 @@
0001-01-01T00:00:00
0001-01-01T00:00:00
+ true
+
НачалоПериода
diff --git a/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml b/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml
index 16c36aac..2662700b 100644
--- a/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml
@@ -68,6 +68,8 @@
0001-01-01T00:00:00
0001-01-01T00:00:00
+ true
+
НачалоПериода
diff --git a/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml b/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml
index 08b08c6f..a1a7f051 100644
--- a/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml
@@ -63,6 +63,8 @@
0001-01-01T00:00:00
0001-01-01T00:00:00
+ true
+
НачалоПериода
diff --git a/tests/skills/cases/skd-compile/snapshots/with-parameters/Template.xml b/tests/skills/cases/skd-compile/snapshots/with-parameters/Template.xml
index cb009578..496f1606 100644
--- a/tests/skills/cases/skd-compile/snapshots/with-parameters/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/with-parameters/Template.xml
@@ -60,6 +60,8 @@
0001-01-01T00:00:00
0001-01-01T00:00:00
+ true
+
НачалоПериода