mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-05 11:10:20 +03:00
fix(form-edit,meta-edit,mxl-compile,role-compile,subsystem-*): кавычки в тексте не экранируем
Правило платформы единое и подтверждено дважды. По корпусу трёх конфигураций: 92142 сырых кавычки в тексте элементов и НИ ОДНОЙ "; в условиях RLS — 16334 сырых против нуля экранированных (при этом & платформа пишет, то есть амперсанд экранируется, а кавычка нет). Загрузка на стенде: оба варианта принимаются, но выгружает платформа сырую кавычку — то есть " не ошибка, а лишний шум в роундтрипе. Решение было принято раньше в form-compile (там оно и записано комментарием) и в skd-compile/skd-edit, но шесть навыков из него выпали. Приведены к общему виду: где Esc-Xml использовался только для текста — функция стала текстовой; в meta-edit, где она нужна и для атрибута, текстовые места переведены на существующий Esc-XmlText. Атрибуты нигде не затронуты: там экранирование кавычек обязательно. Дрейф эталонов — три строки, все условия RLS; role-info и role-validate строят фикстуры прогоном role-compile (кросс-навыковый пересъём). Проверка: полная сюита 630/630 на PowerShell и 627+3 skipped на python; 1С-сертификация role-compile 9/9, subsystem-compile 9/9, subsystem-edit 6/6, form-edit 6/6, meta-edit 16/16. В mxl-compile кейс guard-allow-external падает и до правки — не связан. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6963df6b99
commit
919d49fe14
@@ -1,4 +1,4 @@
|
||||
# meta-decompile v0.62 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# meta-decompile v0.63 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
#
|
||||
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# meta-decompile v0.61 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# meta-decompile v0.63 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
#
|
||||
# Зеркало meta-decompile.ps1 (КАНОН). Структура 1:1 — те же имена функций, порядок, комментарии.
|
||||
@@ -1519,9 +1519,13 @@ def build_dsl():
|
||||
'filterField': shorten_char_field(gt('TypesFilterField', ct), t_from),
|
||||
'filterValue': None if tfv_nil == 'true' else convert_ch_scalar_node(tfv_node),
|
||||
}
|
||||
dpf = giv('DataPathField', ct)
|
||||
if dpf != -1:
|
||||
types['dataPathField'] = dpf
|
||||
# DataPathField полиморфно: обычно -1, но встречается ПУТЬ к полю (8 случаев на
|
||||
# корпус). Жёсткое int() на нём роняло декомпиляцию всего объекта.
|
||||
dpf_node = _lx1(ct, "*[local-name()='DataPathField']")
|
||||
dpf_txt = _text(dpf_node) if dpf_node is not None else ''
|
||||
if dpf_txt != '' and dpf_txt != '-1':
|
||||
types['dataPathField'] = (int(dpf_txt) if re.fullmatch(r'-?\d+', dpf_txt)
|
||||
else shorten_char_field(dpf_txt, t_from))
|
||||
mvu = giv('MultipleValuesUseField', ct)
|
||||
if mvu != -1:
|
||||
types['multipleValuesUseField'] = mvu
|
||||
|
||||
Reference in New Issue
Block a user