mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 16:20:54 +03:00
feat(skd): multi-value параметры (valueListAllowed список значений по умолчанию)
Параметр с valueListAllowed=true может иметь несколько <value> элементов
подряд — список значений по умолчанию (например список счетов плана).
Раньше decompile читал только первый (SelectSingleNode), compile эмитил
один <value> → терялись все остальные значения.
DSL: value в параметре может быть массивом строк (или native bool/int/double).
decompile: SelectNodes("r:value") → если >1 элемент, value = array.
compile (PS+Py): если value — array, эмитим каждый отдельным <value>
через Emit-ParamValue.
Альт-indent корпус: 18009 → 17946 строк diff.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# skd-compile v1.100 — Compile 1C DCS from JSON
|
||||
# skd-compile v1.101 — Compile 1C DCS from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import json
|
||||
@@ -1122,6 +1122,10 @@ def emit_single_param(lines, p, parsed):
|
||||
# Принудительный xsi:nil даже когда тип известен (для bit-perfect round-trip).
|
||||
if not vla:
|
||||
lines.append('\t\t<value xsi:nil="true"/>')
|
||||
elif isinstance(parsed.get('value'), list):
|
||||
# Multi-value (массив значений по умолчанию для valueListAllowed-параметра).
|
||||
for v in parsed['value']:
|
||||
emit_param_value(lines, p_type, v, '\t\t', False)
|
||||
else:
|
||||
emit_param_value(lines, p_type, parsed.get('value'), '\t\t', vla)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user