mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 16:20:54 +03:00
fix(meta-edit): канонизация значений свойств-перечислений
modify-property писал значение свойства объекта в XML как есть: и "обороты", и "turnovers", и "ЧтоУгодно". Навык печатал Modified: 1 и оставлял выгрузку, которую платформа не примет. Расхождения портов тут не было — оба вели себя одинаково, поэтому кампания паритета это не ловила. Значение теперь проходит через normalize_enum_value — ту же функцию, что уже применялась к свойствам реквизитов: алиас и регистр приводятся к канону, неизвестное значение отвергается с перечислением допустимых ДО записи файла. Поведение сведено к meta-compile, который так работает давно. Словарь алиасов в meta-edit обёрнут в CIDict: без этого правка сделала бы хуже — "обороты" строчными не нашли бы ключ "Обороты" и получили бы отказ вместо прежней тихой записи. check-inline-drift: заведена семья normalize_enum_value (тела в обоих портах совпадают побайтово, эталон meta-compile). Списки значений по-прежнему держит check-enum-drift, новых ключей не заводили. Проверка: два кейса (синоним → канон в эталоне; мусор → expectError), 685/685 на PS и 682+3 skipped на PY, гарды 4/4. Платформенно: синтетический регистр, правка через meta-edit, загрузка в 8.3.27 и обратная выгрузка — платформа вернула Turnovers. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5baece90d6
commit
50bc9f5c0a
@@ -1,4 +1,4 @@
|
||||
# meta-edit v1.37 — Edit existing 1C metadata object XML (+esc_xml/esc_xml_text: разное экранирование атрибута и текста)
|
||||
# meta-edit v1.38 — Edit existing 1C metadata object XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$DefinitionFile,
|
||||
@@ -2110,6 +2110,11 @@ function Modify-Properties($propsDef) {
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Значение свойства-перечисления приводим к канону (как это делает meta-compile): иначе
|
||||
# в XML уезжает то, что дала модель, и платформа отвергает выгрузку уже при загрузке.
|
||||
# Неизвестное свойство функция пропускает как есть, неизвестное значение — отвергает.
|
||||
$valueStr = Normalize-EnumValue $propName $valueStr
|
||||
|
||||
$propEl.InnerText = $valueStr
|
||||
Info "Modified property: $propName = $valueStr"
|
||||
$script:modifyCount++
|
||||
|
||||
Reference in New Issue
Block a user