mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 16:20:54 +03:00
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:
co-authored by
Claude Opus 5
parent
87f97e986a
commit
05beeca7d3
@@ -1,4 +1,4 @@
|
||||
# meta-compile v1.72 — Compile 1C metadata object from JSON
|
||||
# meta-compile v1.73 — Compile 1C metadata object from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -3922,7 +3922,7 @@ function Emit-URLTemplate {
|
||||
$template = "$tmplDef"
|
||||
} else {
|
||||
$template = if ($tmplDef.template) { "$($tmplDef.template)" } else { "/$($tmplName.ToLower())" }
|
||||
if ($tmplDef.synonym) { $tmplSynonym = "$($tmplDef.synonym)" }
|
||||
if ($tmplDef.synonym) { $tmplSynonym = $tmplDef.synonym } # объект {ru,en} НЕ интерполировать
|
||||
if ($tmplDef.comment) { $tmplComment = "$($tmplDef.comment)" }
|
||||
if ($tmplDef.methods) {
|
||||
$tmplDef.methods.PSObject.Properties | ForEach-Object {
|
||||
@@ -3953,7 +3953,7 @@ function Emit-URLTemplate {
|
||||
} else {
|
||||
$httpMethod = if ($mDef.httpMethod) { "$($mDef.httpMethod)" } else { 'GET' }
|
||||
$handler = if ($mDef.handler) { "$($mDef.handler)" } else { "${tmplName}${methodName}" }
|
||||
$methodSynonym = if ($mDef.synonym) { "$($mDef.synonym)" } else { Split-CamelCase $methodName }
|
||||
$methodSynonym = if ($mDef.synonym) { $mDef.synonym } else { Split-CamelCase $methodName }
|
||||
$methodComment = if ($mDef.comment) { "$($mDef.comment)" } else { "" }
|
||||
}
|
||||
|
||||
@@ -3997,7 +3997,7 @@ function Emit-Operation {
|
||||
if ($opDef.transactioned -eq $true) { $transactioned = "true" }
|
||||
if ($opDef.handler) { $handler = "$($opDef.handler)" }
|
||||
if ($opDef.procedureName) { $handler = "$($opDef.procedureName)" }
|
||||
if ($opDef.synonym) { $opSynonym = "$($opDef.synonym)" }
|
||||
if ($opDef.synonym) { $opSynonym = $opDef.synonym }
|
||||
if ($opDef.comment) { $opComment = "$($opDef.comment)" }
|
||||
if ($opDef.dataLockControlMode) { $dataLock = "$($opDef.dataLockControlMode)" }
|
||||
if ($opDef.parameters) {
|
||||
@@ -4036,7 +4036,7 @@ function Emit-Operation {
|
||||
if ($paramDef.type) { $paramType = "$($paramDef.type)" }
|
||||
if ($paramDef.nillable -eq $false) { $paramNillable = "false" }
|
||||
if ($paramDef.direction) { $paramDir = "$($paramDef.direction)" }
|
||||
if ($paramDef.synonym) { $paramSynonym = "$($paramDef.synonym)" }
|
||||
if ($paramDef.synonym) { $paramSynonym = $paramDef.synonym }
|
||||
if ($paramDef.comment) { $paramComment = "$($paramDef.comment)" }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user