feat(skd): dataSetLinks с расширенными атрибутами

skd-decompile теперь извлекает блоки <dataSetLink> на уровне схемы,
skd-compile поддерживает поля parameterListAllowed/startExpression/
linkConditionExpression (раньше был только parameter).

На sample30 это даёт −1100 строк diff (4873 → 3773), один отчёт
(АнализНачисленийНДССАвансовПолученных) переходит в bit-perfect.
This commit is contained in:
Nick Shirokov
2026-05-23 12:47:56 +03:00
parent b1eb8bebe3
commit 9b4bb3d9b8
3 changed files with 40 additions and 3 deletions
@@ -1,4 +1,4 @@
# skd-compile v1.62 — Compile 1C DCS from JSON
# skd-compile v1.63 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -1090,6 +1090,15 @@ function Emit-DataSetLinks {
if ($link.parameter) {
X "`t`t<parameter>$(Esc-Xml "$($link.parameter)")</parameter>"
}
if ($link.PSObject.Properties.Match('parameterListAllowed').Count -gt 0 -and $link.parameterListAllowed) {
X "`t`t<parameterListAllowed>true</parameterListAllowed>"
}
if ($link.PSObject.Properties.Match('startExpression').Count -gt 0 -and $null -ne $link.startExpression) {
X "`t`t<startExpression>$(Esc-Xml "$($link.startExpression)")</startExpression>"
}
if ($link.PSObject.Properties.Match('linkConditionExpression').Count -gt 0 -and $null -ne $link.linkConditionExpression) {
X "`t`t<linkConditionExpression>$(Esc-Xml "$($link.linkConditionExpression)")</linkConditionExpression>"
}
X "`t</dataSetLink>"
}
}