Files
cc-1c-skills/tests/skills/cases/meta-compile/http-service.json
T
Nick ShirokovandClaude Opus 5 05beeca7d3 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>
2026-08-02 11:47:02 +03:00

33 lines
951 B
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "HTTP-сервис с шаблонами URL",
"input": {
"type": "HTTPService",
"name": "ТоварныйAPI",
"rootURL": "api/v1",
"reuseSessions": "Use",
"sessionMaxAge": 30,
"comment": "Публичный API",
"urlTemplates": {
"Товары": {
"template": "/products/{id}",
"methods": {
"Получить": "GET",
"Обновить": "PUT"
}
},
"rpc": {
"template": "/rpc",
"comment": "Удалённый вызов",
"methods": {
"post": { "httpMethod": "POST", "handler": "ВызовЧерезТелоЗапроса",
"synonym": { "ru": "Отправить", "en": "Post" } }
}
}
}
},
"validatePath": "HTTPServices/ТоварныйAPI",
"expect": {
"files": ["HTTPServices/ТоварныйAPI.xml", "HTTPServices/ТоварныйAPI/Ext/Module.bsl"]
}
}