Files
cc-1c-skills/tests/skills/cases/skd-decompile/snapshots/field-input-parameters/decompiled.json
T
Nick Shirokov 55b80fdc08 feat(skd-decompile): компактный JSON-сериализатор + расширенный shorthand totalFields
Заменил ConvertTo-Json (PS5.1) на собственный ConvertTo-CompactJson:
- 2-пробельный indent (вместо 4 + выравнивание keys по длине)
- Массивы примитивов (string/number/bool/null) — inline `[a, b, c]`
- Массивы с объектами/nested arrays — multi-line как раньше
- Кириллица в UTF-8 (без \uXXXX-escapes)
- Корректный escape строк (\\", \\, \n, \r, \t, \uXXXX для control chars)

Build-TotalField: shorthand "name: expr" для любого однострочного
expression. Раньше object form применялась когда expression не Func(arg).
Теперь — только когда есть group или expression многострочный.
Compile принимает любой shorthand вида "dataPath: expression" (Parse-
TotalShorthand делает split по первому ":").

Save-UserStyles тоже использует новый сериализатор.

Все 16 декомпиляционных snapshot'ов обновлены (косметика — JSON
структурно тот же, тесты round-trip проходят).

На реальном отчёте (целевой корпус): 405 → 264 строк (-35%).
v0.18 → v0.19.
2026-05-21 20:50:34 +03:00

61 lines
2.0 KiB
JSON

{
"dataSets": [
{
"name": "Тест",
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
"fields": [
{
"field": "СегментНоменклатуры",
"type": "CatalogRef.СегментыНоменклатуры",
"inputParameters": [
{
"parameter": "ПараметрыВыбора",
"choiceParameters": [
{
"name": "Отбор.СпособФормирования",
"values": ["Перечисление.СпособыФормированияСегментов.ФормироватьВручную", "Перечисление.СпособыФормированияСегментов.ПериодическиОбновлять"]
}
]
}
]
},
{
"field": "Сотрудник",
"type": "CatalogRef.Сотрудники",
"inputParameters": [
{
"parameter": "СвязиПараметровВыбора",
"choiceParameterLinks": [
{
"name": "Отбор.ТекущаяОрганизация",
"value": "Организация",
"mode": "Clear"
},
{
"name": "Отбор.ТекущееПодразделение",
"value": "Подразделение",
"mode": "Clear"
}
]
}
]
},
{
"field": "ПростоЕА",
"type": "CatalogRef.Сотрудники",
"inputParameters": [
{
"parameter": "ПараметрыВыбора",
"choiceParameters": []
},
{
"parameter": "БыстрыйВыбор",
"use": false,
"value": true
}
]
}
]
}
]
}