mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-28 05:59:41 +03:00
fix(skd-compile): Designer-compatible empty parameter values
Centralized empty-value handling: shorthand `=`, `= _`, `= null` and object-form `value: null` / `""` now serialize per type, matching what 1C Designer writes: - ref / no-type → <value xsi:nil="true"/> - string → <value xsi:type="xs:string"/> - date/decimal/boolean → typed zero (0001-01-01 / 0 / false) - StandardPeriod → Custom variant with zero dates - @valueList → omit <value> entirely Closes BUG-1 (StandardPeriod @autoDates) and BUG-2 (CatalogRef.X = _ producing invalid <value>_</value>) reported by titan team. New helpers Test-EmptyValue / Emit-EmptyValue (ps1) and is_empty_value / emit_empty_value (py) shared by Emit-ParamValue, availableValues loop, and explicit dataParameters emit. Shorthand regex .+ → .* so trailing `=` parses as empty. Reference: upload/erf/ПроверкаЭкранирования (live Designer dump). New test case empty-param-values covers all 10 type×sentinel combos; 3 existing snapshots regenerated to include the now-correct <value> tags. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
3eaa7ffa3b
commit
449f814d16
@@ -77,6 +77,11 @@
|
||||
<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>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Флаг</name>
|
||||
@@ -129,6 +134,7 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>Валюта</name>
|
||||
|
||||
Reference in New Issue
Block a user