mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 23:05:16 +03:00
253a4fbce0
Раундтрип-находка (класс-3, непокрытый блок — крупнейшая категория ~56k). meta-compile вообще не генерил Ext/Predefined.xml. DSL спроектирован по данным корпуса (9309 элементов) + совместно. DSL `predefined` (массив; строка ИЛИ объект): - строка "(Код) Имя [Наименование]": Имя обяз.; Наименование — нет [..] → авто(Split-CamelCase), [] → пусто (системные/placeholder, 29% корпуса), [текст] → задано; - объект (группа/иерархия): name/code/description/isFolder/childItems + рус.синонимы имя/код/наименование/группа/подчиненные (прощающий ввод). - Код: по codeType каталога (Number→xs:decimal, String→без типа), пусто→<Code/>. meta-compile (дуал-порт): генерация Ext/Predefined.xml (root CatalogPredefinedItems + рекурсия Item). Заодно фикс: Esc-XmlText для ТЕКСТА элемента (& < > без экранирования кавычек — в тексте 1С держит raw). meta-decompile: захват predefined → компактный DSL (строка/объект). Фикс PS-ловушки распаковки одноэлементного @() из if → папки с ОДНИМ ребёнком теряли его. spec meta-dsl-spec.md v2.4 §7.1.2; тест-кейс catalog-predefined. Валидация: PS==PY паритет; predefined-категории 0 (PredefinedData/Item/ChildItems/Description/Code); полный прогон −56620 (218537→161917); регресс 36/36 (ps+py); 1С-cert зелёный (грузится в платформу). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 lines
741 B
JSON
16 lines
741 B
JSON
{
|
|
"name": "Справочник с предопределёнными элементами",
|
|
"input": {
|
|
"type": "Catalog", "name": "ВидыКонтактов", "codeType": "Number", "codeLength": 3,
|
|
"predefined": [
|
|
"Телефон",
|
|
"(1) ЭлектроннаяПочта [Электронная почта]",
|
|
"ПустоеЗначение []",
|
|
{ "name": "Группа1", "isFolder": true, "description": "Прочие контакты",
|
|
"childItems": [ "Факс", "(7) Скайп [Скайп]" ] }
|
|
]
|
|
},
|
|
"validatePath": "Catalogs/ВидыКонтактов",
|
|
"expect": { "files": ["Catalogs/ВидыКонтактов.xml", "Catalogs/ВидыКонтактов/Ext/Predefined.xml"] }
|
|
}
|