mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-12 06:23:20 +03:00
PowerShell не различает регистр нигде, куда попадает пользовательский ввод: свойства объекта из ConvertFrom-Json, ключи Hashtable, -eq/-contains, имена параметров, ValidateSet. Python различает везде, поэтому один и тот же DSL давал разный результат на разных портах — и чаще всего молча: "CodeLength" вместо "codeLength" в py просто не находился, навык печатал [OK], а свойство в выход не попадало. Пилот на meta-compile. В py-порт добавлены общие обёртки: CIDict (поиск без учёта регистра, ключи хранятся как есть — часть из них имена объектов и попадает в XML), ci_json (рекурсивно на разобранный DSL), ci_parse_args (имена параметров и значения choices). Ими же обёрнуты словари синонимов видов, алиасов enum и типов. Попутно исправлен дефект самого канона: PS принимал "type":"catalog", но дальше использовал значение как есть — в имени тега и в регистрации в Configuration.xml, то есть отдавал <catalog>, которую платформа не примет. Теперь вид приводится к канону списка в обоих портах. check-inline-drift: extractPy научен доставать class (иначе тело CIDict невидимо), заведены три семьи с ps1: null — в PS1 этих обёрток быть не должно. Проверка: кейс lenient-key-case зелёный на обоих портах; полный регресс 673/673 (PS) и 670+3 skipped (PY); гарды 4/4; sweep по 400 справочникам трёх конфигураций (декомпиляция → компиляция обоими портами) — 0 расхождений. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
32 lines
850 B
JSON
32 lines
850 B
JSON
{
|
|
"name": "Прощающий ввод: регистр ключей DSL, вида объекта и значений enum",
|
|
"input": [
|
|
{
|
|
"type": "Catalog",
|
|
"name": "Контрагенты",
|
|
"CodeLength": 15,
|
|
"DescriptionLength": 75,
|
|
"Hierarchical": true
|
|
},
|
|
{
|
|
"type": "catalog",
|
|
"name": "Валюты",
|
|
"codeLength": 12
|
|
},
|
|
{
|
|
"type": "AccumulationRegister",
|
|
"name": "ПродажиОбороты",
|
|
"registerType": "обороты",
|
|
"dimensions": ["Номенклатура: CatalogRef.Номенклатура"],
|
|
"resources": ["Сумма: Number(15,2)"]
|
|
}
|
|
],
|
|
"expect": {
|
|
"files": [
|
|
"Catalogs/Контрагенты.xml",
|
|
"Catalogs/Валюты.xml",
|
|
"AccumulationRegisters/ПродажиОбороты.xml"
|
|
]
|
|
}
|
|
}
|