diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1 index a5c13cd5..68f38e1a 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.98 — Compile 1C DCS from JSON +# skd-compile v1.100 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$DefinitionFile, diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py index 8c5444b0..4bfdcd30 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.98 — Compile 1C DCS from JSON +# skd-compile v1.100 — Compile 1C DCS from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import json diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index 14b48c92..b85a4ed5 100644 --- a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 +++ b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 @@ -1,4 +1,4 @@ -# skd-decompile v0.83 — Decompile 1C DCS Template.xml to JSON DSL (draft) +# skd-decompile v0.84 — Decompile 1C DCS Template.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -2646,7 +2646,13 @@ foreach ($p in $paramsRaw) { # Иначе compile (который генерирует именно эти имена + type=date + DateFractions=Date) # не сможет вернуть bit-perfect для отчётов с шаблоном "Период" → "НачалоПериода"/ # "КонецПериода" + DateFractions=DateTime. Оставляем как явные параметры. - if ($startMatch -eq 'НачалоПериода' -and $endMatch -eq 'КонецПериода') { + # Также НЕ сворачиваем если companions имеют availableAsField=false — compile + # auto-gen не передаёт этот атрибут (ERP-стиль без него; БСП-стиль с ним — + # вариативность не выразима через @autoDates флаг, пусть companions останутся явными). + $beginP = $paramByName[$startMatch] + $endP = $paramByName[$endMatch] + $hasNotAField = ($beginP -and $beginP.notAField) -or ($endP -and $endP.notAField) + if ($startMatch -eq 'НачалоПериода' -and $endMatch -eq 'КонецПериода' -and -not $hasNotAField) { $p['autoDates'] = $true $removedNames[$startMatch] = $true $removedNames[$endMatch] = $true