fix(meta-edit): ключ свойства в любом регистре — в XML каноническое имя

ps1 сопоставлял ключ свойства без учёта регистра, но при создании элемента писал
тег как подан: registerRecords у заимствованного документа давал <registerRecords>,
и meta-validate его пропускал. py сравнивал точно и на том же входе отказывал.

Ключ свойства объекта и дочернего элемента теперь сводится к каноническому имени
(ключи веток modify — name/type/synonym… — впереди списка свойств), дальше в обоих
портах только оно. Попутно: py при переименовании сравнивал синоним с разбивкой
старого имени с учётом регистра и не обновлял авто-синоним «ИНН»; сравнение теперь
без учёта регистра, как в ps1.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 17:31:28 +03:00
co-authored by Claude Opus 5.5
parent 2fc5659b47
commit 0ff848784e
32 changed files with 2261 additions and 6 deletions
@@ -0,0 +1,55 @@
{
"name": "Прощающий ввод: ключи свойств реквизита в другом регистре — канонические теги, Name переименовывает",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Catalog",
"name": "Контрагенты",
"attributes": [
"ИНН: String(12)"
]
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
}
],
"params": {
"objectPath": "Catalogs/Контрагенты"
},
"input": {
"modify": {
"attributes": {
"ИНН": {
"Name": "КодНалогоплательщика",
"indexing": "Index",
"fillchecking": "ShowError"
}
}
}
},
"expect": {
"fileContains": [
{
"file": "Catalogs/Контрагенты.xml",
"text": [
"<Name>КодНалогоплательщика</Name>",
"<v8:content>Код налогоплательщика</v8:content>",
"<Indexing>Index</Indexing>",
"<FillChecking>ShowError</FillChecking>"
]
}
],
"fileNotContains": [
{
"file": "Catalogs/Контрагенты.xml",
"text": [
"<indexing",
"<fillchecking"
]
}
]
}
}