From 8366dd49de2c486d43c8c093112eb268f3ddadea Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 14 Aug 2026 15:42:41 +0300 Subject: [PATCH] =?UTF-8?q?fix(cfe-validate):=20=D0=BA=D0=BE=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D1=8C=20=D0=BF=D1=83=D1=82=D0=B5=D0=B9=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=B2=D0=B8=D0=B7=D0=B8=D1=82=D0=B0=20=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проверки 12 () и 14 (пути против конфигурации- источника) искали пути регуляркой, зашитой на корень «Объект». Он такой только у формы объекта: у формы списка «Список», у формы записи регистра «Запись». На таких формах регулярка не совпадала, и обе проверки молча не срабатывали — валидатор рапортовал «чисто» на форме с висячим путём. Корень теперь берётся из основного реквизита: сначала из самой формы, затем из . Нет его нигде — путей с корнем не бывает, проверка пропускается. Имя подставляется и в регулярки, и в тексты сообщений: раньше в сообщении стояло «Объект.X» независимо от формы, что дезинформировало. Вместе с этим набор имён-кандидатов проверки 14 расширен с Attribute/ TabularSection до Dimension/Resource. Без этого замена корня превратила бы тихий пропуск в ложные ошибки на форме записи регистра, где дочерние объекты — измерения и ресурсы; отдельный кейс это фиксирует. Co-Authored-By: Claude Opus 5 (1M context) --- .../cfe-validate/scripts/cfe-validate.ps1 | 36 ++- .../cfe-validate/scripts/cfe-validate.py | 36 ++- .../cfe-validate/list-form-dangling-path.json | 32 +++ .../cfe-validate/register-record-paths.json | 37 +++ .../register-record-paths/Configuration.xml | 252 +++++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../Ext/Configuration.xml | 72 +++++ .../Ext/InformationRegisters/Настройка.xml | 65 +++++ .../Настройка/Forms/ФормаЗаписи.xml | 13 + .../Настройка/Forms/ФормаЗаписи/Ext/Form.xml | 47 ++++ .../Forms/ФормаЗаписи/Ext/Form/Module.bsl | 0 .../Ext/Languages/Русский.xml | 13 + .../Ext/Roles/Тест_ОсновнаяРоль.xml | 10 + .../InformationRegisters/Настройка.xml | 266 ++++++++++++++++++ .../Настройка/Ext/RecordSetModule.bsl | 0 .../Настройка/Forms/ФормаЗаписи.xml | 21 ++ .../Настройка/Forms/ФормаЗаписи/Ext/Form.xml | 24 ++ .../Forms/ФормаЗаписи/Ext/Form/Module.bsl | 19 ++ .../Languages/Русский.xml | 16 ++ 19 files changed, 960 insertions(+), 17 deletions(-) create mode 100644 tests/skills/cases/cfe-validate/list-form-dangling-path.json create mode 100644 tests/skills/cases/cfe-validate/register-record-paths.json create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Configuration.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Configuration.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Roles/Тест_ОсновнаяРоль.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Ext/RecordSetModule.bsl create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-validate/snapshots/register-record-paths/Languages/Русский.xml diff --git a/.claude/skills/cfe-validate/scripts/cfe-validate.ps1 b/.claude/skills/cfe-validate/scripts/cfe-validate.ps1 index f568ec31..5ca103c0 100644 --- a/.claude/skills/cfe-validate/scripts/cfe-validate.ps1 +++ b/.claude/skills/cfe-validate/scripts/cfe-validate.ps1 @@ -1,4 +1,4 @@ -# cfe-validate v1.9 — Validate 1C configuration extension structure (CFE) (полнота GeneratedType, ТЧ из AdditionalColumns, сверка путей с -ConfigPath) +# cfe-validate v1.10 — Validate 1C configuration extension structure (CFE) (полнота GeneratedType, ТЧ из AdditionalColumns, сверка путей с -ConfigPath) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -983,12 +983,22 @@ foreach ($bf in $script:borrowedFormsWithTree) { } } + # Корень путей формы — имя её основного реквизита: «Объект» только у формы объекта, у формы + # списка «Список», у формы записи регистра «Запись». С зашитым «Объект» обе проверки ниже на + # таких формах молча не срабатывали. Ищем сначала в самой формы, потом в . + $rootName = "" + $rootMatch = [regex]::Match($raw, '(?s)]*>(?:(?!).)*?true') + if ($rootMatch.Success) { $rootName = $rootMatch.Groups[1].Value } + # — доп. колонки табличной части, объявленные в самой форме. # Колонки есть, а самой ТЧ в расширении нет → платформа отвергает загрузку: «Неверный путь к # данным» плюс «Колонки не могут быть добавлены к реквизиту». $acTables = @{} - foreach ($m in [regex]::Matches($raw, ' — TabularSection.${tblName} not borrowed in extension" + Report-Error "12. ${ctx}: — TabularSection.${tblName} not borrowed in extension" $check12Ok = $false } } @@ -1062,6 +1072,11 @@ if (-not $script:stopped -and $script:borrowedFormsWithTree.Count -gt 0) { foreach ($bf in $script:borrowedFormsWithTree) { $raw = $bf.RawText $ctx = $bf.Context + # Корень путей — имя основного реквизита формы (см. проверку 12). Нет его ни в + # формы, ни в — путей с корнем не бывает, проверять нечего. + $rootMatch14 = [regex]::Match($raw, '(?s)]*>(?:(?!).)*?true') + if (-not $rootMatch14.Success) { continue } + $rootName = $rootMatch14.Groups[1].Value $ownerKey = ($ctx -split '\.Form\.')[0] $ownerParts = $ownerKey -split '\.', 2 if ($ownerParts.Count -lt 2) { continue } @@ -1090,7 +1105,9 @@ if (-not $script:stopped -and $script:borrowedFormsWithTree.Count -gt 0) { if ($srcChildObjects) { foreach ($sub in $srcChildObjects.ChildNodes) { if ($sub.NodeType -ne 'Element') { continue } - if ($sub.LocalName -notin @('Attribute','TabularSection')) { continue } + # У регистра дочерние объекты — Dimension/Resource, а не Attribute: без них замена + # корня превратила бы тихий пропуск в ложные ошибки на форме записи. + if ($sub.LocalName -notin @('Attribute','Dimension','Resource','TabularSection')) { continue } $nameNode = $sub.SelectSingleNode("*[local-name()='Properties']/*[local-name()='Name']") if (-not $nameNode) { continue } $subName = $nameNode.InnerText.Trim() @@ -1104,7 +1121,8 @@ if (-not $script:stopped -and $script:borrowedFormsWithTree.Count -gt 0) { } } # Плюс колонки, объявленные в самой форме через / - foreach ($acm in [regex]::Matches($raw, '(?s)(.*?)')) { + $rootPat14 = [regex]::Escape($rootName) + foreach ($acm in [regex]::Matches($raw, "(?s)(.*?)")) { $tbl = $acm.Groups[1].Value if (-not $srcTSColumns.ContainsKey($tbl)) { $srcTSColumns[$tbl] = @{} } foreach ($cm in [regex]::Matches($acm.Groups[2].Value, ']*>Объект\.([^<]+)')) { + foreach ($m in [regex]::Matches($raw, "<(?:\w+:)?\w*DataPath[^>]*>${rootPat14}\.([^<]+)")) { $segments = $m.Groups[1].Value -split '\.' $seg0 = $segments[0] $pathCheckCount++ if ($script:standardObjectFields -contains $seg0) { continue } if (-not $srcNames.ContainsKey($seg0)) { - $badPaths["Объект.${seg0}"] = "у ${ownerKey} нет такого реквизита или табличной части" + $badPaths["${rootName}.${seg0}"] = "у ${ownerKey} нет такого реквизита или табличной части" continue } # Второй сегмент проверяем только для табличных частей: у ссылочного реквизита @@ -1130,7 +1148,7 @@ if (-not $script:stopped -and $script:borrowedFormsWithTree.Count -gt 0) { # Итог колонки — псевдополе платформы: Total<Колонка> при живой колонке законен if ($seg1 -like "Total*" -and $srcTSColumns[$seg0].ContainsKey($seg1.Substring(5))) { continue } if (-not $srcTSColumns[$seg0].ContainsKey($seg1)) { - $badPaths["Объект.${seg0}.${seg1}"] = "у табличной части ${seg0} нет колонки ${seg1}, и формы её не объявляет" + $badPaths["${rootName}.${seg0}.${seg1}"] = "у табличной части ${seg0} нет колонки ${seg1}, и формы её не объявляет" } } foreach ($bad in ($badPaths.Keys | Sort-Object)) { diff --git a/.claude/skills/cfe-validate/scripts/cfe-validate.py b/.claude/skills/cfe-validate/scripts/cfe-validate.py index 89d0073c..27ae1876 100644 --- a/.claude/skills/cfe-validate/scripts/cfe-validate.py +++ b/.claude/skills/cfe-validate/scripts/cfe-validate.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# cfe-validate v1.9 — Validate 1C configuration extension XML structure (CFE) (полнота GeneratedType, ТЧ из AdditionalColumns, сверка путей с -ConfigPath) +# cfe-validate v1.10 — Validate 1C configuration extension XML structure (CFE) (полнота GeneratedType, ТЧ из AdditionalColumns, сверка путей с -ConfigPath) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills """Validates extension Configuration.xml: root, InternalInfo, extension properties, ChildObjects, borrowed objects.""" import sys, os, argparse, re @@ -128,6 +128,10 @@ GENERATED_TYPE_CATEGORIES = { # Стандартные реквизиты объектов: в ChildObjects их нет, но пути Объект.<Стандартный> законны. # Имена зависят от варианта встроенного языка, поэтому держим оба написания. +# Основной реквизит формы: с true внутри +MAIN_ATTR_RE = re.compile( + r']*>(?:(?!).)*?true', re.DOTALL) + STANDARD_OBJECT_FIELDS = { 'Code', 'Description', 'Ref', 'Parent', 'Owner', 'DeletionMark', 'Predefined', 'IsFolder', 'LineNumber', 'Number', 'Date', 'Posted', 'PredefinedDataName', 'RegisterRecords', 'DataVersion', 'RowsCount', @@ -969,14 +973,21 @@ def main(): # Соседние проверки этого блока эвристичны (имя стиля добывается регуляркой), поэтому там # предупреждение. Здесь сигнал точный — имя ТЧ берётся из атрибута, — а последствие жёсткое, # поэтому ошибка. - ac_tables = set(re.findall(r' формы, потом в . + root_match = MAIN_ATTR_RE.search(raw) + root_name = root_match.group(1) if root_match else "" + ac_tables = set() + if root_name: + ac_tables = set(re.findall(r' — TabularSection.{tbl_name} not borrowed in extension') + r.error(f'12. {ctx}: — TabularSection.{tbl_name} not borrowed in extension') check12_ok = False for mi in missing_items: @@ -1034,6 +1045,12 @@ def main(): for bf in borrowed_forms_with_tree: raw = bf['RawText'] ctx = bf['Context'] + # Корень путей — имя основного реквизита формы (см. проверку 12). Нет его ни в + # формы, ни в — путей с корнем не бывает, проверять нечего. + root_match14 = MAIN_ATTR_RE.search(raw) + if root_match14 is None: + continue + root_name14 = root_match14.group(1) owner_key = ctx.split('.Form.')[0] owner_parts = owner_key.split('.', 1) if len(owner_parts) < 2: @@ -1064,7 +1081,9 @@ def main(): if not isinstance(sub.tag, str): continue sub_ln = etree.QName(sub.tag).localname - if sub_ln not in ('Attribute', 'TabularSection'): + # У регистра дочерние объекты — Dimension/Resource, а не Attribute: без них + # замена корня превратила бы тихий пропуск в ложные ошибки на форме записи. + if sub_ln not in ('Attribute', 'Dimension', 'Resource', 'TabularSection'): continue name_el = sub.find(f'{{{MD}}}Properties/{{{MD}}}Name') if name_el is None or not name_el.text: @@ -1079,21 +1098,22 @@ def main(): cols.add(col_name.text.strip()) src_ts_columns[sub_name] = cols # Плюс колонки, объявленные в самой форме через / - for acm in re.finditer(r'(.*?)', raw, re.DOTALL): + root_pat14 = re.escape(root_name14) + for acm in re.finditer(r'(.*?)', raw, re.DOTALL): tbl = acm.group(1) cols = src_ts_columns.setdefault(tbl, set()) for cm in re.finditer(r']*>Объект\.([^<]+)', raw): + for m in re.finditer(r'<(?:\w+:)?\w*DataPath[^>]*>' + root_pat14 + r'\.([^<]+)', raw): segments = m.group(1).split('.') seg0 = segments[0] path_check_count += 1 if seg0 in STANDARD_OBJECT_FIELDS: continue if seg0 not in src_names: - bad_paths[f'Объект.{seg0}'] = f'у {owner_key} нет такого реквизита или табличной части' + bad_paths[f'{root_name14}.{seg0}'] = f'у {owner_key} нет такого реквизита или табличной части' continue # Второй сегмент проверяем только для табличных частей: у ссылочного реквизита # он ведёт в чужой объект, и это уже другая проверка. @@ -1106,7 +1126,7 @@ def main(): if seg1.startswith('Total') and seg1[5:] in src_ts_columns[seg0]: continue if seg1 not in src_ts_columns[seg0]: - bad_paths[f'Объект.{seg0}.{seg1}'] = f'у табличной части {seg0} нет колонки {seg1}, и формы её не объявляет' + bad_paths[f'{root_name14}.{seg0}.{seg1}'] = f'у табличной части {seg0} нет колонки {seg1}, и формы её не объявляет' for bad in sorted(bad_paths): r.error(f"14. {ctx}: путь '{bad}' — {bad_paths[bad]}") diff --git a/tests/skills/cases/cfe-validate/list-form-dangling-path.json b/tests/skills/cases/cfe-validate/list-form-dangling-path.json new file mode 100644 index 00000000..f70fe0f3 --- /dev/null +++ b/tests/skills/cases/cfe-validate/list-form-dangling-path.json @@ -0,0 +1,32 @@ +{ + "name": "С -ConfigPath ловится висячий путь формы списка (Список.НетТакогоРеквизита)", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { "type": "Document", "name": "Расход", "attributes": [ "Склад: String(50)" ] }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/Documents/Расход.xml", "-FormName": "ФормаСписка" } + }, + { + "writeFile": { + "path": "Documents/Расход/Forms/ФормаСписка/Ext/Form.xml", + "content": "\n
\n\tfalse\n\t\n\t\n\t\t\n\t\t\tСписок\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tСписок.Склад\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tСписок.НетТакогоРеквизита\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t\tcfg:DynamicList\n\t\t\t\n\t\t\ttrue\n\t\t\t\n\t\t\t\tfalse\n\t\t\t\tDocument.Расход\n\t\t\t\n\t\t\n\t\n" + } + }, + { + "script": "cfe-init/scripts/cfe-init", + "args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" } + }, + { + "script": "cfe-borrow/scripts/cfe-borrow", + "args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "Document.Расход.Form.ФормаСписка", "-BorrowMainAttribute": "Form" } + } + ], + "params": { "extensionPath": "ext" }, + "args_extra": ["-ConfigPath", "{workDir}"], + "expectError": true, + "expect": { "stdoutContains": "Список.НетТакогоРеквизита" } +} diff --git a/tests/skills/cases/cfe-validate/register-record-paths.json b/tests/skills/cases/cfe-validate/register-record-paths.json new file mode 100644 index 00000000..6465ddd1 --- /dev/null +++ b/tests/skills/cases/cfe-validate/register-record-paths.json @@ -0,0 +1,37 @@ +{ + "name": "Пути Запись.* формы записи регистра не считаются висячими (измерение/ресурс — тоже дочерние объекты)", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "InformationRegister", "name": "Настройка", + "dimensions": [ "Организация: String(50) | master" ], + "resources": [ "Лимит: Number(15,2)" ] + }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + }, + { + "script": "form-add/scripts/form-add", + "args": { "-ObjectPath": "{workDir}/InformationRegisters/Настройка.xml", "-FormName": "ФормаЗаписи" } + }, + { + "writeFile": { + "path": "InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml", + "content": "\n
\n\tfalse\n\t\n\t\n\t\t\n\t\t\tЗапись.Организация\n\t\t\t\n\t\t\n\t\t\n\t\t\tЗапись.Лимит\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\tcfg:InformationRegisterRecordManager.Настройка\n\t\t\t\n\t\t\ttrue\n\t\t\ttrue\n\t\t\n\t\n" + } + }, + { + "script": "cfe-init/scripts/cfe-init", + "args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" } + }, + { + "script": "cfe-borrow/scripts/cfe-borrow", + "args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "InformationRegister.Настройка.Form.ФормаЗаписи", "-BorrowMainAttribute": "Form" } + } + ], + "params": { "extensionPath": "ext" }, + "args_extra": ["-ConfigPath", "{workDir}"], + "expect": { + "stdoutNotContains": ["Запись.Организация", "Запись.Лимит"] + } +} diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Configuration.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Configuration.xml new file mode 100644 index 00000000..f3a10259 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/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/cfe-validate/snapshots/register-record-paths/Ext/ClientApplicationInterface.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/ClientApplicationInterface.xml new file mode 100644 index 00000000..3c1161b2 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Configuration.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Configuration.xml new file mode 100644 index 00000000..34a78b2a --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Configuration.xml @@ -0,0 +1,72 @@ + + + + + + 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 + + + + Adopted + Тест + + + ru + Тест + + + + Customization + true + Тест_ + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + Role.Тест_ОсновнаяРоль + + + + Language.Русский + + + + + + TaxiEnableVersion8_2 + + + Русский + Тест_ОсновнаяРоль + Настройка + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка.xml new file mode 100644 index 00000000..aaa8b54c --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка.xml @@ -0,0 +1,65 @@ + + + + + + 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 + + + + Adopted + Настройка + + UUID-016 + + +
ФормаЗаписи
+ + + + + Adopted + Лимит + + UUID-018 + xs:decimal152Any + + + + + + Adopted + Организация + + UUID-020 + xs:string50Variable + + +
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml new file mode 100644 index 00000000..052384b6 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml @@ -0,0 +1,13 @@ + + +
+ + + Adopted + ФормаЗаписи + + UUID-002 + Managed + + +
\ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml new file mode 100644 index 00000000..1f44a180 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml @@ -0,0 +1,47 @@ + +
+ false + + + + Запись.Организация + + + + Запись.Лимит + + + + + + + cfg:InformationRegisterRecordManager.Настройка + + true + true + + + + false + + + + Запись.Организация + + + + Запись.Лимит + + + + + + + cfg:InformationRegisterRecordManager.Настройка + + true + true + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Languages/Русский.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Languages/Русский.xml new file mode 100644 index 00000000..c21624f5 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Languages/Русский.xml @@ -0,0 +1,13 @@ + + + + + + Adopted + Русский + + UUID-002 + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Roles/Тест_ОсновнаяРоль.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Roles/Тест_ОсновнаяРоль.xml new file mode 100644 index 00000000..ec9dfbaf --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Ext/Roles/Тест_ОсновнаяРоль.xml @@ -0,0 +1,10 @@ + + + + + Тест_ОсновнаяРоль + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка.xml new file mode 100644 index 00000000..cf7758eb --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка.xml @@ -0,0 +1,266 @@ + + + + + + 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 + + + + Настройка + + + ru + Настройка + + + + true + InDialog + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + Nonperiodical + Independent + false + false + Managed + Use + false + false + + + + + + DontUse + false + false + + + + + Лимит + + + ru + Лимит + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Организация + + + ru + Организация + + + + + xs:string + + 50 + Variable + + + false + + + + false + + false + false + + + true + + DontCheck + Items + + + Auto + Auto + + + Auto + true + false + false + DontIndex + Use + Use + + +
ФормаЗаписи
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Ext/RecordSetModule.bsl b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Ext/RecordSetModule.bsl new file mode 100644 index 00000000..e69de29b diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml new file mode 100644 index 00000000..94bc565e --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЗаписи + + + ru + ФормаЗаписи + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml new file mode 100644 index 00000000..bf9be6b3 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form.xml @@ -0,0 +1,24 @@ + +
+ false + + + + Запись.Организация + + + + Запись.Лимит + + + + + + + cfg:InformationRegisterRecordManager.Настройка + + true + true + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl new file mode 100644 index 00000000..8ead4cec --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/InformationRegisters/Настройка/Forms/ФормаЗаписи/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Languages/Русский.xml b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Languages/Русский.xml new file mode 100644 index 00000000..37c60d78 --- /dev/null +++ b/tests/skills/cases/cfe-validate/snapshots/register-record-paths/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file