fix(meta-compile,meta-decompile): многоязычные синонимы и регистр RootURL в сервисах

Прогон сервисов на конфигурациях формата 2.17 (ERP + БП, 46 объектов) вскрыл
то, чего не было в УТ: 25 совпадений из 46.

ERP двуязычна, и синоним шаблона, метода, операции и параметра приезжает
объектом {ru,en}. Компилятор интерполировал его в строку — в XML попадал
литерал "@{ru=Версия; en=Version}" вместо пары языковых элементов. Значение
теперь передаётся в эмиттер как есть, он и так умеет обе формы.

RootURL сравнивался с дефолтом (имя в нижнем регистре) регистронезависимо,
поэтому MobileAppReceiptScanner считался дефолтным и терял регистр при
регенерации. Сравнение сделано регистрочувствительным — тот же класс ошибки,
что уже ловили на синонимах методов.

Спека meta-dsl-spec дополнена: объектные формы шаблонов, методов, операций и
параметров; xdtoPackages как список; descriptorFileName; dataLockControlMode;
нотация Кларка для типов из своего пространства имён; Use в ReuseSessions.

Проверка: сервисы ERP+БП 46/46, сервисы УТ 25/25, сюита 76/76 на обоих
портах, 1С-сертификация кейса с многоязычным синонимом пройдена.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-02 11:47:02 +03:00
co-authored by Claude Opus 5
parent 87f97e986a
commit 05beeca7d3
7 changed files with 50 additions and 18 deletions
@@ -19,7 +19,8 @@
"template": "/rpc",
"comment": "Удалённый вызов",
"methods": {
"post": { "httpMethod": "POST", "handler": "ВызовЧерезТелоЗапроса", "synonym": "Post" }
"post": { "httpMethod": "POST", "handler": "ВызовЧерезТелоЗапроса",
"synonym": { "ru": "Отправить", "en": "Post" } }
}
}
}
@@ -77,6 +77,10 @@
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отправить</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Post</v8:content>
</v8:item>
</Synonym>