From cf02c69ff560d2dea7fce167ca312899d1968dcb Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Tue, 22 Sep 2026 20:06:32 +0300 Subject: [PATCH] =?UTF-8?q?fix(form-decompile):=20=D0=BD=D0=B5=20=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D1=8F=D1=82=D1=8C=20=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D0=BA,=20=D0=BE=D1=82=D0=BB=D0=B8=D1=87?= =?UTF-8?q?=D0=B0=D1=8E=D1=89=D0=B8=D0=B9=D1=81=D1=8F=20=D0=BE=D1=82=20?= =?UTF-8?q?=D0=B0=D0=B2=D1=82=D0=BE-=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=80=D0=B5=D0=B3?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D1=80=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Заголовок реквизита формы и параметра динамического списка опускается, если равен авто-выводу из имени: компилятор восстановит его сам. Сравнение было регистронезависимым (в ps1 -eq/-ne, в py зеркалящий их _ps_ieq), поэтому «Организации ВетИС» при имени ОрганизацииВЕТИС считался равным авто-выводу «Организации ВЕТИС», выпадал из DSL, и обратная сборка молча меняла текст на форме. Эталон сравнения — не PowerShell, а компилятор: он пишет заголовок как есть, значит опускать можно только при побайтовом совпадении. В ps1 этого не даёт и -ceq — он культурный, мягкий перенос и NFD-разложение для него ничего не весят, и порты разошлись бы между собой. Сравнение идёт через [string]::Equals(..., Ordinal), что и есть зеркало питоновского ==. _ps_ieq больше не нужен и удалён. Два регресс-кейса: реквизит формы (регистр + невидимый мягкий перенос) и параметр динамического списка. Оба падают на исходной версии в обоих портах. Найдено на типовой конфигурации: Документ.ИсходящаяТранспортнаяОперацияВЕТИС.ФормаСписка. Co-Authored-By: Шпаков Антон Александрович Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01SSyRNwSiuAAEQCLSCUGEzQ --- .../form-decompile/scripts/form-decompile.ps1 | 14 +- .../form-decompile/scripts/form-decompile.py | 19 +- .../form-decompile/attribute-title-case.json | 37 +++ .../dl-parameter-title-case.json | 45 ++++ .../attribute-title-case/Configuration.xml | 252 ++++++++++++++++++ .../DataProcessors/Регистр.xml | 34 +++ .../Регистр/Ext/ManagerModule.bsl | 0 .../Регистр/Ext/ObjectModule.bsl | 0 .../DataProcessors/Регистр/Forms/Форма.xml | 22 ++ .../Регистр/Forms/Форма/Ext/Form.xml | 56 ++++ .../Регистр/Forms/Форма/Ext/Form/Module.bsl | 19 ++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../Languages/Русский.xml | 16 ++ .../snapshots/attribute-title-case/draft.json | 9 + .../dl-parameter-title-case/Configuration.xml | 252 ++++++++++++++++++ .../DataProcessors/Регистр.xml | 34 +++ .../Регистр/Ext/ManagerModule.bsl | 0 .../Регистр/Ext/ObjectModule.bsl | 0 .../DataProcessors/Регистр/Forms/Форма.xml | 22 ++ .../Регистр/Forms/Форма/Ext/Form.xml | 70 +++++ .../Регистр/Forms/Форма/Ext/Form/Module.bsl | 19 ++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../Languages/Русский.xml | 16 ++ .../dl-parameter-title-case/draft.json | 15 ++ 24 files changed, 975 insertions(+), 12 deletions(-) create mode 100644 tests/skills/cases/form-decompile/attribute-title-case.json create mode 100644 tests/skills/cases/form-decompile/dl-parameter-title-case.json create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/Configuration.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Ext/ManagerModule.bsl create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/Languages/Русский.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/attribute-title-case/draft.json create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Configuration.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Ext/ManagerModule.bsl create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Languages/Русский.xml create mode 100644 tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/draft.json diff --git a/.claude/skills/form-decompile/scripts/form-decompile.ps1 b/.claude/skills/form-decompile/scripts/form-decompile.ps1 index 16e0a874d..ae9b1edf0 100644 --- a/.claude/skills/form-decompile/scripts/form-decompile.ps1 +++ b/.claude/skills/form-decompile/scripts/form-decompile.ps1 @@ -1,4 +1,4 @@ -# form-decompile v0.150 — Decompile 1C managed Form.xml to JSON DSL (draft) +# form-decompile v0.151 — Decompile 1C managed Form.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью. [CmdletBinding(PositionalBinding=$false)] @@ -1493,8 +1493,13 @@ function Build-DLParameter { if ($titleNode) { $t = Get-LangText $titleNode if ($null -ne $t) { + # Сравнение байт в байт: эталон — компилятор, он пишет заголовок как есть. -eq + # регистронезависим, и заголовок, отличающийся от авто-вывода только регистром + # («Организации ВетИС» при авто «Организации ВЕТИС»), терялся молча. Даже -ceq мало: + # он культурный, мягкий перенос и NFD-разложение для него — ноль. Нужен Ordinal, + # он же и есть зеркало питоновского ==. $auto = Title-FromName -name $name - if (-not (($t -is [string]) -and ($t -eq $auto))) { $o['title'] = $t } + if (-not (($t -is [string]) -and [string]::Equals($t, $auto, [StringComparison]::Ordinal))) { $o['title'] = $t } } } # valueType @@ -2691,7 +2696,10 @@ if ($attrsNode) { if ($tNode) { $t = Get-LangTextWS $tNode # восстановление значимого пробела (whitespace-заголовок реквизита) if ($null -ne $t) { - if ($isMain -or -not ($t -is [string]) -or $t -ne (Title-FromName $ao['name'])) { $ao['title'] = $t } + # Ordinal, а не -ne/-ceq: заголовок опускаем только при ТОЧНОМ, побайтовом совпадении + # с авто-выводом — компилятор восстановит его как есть, значим и регистр, и мягкий + # перенос, и форма нормализации. + if ($isMain -or -not ($t -is [string]) -or -not [string]::Equals($t, (Title-FromName $ao['name']), [StringComparison]::Ordinal)) { $ao['title'] = $t } } } elseif (-not $isMain) { $ao['title'] = '' diff --git a/.claude/skills/form-decompile/scripts/form-decompile.py b/.claude/skills/form-decompile/scripts/form-decompile.py index 0b0e0089d..da93ba014 100644 --- a/.claude/skills/form-decompile/scripts/form-decompile.py +++ b/.claude/skills/form-decompile/scripts/form-decompile.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# form-decompile v0.150 — Decompile 1C managed Form.xml to JSON DSL (draft) +# form-decompile v0.151 — Decompile 1C managed Form.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью. # @@ -618,12 +618,6 @@ def _ps_truthy(v): return True -# Зеркало PowerShell -eq/-ne для строк: регистронезависимое сравнение (PS по умолчанию ignore-case). -# Нужно там, где сравниваются произвольно-регистровые строки (заголовок vs авто-вывод из имени). -def _ps_ieq(a, b): - return a.lower() == b.lower() - - # Зеркало PowerShell "$v" (строковая интерполяция): bool→True/False, float без хвостового .0, # $null→'', иначе str(). Используется везде, где канон делает "$value". def _ps_str(v): @@ -1689,8 +1683,12 @@ def build_dl_parameter(p_node): if title_node is not None: t = get_lang_text(title_node) if t is not None: + # Сравнение байт в байт (в ps1 — [string]::Equals(..., Ordinal)): эталон — компилятор, + # он пишет заголовок как есть. Регистронезависимое сравнение теряло заголовок, + # отличающийся от авто-вывода только регистром («Организации ВетИС» при авто + # «Организации ВЕТИС»). auto = title_from_name(name) - if not (isinstance(t, str) and _ps_ieq(t, auto)): + if not (isinstance(t, str) and t == auto): o['title'] = t vt_node = p_node.find('dcssch:valueType', NS) type_val = None @@ -3333,7 +3331,10 @@ def main(): if t_node is not None: t = get_lang_text_ws(t_node) if t is not None: - if is_main or not isinstance(t, str) or not _ps_ieq(t, title_from_name(ao['name'])): + # Заголовок опускаем только при ТОЧНОМ, побайтовом совпадении с авто-выводом + # (в ps1 — [string]::Equals(..., Ordinal)): компилятор восстановит его как есть, + # значим и регистр, и мягкий перенос, и форма нормализации. + if is_main or not isinstance(t, str) or t != title_from_name(ao['name']): ao['title'] = t elif not is_main: ao['title'] = '' diff --git a/tests/skills/cases/form-decompile/attribute-title-case.json b/tests/skills/cases/form-decompile/attribute-title-case.json new file mode 100644 index 000000000..455cf4247 --- /dev/null +++ b/tests/skills/cases/form-decompile/attribute-title-case.json @@ -0,0 +1,37 @@ +{ + "name": "Заголовок реквизита, отличающийся от авто-вывода только регистром или невидимым символом, не теряется", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { "type": "DataProcessor", "name": "Регистр" }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/DataProcessors/Регистр.xml", "-FormName": "Форма" } + }, + { + "script": "form-compile/scripts/form-compile", + "input": { + "title": "Регистр", + "elements": [{ "input": "Организации", "path": "ОрганизацииВЕТИС" }], + "attributes": [ + { "name": "Объект", "type": "DataProcessorObject.Регистр", "main": true }, + { "name": "ОрганизацииВЕТИС", "type": "string", "title": "Организации ВетИС" }, + { "name": "СуммаДокумента", "type": "string", "title": "Сумма­ документа" } + ] + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputPath": "{workDir}/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml" + } + } + ], + "params": { + "formPath": "DataProcessors/Регистр/Forms/Форма/Ext/Form.xml", + "outputPath": "draft.json" + }, + "expect": { + "files": ["draft.json"] + } +} diff --git a/tests/skills/cases/form-decompile/dl-parameter-title-case.json b/tests/skills/cases/form-decompile/dl-parameter-title-case.json new file mode 100644 index 000000000..258299db9 --- /dev/null +++ b/tests/skills/cases/form-decompile/dl-parameter-title-case.json @@ -0,0 +1,45 @@ +{ + "name": "Заголовок параметра динамического списка, отличающийся от авто-вывода только регистром, не теряется", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { "type": "DataProcessor", "name": "Регистр" }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/DataProcessors/Регистр.xml", "-FormName": "Форма" } + }, + { + "script": "form-compile/scripts/form-compile", + "input": { + "title": "Регистр", + "attributes": [ + { "name": "Объект", "type": "DataProcessorObject.Регистр", "main": true }, + { + "name": "Список", + "type": "DynamicList", + "settings": { + "query": "ВЫБРАТЬ 1 КАК Поле ГДЕ 1 = &ОрганизацииВЕТИС", + "keyType": "RowNumber", + "parameters": [ + { "name": "ОрганизацииВЕТИС", "title": "Организации ВетИС", "type": "string" } + ] + } + } + ] + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputPath": "{workDir}/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml" + } + } + ], + "params": { + "formPath": "DataProcessors/Регистр/Forms/Форма/Ext/Form.xml", + "outputPath": "draft.json" + }, + "expect": { + "files": ["draft.json"] + } +} diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Configuration.xml b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Configuration.xml new file mode 100644 index 000000000..f03cdbdb0 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Configuration.xml @@ -0,0 +1,252 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Регистр + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр.xml b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр.xml new file mode 100644 index 000000000..253f546ab --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + Регистр + + + ru + Регистр + + + + true + DataProcessor.Регистр.Form.Форма + + false + + + + +
Форма
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Ext/ManagerModule.bsl b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Ext/ManagerModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Ext/ObjectModule.bsl b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма.xml b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма.xml new file mode 100644 index 000000000..dffeea014 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма.xml @@ -0,0 +1,22 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml new file mode 100644 index 000000000..327b4f7f2 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml @@ -0,0 +1,56 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регистр</v8:content> + </v8:item> + + false + + + + ОрганизацииВЕТИС + + + + + + + + cfg:DataProcessorObject.Регистр + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Организации ВетИС</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сумма­ документа</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl new file mode 100644 index 000000000..8ead4cec0 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Ext/ClientApplicationInterface.xml b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Languages/Русский.xml b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/attribute-title-case/draft.json b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/draft.json new file mode 100644 index 000000000..0bd3737ae --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/attribute-title-case/draft.json @@ -0,0 +1,9 @@ +{ + "title": "Регистр", + "elements": [{ "input": "Организации", "path": "ОрганизацииВЕТИС" }], + "attributes": [ + { "name": "Объект", "type": "DataProcessorObject.Регистр", "main": true }, + { "name": "ОрганизацииВЕТИС", "type": "string", "title": "Организации ВетИС" }, + { "name": "СуммаДокумента", "type": "string", "title": "Сумма­ документа" } + ] +} \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Configuration.xml b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Configuration.xml new file mode 100644 index 000000000..f03cdbdb0 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Configuration.xml @@ -0,0 +1,252 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Регистр + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр.xml b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр.xml new file mode 100644 index 000000000..253f546ab --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + + Регистр + + + ru + Регистр + + + + true + DataProcessor.Регистр.Form.Форма + + false + + + + +
Форма
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Ext/ManagerModule.bsl b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Ext/ManagerModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Ext/ObjectModule.bsl b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма.xml b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма.xml new file mode 100644 index 000000000..dffeea014 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма.xml @@ -0,0 +1,22 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml new file mode 100644 index 000000000..2c4f8dcc3 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form.xml @@ -0,0 +1,70 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Регистр</v8:content> + </v8:item> + + false + + + + + cfg:DataProcessorObject.Регистр + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список</v8:content> + </v8:item> + + + cfg:DynamicList + + + true + true + ВЫБРАТЬ 1 КАК Поле ГДЕ 1 = &ОрганизацииВЕТИС + + ОрганизацииВЕТИС + + + ru + Организации ВетИС + + + + xs:string + + 0 + Variable + + + + true + + RowNumber + + + Normal + UUID-001 + + + Normal + UUID-002 + + + Normal + UUID-003 + + Normal + UUID-004 + + + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl new file mode 100644 index 000000000..8ead4cec0 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/DataProcessors/Регистр/Forms/Форма/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Ext/ClientApplicationInterface.xml b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Languages/Русский.xml b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/draft.json b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/draft.json new file mode 100644 index 000000000..08e03ce05 --- /dev/null +++ b/tests/skills/cases/form-decompile/snapshots/dl-parameter-title-case/draft.json @@ -0,0 +1,15 @@ +{ + "title": "Регистр", + "attributes": [ + { "name": "Объект", "type": "DataProcessorObject.Регистр", "main": true }, + { + "name": "Список", + "type": "DynamicList", + "settings": { + "keyType": "RowNumber", + "query": "ВЫБРАТЬ 1 КАК Поле ГДЕ 1 = &ОрганизацииВЕТИС", + "parameters": [{ "name": "ОрганизацииВЕТИС", "title": "Организации ВетИС", "type": "string" }] + } + } + ] +} \ No newline at end of file