From c686fc23c8d5ec8875c7d2eb129731c7c6403910 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Wed, 30 Sep 2026 18:53:14 +0300 Subject: [PATCH] =?UTF-8?q?fix(meta-edit,meta-validate):=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4/=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=20=D0=BD=D1=83=D0=BB?= =?UTF-8?q?=D0=B5=D0=B2=D0=BE=D0=B9=20=D0=B4=D0=BB=D0=B8=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=B2=D0=BE=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B5=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Платформа отвергает загрузку, если поле ввода по строке — код или номер нулевой длины: «Указано неверное поле для ввода по строке». - meta-edit: CodeLength/NumberLength = 0 убирает StandardAttribute.Code/ Number из InputByString вслед за длиной. - meta-validate: проверка 10 — такая пара (длина 0 + поле во вводе по строке) — ошибка; ловит и ручную правку. - meta-edit (PS): очищенный список-свойство оставался , хотя py и платформа пишут — теперь самозакрывающийся. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_018dc2yLQfw6wppbopM1Y4Ps --- .../skills/meta-edit/scripts/meta-edit.ps1 | 24 +- .claude/skills/meta-edit/scripts/meta-edit.py | 14 +- .../meta-validate/scripts/meta-validate.ps1 | 17 +- .../meta-validate/scripts/meta-validate.py | 16 +- .../meta-edit/modify-code-length-zero.json | 40 +++ .../meta-edit/modify-number-length-zero.json | 36 +++ .../Catalogs/Товары.xml | 90 +++++++ .../Catalogs/Товары/Ext/ObjectModule.bsl | 0 .../modify-code-length-zero/Configuration.xml | 252 +++++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../Languages/Русский.xml | 16 ++ .../Configuration.xml | 252 +++++++++++++++++ .../Documents/Заказ.xml | 80 ++++++ .../Documents/Заказ/Ext/ObjectModule.bsl | 0 .../Ext/ClientApplicationInterface.xml | 18 ++ .../Languages/Русский.xml | 16 ++ .../error-code-zero-in-input-by-string.json | 13 + .../Catalogs/Товары.xml | 137 ++++++++++ .../Configuration.xml | 255 ++++++++++++++++++ 19 files changed, 1289 insertions(+), 5 deletions(-) create mode 100644 tests/skills/cases/meta-edit/modify-code-length-zero.json create mode 100644 tests/skills/cases/meta-edit/modify-number-length-zero.json create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Configuration.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Languages/Русский.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Configuration.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Languages/Русский.xml create mode 100644 tests/skills/cases/meta-validate/error-code-zero-in-input-by-string.json create mode 100644 tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Catalogs/Товары.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Configuration.xml diff --git a/.claude/skills/meta-edit/scripts/meta-edit.ps1 b/.claude/skills/meta-edit/scripts/meta-edit.ps1 index 21fc5609b..a4572a8fb 100644 --- a/.claude/skills/meta-edit/scripts/meta-edit.ps1 +++ b/.claude/skills/meta-edit/scripts/meta-edit.ps1 @@ -1,4 +1,4 @@ -# meta-edit v1.60 — Edit existing 1C metadata object XML +# meta-edit v1.61 — Edit existing 1C metadata object XML # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills [CmdletBinding(PositionalBinding=$false)] param( @@ -2744,6 +2744,24 @@ function Modify-Properties($propsDef) { $propEl.InnerText = $valueStr Info "Modified property: $propName = $valueStr" $script:modifyCount++ + + # Код/номер нулевой длины не может стоять во вводе по строке: платформа отвергает загрузку — + # «Указано неверное поле для ввода по строке: Код/Номер». Убираем поле вслед за длиной. + if (($propName -ceq 'CodeLength' -or $propName -ceq 'NumberLength') -and $valueStr.Trim() -eq '0') { + $stdAttr = if ($propName -ceq 'CodeLength') { 'Code' } else { 'Number' } + $ibEl = $null + foreach ($child in $script:propertiesEl.ChildNodes) { + if ($child.NodeType -eq 'Element' -and $child.LocalName -eq 'InputByString') { $ibEl = $child; break } + } + if ($ibEl) { + $cur = @($ibEl.ChildNodes | Where-Object { $_.NodeType -eq 'Element' } | ForEach-Object { $_.InnerText.Trim() }) + $keep = @($cur | Where-Object { $_ -cnotmatch "\.StandardAttribute\.$stdAttr$" }) + if ($keep.Count -lt $cur.Count) { + Set-ComplexProperty "InputByString" $keep + Info "InputByString: removed StandardAttribute.$stdAttr ($propName=0 — a zero-length field cannot be an input-by-string field)" + } + } + } } } @@ -3734,7 +3752,9 @@ function Set-ComplexProperty([string]$propertyName, [string[]]$values) { } if ($values.Count -eq 0) { - # Leave self-closing + # Самозакрывающийся, как пишет платформа (и py-порт): после удаления детей XmlElement + # остаётся в форме , пока не выставить IsEmpty + $propEl.IsEmpty = $true Info "Cleared $propertyName" $script:modifyCount++ return diff --git a/.claude/skills/meta-edit/scripts/meta-edit.py b/.claude/skills/meta-edit/scripts/meta-edit.py index 0b722b330..632ba5ec0 100644 --- a/.claude/skills/meta-edit/scripts/meta-edit.py +++ b/.claude/skills/meta-edit/scripts/meta-edit.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# meta-edit v1.60 — Edit existing 1C metadata object XML +# meta-edit v1.61 — Edit existing 1C metadata object XML # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -2652,6 +2652,18 @@ def modify_properties(props_def): info(f"Modified property: {prop_name} = {value_str}") modify_count += 1 + # Код/номер нулевой длины не может стоять во вводе по строке: платформа отвергает загрузку — + # «Указано неверное поле для ввода по строке: Код/Номер». Убираем поле вслед за длиной. + if prop_name in ('CodeLength', 'NumberLength') and value_str.strip() == '0': + std_attr = 'Code' if prop_name == 'CodeLength' else 'Number' + ib_el = next((c for c in properties_el if isinstance(c.tag, str) and localname(c) == 'InputByString'), None) + if ib_el is not None: + cur = [(c.text or '').strip() for c in ib_el if isinstance(c.tag, str)] + keep = [v for v in cur if not v.endswith(f'.StandardAttribute.{std_attr}')] + if len(keep) < len(cur): + set_complex_property('InputByString', keep) + info(f"InputByString: removed StandardAttribute.{std_attr} ({prop_name}=0 — a zero-length field cannot be an input-by-string field)") + def modify_child_elements(modify_def, child_type): global add_count, remove_count, modify_count, child_objects_el diff --git a/.claude/skills/meta-validate/scripts/meta-validate.ps1 b/.claude/skills/meta-validate/scripts/meta-validate.ps1 index 913936dd8..9ac90bac4 100644 --- a/.claude/skills/meta-validate/scripts/meta-validate.ps1 +++ b/.claude/skills/meta-validate/scripts/meta-validate.ps1 @@ -1,4 +1,4 @@ -# meta-validate v1.33 — Validate 1C metadata object structure +# meta-validate v1.34 — Validate 1C metadata object structure # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills [CmdletBinding(PositionalBinding=$false)] param( @@ -1189,6 +1189,21 @@ if ($propsNode) { $check10Issues++ } + # Код/номер нулевой длины во вводе по строке: платформа отвергает загрузку — «Указано неверное + # поле для ввода по строке: Код/Номер» (8.3.24, 8.5.1). Бывает после правки длины в 0 без чистки + # InputByString (meta-edit так больше не делает, но ручную правку это не страхует). + $ibsFields = @($propsNode.SelectNodes("md:InputByString/xr:Field", $ns) | ForEach-Object { $_.InnerText.Trim() }) + foreach ($pair in @(@("CodeLength", "Code"), @("NumberLength", "Number"))) { + $lenNode = $propsNode.SelectSingleNode("md:$($pair[0])", $ns) + if (-not $lenNode -or $lenNode.InnerText.Trim() -ne "0") { continue } + $hit = $ibsFields | Where-Object { $_ -cmatch "\.StandardAttribute\.$($pair[1])$" } | Select-Object -First 1 + if ($hit) { + Report-Error "10. InputByString contains '$hit' but $($pair[0])=0 — the platform rejects it (invalid input-by-string field)" + $check10Ok = $false + $check10Issues++ + } + } + # CommonModule: no context enabled if ($mdType -eq "CommonModule") { $contexts = @("Server","ClientManagedApplication","ClientOrdinaryApplication","ExternalConnection","ServerCall","Global") diff --git a/.claude/skills/meta-validate/scripts/meta-validate.py b/.claude/skills/meta-validate/scripts/meta-validate.py index ad66703c1..4d144691a 100644 --- a/.claude/skills/meta-validate/scripts/meta-validate.py +++ b/.claude/skills/meta-validate/scripts/meta-validate.py @@ -1,4 +1,4 @@ -# meta-validate v1.33 — Validate 1C metadata object structure (Python port) +# meta-validate v1.34 — Validate 1C metadata object structure (Python port) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import os @@ -1195,6 +1195,20 @@ if props_node is not None: report_warn(f"10. HierarchyType='{inner_text(hierarchy_type)}' but Hierarchical=false") check10_issues += 1 + # Код/номер нулевой длины во вводе по строке: платформа отвергает загрузку — «Указано неверное + # поле для ввода по строке: Код/Номер» (8.3.24, 8.5.1). Бывает после правки длины в 0 без чистки + # InputByString (meta-edit так больше не делает, но ручную правку это не страхует). + ibs_fields = [inner_text(f).strip() for f in find_all(props_node, "md:InputByString/xr:Field")] + for len_prop, std_attr in (("CodeLength", "Code"), ("NumberLength", "Number")): + len_node = find(props_node, f"md:{len_prop}") + if len_node is None or inner_text(len_node).strip() != "0": + continue + hit = next((f for f in ibs_fields if f.endswith(f".StandardAttribute.{std_attr}")), None) + if hit: + report_error(f"10. InputByString contains '{hit}' but {len_prop}=0 — the platform rejects it (invalid input-by-string field)") + check10_ok = False + check10_issues += 1 + # CommonModule: no context enabled if md_type == "CommonModule": contexts = ("Server", "ClientManagedApplication", "ClientOrdinaryApplication", diff --git a/tests/skills/cases/meta-edit/modify-code-length-zero.json b/tests/skills/cases/meta-edit/modify-code-length-zero.json new file mode 100644 index 000000000..70697d2dc --- /dev/null +++ b/tests/skills/cases/meta-edit/modify-code-length-zero.json @@ -0,0 +1,40 @@ +{ + "name": "CodeLength=0 — код убирается из ввода по строке (иначе платформа отвергает)", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Товары" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + } + ], + "params": { + "objectPath": "Catalogs/Товары" + }, + "input": { + "modify": { + "properties": { + "CodeLength": 0 + } + } + }, + "expect": { + "stdoutContains": "InputByString: removed StandardAttribute.Code", + "fileContains": { + "file": "Catalogs/Товары.xml", + "text": [ + "0", + "Catalog.Товары.StandardAttribute.Description" + ] + }, + "fileNotContains": { + "file": "Catalogs/Товары.xml", + "text": "Catalog.Товары.StandardAttribute.Code" + } + } +} diff --git a/tests/skills/cases/meta-edit/modify-number-length-zero.json b/tests/skills/cases/meta-edit/modify-number-length-zero.json new file mode 100644 index 000000000..495698581 --- /dev/null +++ b/tests/skills/cases/meta-edit/modify-number-length-zero.json @@ -0,0 +1,36 @@ +{ + "name": "NumberLength=0 у документа — номер убирается из ввода по строке, список становится пустым", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Document", + "name": "Заказ" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + } + ], + "params": { + "objectPath": "Documents/Заказ" + }, + "input": { + "modify": { + "properties": { + "NumberLength": 0 + } + } + }, + "expect": { + "stdoutContains": "InputByString: removed StandardAttribute.Number", + "fileContains": { + "file": "Documents/Заказ.xml", + "text": [ + "0", + "" + ] + } + } +} diff --git a/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары.xml b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары.xml new file mode 100644 index 000000000..1f6291fe6 --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары.xml @@ -0,0 +1,90 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Товары + + + ru + Товары + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 0 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Товары.StandardAttribute.Description + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары/Ext/ObjectModule.bsl b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Catalogs/Товары/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Configuration.xml b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Configuration.xml new file mode 100644 index 000000000..e67cf3a1b --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/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/meta-edit/snapshots/modify-code-length-zero/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Languages/Русский.xml b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-code-length-zero/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Configuration.xml b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Configuration.xml new file mode 100644 index 000000000..920ee637e --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/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/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ.xml b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ.xml new file mode 100644 index 000000000..994b24c10 --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ.xml @@ -0,0 +1,80 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Заказ + + + ru + Заказ + + + + true + + String + 0 + Variable + Year + true + true + + + + Use + Begin + DontUse + Directly + + + + + + + Allow + Deny + AutoDelete + WriteSelected + AutoFill + + true + true + false + + Managed + Use + + + + + + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ/Ext/ObjectModule.bsl b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Documents/Заказ/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Languages/Русский.xml b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/meta-edit/snapshots/modify-number-length-zero/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/error-code-zero-in-input-by-string.json b/tests/skills/cases/meta-validate/error-code-zero-in-input-by-string.json new file mode 100644 index 000000000..cb803d860 --- /dev/null +++ b/tests/skills/cases/meta-validate/error-code-zero-in-input-by-string.json @@ -0,0 +1,13 @@ +{ + "name": "CodeLength=0, а код во вводе по строке — ошибка: платформа отвергает загрузку", + "setup": "fixture:catalog-code-zero-in-input", + "params": { + "objectPath": "Catalogs/Товары.xml" + }, + "expectError": true, + "noSnapshot": "фикстура статична, meta-validate только читает и печатает — эталон зафиксировал бы саму фикстуру; проверяется stdout", + "skipPlatformVerify": "фикстура намеренно не загружается — это и проверяется", + "expect": { + "stdoutContains": "InputByString contains 'Catalog.Товары.StandardAttribute.Code' but CodeLength=0" + } +} diff --git a/tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Catalogs/Товары.xml b/tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Catalogs/Товары.xml new file mode 100644 index 000000000..9c0d48b1b --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Catalogs/Товары.xml @@ -0,0 +1,137 @@ + + + + + + f0dd2ce6-8321-4489-840a-b5615ea1d7a1 + 86999ba3-73a7-4e2b-9bce-e75a8e2fa38a + + + f6f08879-1047-4c24-9ce9-56539b02d53c + c6761365-0f6c-45a2-9947-623385b10606 + + + 3c849226-634d-47e0-807d-2762fe42768f + fb86f429-28c5-46d6-8d83-57d40dd4bb5e + + + dd637eef-d338-4e3b-9132-21c292f82794 + d75ccf09-0d3e-4a96-acce-d7750d0447ae + + + 8847e348-c5d1-4f21-b7fd-57775f0e2cc4 + 1066182c-427e-4ad8-82f2-8d1e2dcd9198 + + + + Товары + + + ru + Товары + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 0 + 25 + String + Variable + WholeCatalog + false + true + AsCode + + Auto + InDialog + false + BothWays + + Catalog.Товары.StandardAttribute.Description + Catalog.Товары.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + + Цена + + + ru + Цена + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Configuration.xml b/tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Configuration.xml new file mode 100644 index 000000000..c4c94f599 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/catalog-code-zero-in-input/Configuration.xml @@ -0,0 +1,255 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + d78171cf-a8ca-49ac-bcac-def445364157 + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + ddc659d0-00d7-4eea-8e0a-50b00a0a02dc + + + e3687481-0a87-462c-a166-9f34594f9bba + 485bc8a6-ceda-4e2c-a265-3ee199ebb864 + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + 0e6db8dc-07f1-448b-ab37-739da007d9cb + + + 51f2d5d8-ea4d-4064-8892-82951750031e + c1699f7d-d066-4f5c-96df-354add9e9fd7 + + + e68182ea-4237-4383-967f-90c1e3370bc7 + f93dc070-3289-4b6d-923b-0eeb915adc10 + + + fb282519-d103-4dd3-bc12-cb271d631dfc + 33dec689-c459-4a0f-bc81-a8b37f658b79 + + + + 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