From 89ce1af9fad1cca94560b120a2e72e0f1641e63d Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 6 Sep 2026 15:35:56 +0300 Subject: [PATCH] =?UTF-8?q?feat(meta-validate):=20=D0=BF=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=BA=D0=B0=20=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D1=82=D0=B0=D0=B1?= =?UTF-8?q?=D0=BB=D0=B8=D1=86=D1=8B=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD=D0=B5?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B8=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Свойства таблицы ссылаются на её же поля шестичастным путём (ExternalDataSource.И.Table.Т.Field.П). Опечатка в имени поля даёт «Неизвестный объект метаданных» при загрузке, а глазами в таком пути её не видно. Проверка 21 разбирает форму пути, требует, чтобы таблица в ссылке была той же самой, и чтобы поле существовало — в сообщении перечисляются имеющиеся поля. Отдельно: таблица без ключевых полей даёт предупреждение, а не ошибку. Загрузку XML такой таблицы платформа принимает молча (измерено на 8.3.24.1691), Конфигуратор интерактивно требует ключ, а рабочие конфигурации без ключей существуют — значит это повод предупредить, а не отвергнуть. Закрыты последние пункты плана: раздел про внешние источники в docs/meta-dsl-spec.md (формой и связями с общими конвенциями, без дублирования таблицы свойств — она живёт в reference навыка) и кейсы meta-validate, включая негативный. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi --- .../meta-validate/scripts/meta-validate.ps1 | 56 +++- .../meta-validate/scripts/meta-validate.py | 44 ++- docs/meta-dsl-spec.md | 30 +++ .../cases/meta-validate/eds-table-no-key.json | 46 ++++ .../cases/meta-validate/eds-table-refs.json | 45 ++++ .../error-eds-bad-field-ref.json | 27 ++ .../eds-table-no-key/Configuration.xml | 252 ++++++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../ExternalDataSources/PG.xml | 34 +++ .../ExternalDataSources/PG/Tables/prices.xml | 170 ++++++++++++ .../PG/Tables/products.xml | 175 ++++++++++++ .../eds-table-no-key/Languages/Русский.xml | 16 ++ .../eds-table-refs/Configuration.xml | 252 ++++++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../eds-table-refs/ExternalDataSources/PG.xml | 34 +++ .../ExternalDataSources/PG/Tables/prices.xml | 170 ++++++++++++ .../PG/Tables/products.xml | 175 ++++++++++++ .../eds-table-refs/Languages/Русский.xml | 16 ++ 18 files changed, 1576 insertions(+), 2 deletions(-) create mode 100644 tests/skills/cases/meta-validate/eds-table-no-key.json create mode 100644 tests/skills/cases/meta-validate/eds-table-refs.json create mode 100644 tests/skills/cases/meta-validate/error-eds-bad-field-ref.json create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Configuration.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/prices.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/products.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Languages/Русский.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-refs/Configuration.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-refs/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/prices.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/products.xml create mode 100644 tests/skills/cases/meta-validate/snapshots/eds-table-refs/Languages/Русский.xml diff --git a/.claude/skills/meta-validate/scripts/meta-validate.ps1 b/.claude/skills/meta-validate/scripts/meta-validate.ps1 index 0a9adff47..2d30d321a 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.26 — Validate 1C metadata object structure +# meta-validate v1.27 — Validate 1C metadata object structure # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills [CmdletBinding(PositionalBinding=$false)] param( @@ -1836,6 +1836,60 @@ if (-not $isAdopted) { } } +# --- Check 21: таблица внешнего источника — ссылки на поля и наличие ключа --- +# Свойства таблицы ссылаются на её же поля полным путём. Опечатка в имени поля даёт +# «Неизвестный объект метаданных» при загрузке, а найти её глазами в шестичастном пути трудно. +if ($mdType -eq "Table") { + $fieldNames = @{} + if ($childObjNode) { + foreach ($f in $childObjNode.SelectNodes("md:Field/md:Properties/md:Name", $ns)) { + $fieldNames[$f.InnerText] = $true + } + } + $edsRefsChecked = 0 + $edsRefsBad = $false + foreach ($spec in @( + @("KeyFields", "xr:Field"), @("InputByString", "xr:Field"), @("DataLockFields", "xr:Field"), + @("PresentationField", $null), @("ParentField", $null), @("DataVersionField", $null))) { + $tag = $spec[0] + $refs = @() + if ($spec[1]) { + foreach ($n in $propsNode.SelectNodes("md:$tag/$($spec[1])", $ns)) { $refs += $n.InnerText } + } else { + $n = $propsNode.SelectSingleNode("md:$tag", $ns) + if ($n -and $n.InnerText) { $refs += $n.InnerText } + } + foreach ($ref in $refs) { + $edsRefsChecked++ + $parts = $ref -split '\.' + # Ожидается ExternalDataSource.<Источник>.Table.<Таблица>.Field.<Поле> + if ($parts.Count -ne 6 -or $parts[0] -ne "ExternalDataSource" -or $parts[2] -ne "Table" -or $parts[4] -ne "Field") { + Report-Error "21. $tag '$ref' — ожидается ExternalDataSource.<Источник>.Table.<Таблица>.Field.<Поле>" + $edsRefsBad = $true + continue + } + if ($parts[3] -ne $objName) { + Report-Error "21. $tag '$ref' — ссылка на поле ЧУЖОЙ таблицы (эта: $objName)" + $edsRefsBad = $true + continue + } + if (-not $fieldNames.ContainsKey($parts[5])) { + $known = if ($fieldNames.Count -gt 0) { ($fieldNames.Keys | Sort-Object) -join ", " } else { "полей нет" } + Report-Error "21. $tag '$ref' — поля '$($parts[5])' нет в таблице (есть: $known)" + $edsRefsBad = $true + } + } + } + if ($edsRefsChecked -gt 0 -and -not $edsRefsBad) { Report-OK "21. Field refs: $edsRefsChecked resolved" } + + # Ключ: загрузка XML таблицу без ключа принимает (проверено на платформе), а Конфигуратор + # интерактивно требует. Отсюда предупреждение, а не ошибка: рабочие конфигурации без ключа есть. + $keyNodes = @($propsNode.SelectNodes("md:KeyFields/xr:Field", $ns)) + if ($keyNodes.Count -eq 0) { + Report-Warn "21. KeyFields пуст — платформа такую таблицу загрузит, но форма записи и набор записей будут недоступны" + } +} + # --- Final output --- & $finalize diff --git a/.claude/skills/meta-validate/scripts/meta-validate.py b/.claude/skills/meta-validate/scripts/meta-validate.py index f012c82d9..91ff9f5a2 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.26 — Validate 1C metadata object structure (Python port) +# meta-validate v1.27 — Validate 1C metadata object structure (Python port) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import os @@ -1778,6 +1778,48 @@ if not is_adopted: if form_refs_checked > 0 and not form_ref_bad: report_ok(f"20. Form refs: {form_refs_checked} resolved") +# ── Check 21: таблица внешнего источника — ссылки на поля и наличие ключа ── +# Свойства таблицы ссылаются на её же поля полным путём. Опечатка в имени поля даёт +# «Неизвестный объект метаданных» при загрузке, а найти её глазами в шестичастном пути трудно. +if md_type == "Table": + field_names = set() + if child_obj_node is not None: + for f in find_all(child_obj_node, "md:Field/md:Properties/md:Name"): + field_names.add(inner_text(f)) + eds_refs_checked = 0 + eds_refs_bad = False + for tag, is_list in (("KeyFields", True), ("InputByString", True), ("DataLockFields", True), + ("PresentationField", False), ("ParentField", False), ("DataVersionField", False)): + if is_list: + refs = [inner_text(n) for n in find_all(props_node, f"md:{tag}/xr:Field")] + else: + n = find(props_node, f"md:{tag}") + refs = [inner_text(n)] if n is not None and inner_text(n) else [] + for ref in refs: + eds_refs_checked += 1 + parts = ref.split(".") + # Ожидается ExternalDataSource.<Источник>.Table.<Таблица>.Field.<Поле> + if len(parts) != 6 or parts[0] != "ExternalDataSource" or parts[2] != "Table" or parts[4] != "Field": + report_error(f"21. {tag} '{ref}' — ожидается ExternalDataSource.<Источник>.Table.<Таблица>.Field.<Поле>") + eds_refs_bad = True + continue + if parts[3] != obj_name: + report_error(f"21. {tag} '{ref}' — ссылка на поле ЧУЖОЙ таблицы (эта: {obj_name})") + eds_refs_bad = True + continue + if parts[5] not in field_names: + known = ", ".join(sorted(field_names)) if field_names else "полей нет" + report_error(f"21. {tag} '{ref}' — поля '{parts[5]}' нет в таблице (есть: {known})") + eds_refs_bad = True + if eds_refs_checked > 0 and not eds_refs_bad: + report_ok(f"21. Field refs: {eds_refs_checked} resolved") + + # Ключ: загрузка XML таблицу без ключа принимает (проверено на платформе), а Конфигуратор + # интерактивно требует. Отсюда предупреждение, а не ошибка: рабочие конфигурации без ключа есть. + if not find_all(props_node, "md:KeyFields/xr:Field"): + report_warn("21. KeyFields пуст — платформа такую таблицу загрузит, но форма записи и набор записей будут недоступны") + + # ── Final output ────────────────────────────────────────────── finalize() diff --git a/docs/meta-dsl-spec.md b/docs/meta-dsl-spec.md index 168d93011..59b43431d 100644 --- a/docs/meta-dsl-spec.md +++ b/docs/meta-dsl-spec.md @@ -1958,3 +1958,33 @@ ChildObjects и модулей. | `direction` | `In` | Направление: `In` / `Out` / `InOut` | Если значение — строка, интерпретируется как `type`. + +--- + +## 18. Внешние источники данных (tables / functions) + +Только для `ExternalDataSource`. Полное описание — `.claude/skills/meta-compile/reference/external-data-source.md`: +таблицы, поля и функции, их свойства и умолчания. Здесь — только форма и связи с общими конвенциями, +чтобы таблица свойств не жила в двух местах и не разъезжалась. + +```json +{ "type": "ExternalDataSource", "name": "PG", + "tables": { + "prices": ["product_id: Number(10,0)", "price: Number(15,2)"], + "products": { "keyFields": ["id"], "presentationField": "name", + "fields": ["id: Number(10,0)", "name: String(150)"] } + }, + "functions": { "total": { "expression": "public.f_total(&1, &2)", "returns": "Number(15,2)" } } } +``` + +- **`tables`** — dict имя → массив полей ЛИБО объект со свойствами и ключом `fields`: та же двойственность, + что у `tabularSections` (§5). +- **Поле** — обычный реквизит (§4) плюс три своих ключа: `nameInDataSource`, `readOnly`, `allowNull` + (флаги строковой формы — `readonly`, `nullable`). Составной тип у поля платформа запрещает. +- **Ссылки на поля** (`keyFields`, `presentationField`, `parentField`, `dataVersionField`, `inputByString`, + `dataLockFields`) — короткими именами полей этой же таблицы, как `inputByString` у справочника (§7.1.5). +- **`functions`** — dict имя → строка (выражение) ЛИБО объект, как `urlTemplates` (§16) и `operations` (§17). + Параметры не объекты: они записаны в самом выражении как `&1`, `&2`. + +Кубы OLAP не поддерживаются. Таблица — отдельный файл, поэтому `meta-compile` описывает источник целиком, +а дописать таблицу или функцию в существующий умеет `meta-edit` (`add.tables` / `add.functions`). diff --git a/tests/skills/cases/meta-validate/eds-table-no-key.json b/tests/skills/cases/meta-validate/eds-table-no-key.json new file mode 100644 index 000000000..7b8ea6c1d --- /dev/null +++ b/tests/skills/cases/meta-validate/eds-table-no-key.json @@ -0,0 +1,46 @@ +{ + "name": "Таблица внешнего источника без ключа — предупреждение, не ошибка", + "setup": "empty-config", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "ExternalDataSource", + "name": "PG", + "tables": { + "products": { + "tableDataType": "ObjectData", + "keyFields": [ + "id" + ], + "presentationField": "name", + "dataLockFields": [ + "id" + ], + "fields": [ + "id: Number(10,0)", + "name: String(150)" + ] + }, + "prices": [ + "product_id: Number(10,0)", + "price: Number(15,2)" + ] + } + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + } + ], + "params": { + "objectPath": "ExternalDataSources/PG/Tables/prices.xml" + }, + "expect": { + "stdoutContains": [ + "KeyFields пуст", + "0 errors, 1 warnings" + ] + } +} diff --git a/tests/skills/cases/meta-validate/eds-table-refs.json b/tests/skills/cases/meta-validate/eds-table-refs.json new file mode 100644 index 000000000..fbc236a0b --- /dev/null +++ b/tests/skills/cases/meta-validate/eds-table-refs.json @@ -0,0 +1,45 @@ +{ + "name": "Таблица внешнего источника: ссылки на поля разрешаются, пустой ключ — предупреждение", + "setup": "empty-config", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "ExternalDataSource", + "name": "PG", + "tables": { + "products": { + "tableDataType": "ObjectData", + "keyFields": [ + "id" + ], + "presentationField": "name", + "dataLockFields": [ + "id" + ], + "fields": [ + "id: Number(10,0)", + "name: String(150)" + ] + }, + "prices": [ + "product_id: Number(10,0)", + "price: Number(15,2)" + ] + } + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + } + ], + "params": { + "objectPath": "ExternalDataSources/PG/Tables/products.xml" + }, + "expect": { + "stdoutContains": [ + "Validation OK: Table.products" + ] + } +} diff --git a/tests/skills/cases/meta-validate/error-eds-bad-field-ref.json b/tests/skills/cases/meta-validate/error-eds-bad-field-ref.json new file mode 100644 index 000000000..39e6b3c6c --- /dev/null +++ b/tests/skills/cases/meta-validate/error-eds-bad-field-ref.json @@ -0,0 +1,27 @@ +{ + "name": "Ссылка на несуществующее поле таблицы внешнего источника — ошибка", + "setup": "empty-config", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "ExternalDataSource", + "name": "PG", + "tables": { + "products": { + "tableDataType": "ObjectData", + "keyFields": ["id"], + "presentationField": "nmae", + "fields": ["id: Number(10,0)", "name: String(150)"] + } + } + }, + "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" } + } + ], + "params": { "objectPath": "ExternalDataSources/PG/Tables/products.xml" }, + "expectError": true, + "expect": { + "stdoutContains": ["PresentationField", "поля 'nmae' нет в таблице"] + } +} diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Configuration.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Configuration.xml new file mode 100644 index 000000000..da0e784ee --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/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 + + + + Русский + PG + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG.xml new file mode 100644 index 000000000..8ba69f674 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + + PG + + + ru + PG + + + + Automatic + + + products
+ prices
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/prices.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/prices.xml new file mode 100644 index 000000000..f3d281122 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/prices.xml @@ -0,0 +1,170 @@ + + + + + + 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 + + + UUID-016 + UUID-017 + + + + prices + + + ru + prices + + + + Table + prices + + NonobjectData + + + + + + true + false + + Auto + Begin + Directly + Auto + + + + + + + + + + + + false + false + Auto + + InDialog + + + Automatic + + + + + product_id + + + ru + product_id + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + + + Auto + Auto + Auto + + product_id + false + false + + + + + price + + + ru + price + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + + + Auto + Auto + Auto + + price + false + false + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/products.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/products.xml new file mode 100644 index 000000000..f4e115d26 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/ExternalDataSources/PG/Tables/products.xml @@ -0,0 +1,175 @@ + + + + + + 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 + + + UUID-016 + UUID-017 + + + + products + + + ru + products + + + + Table + products + + ObjectData + + ExternalDataSource.PG.Table.products.Field.id + + ExternalDataSource.PG.Table.products.Field.name + + + + true + false + + ExternalDataSource.PG.Table.products.Field.name + + Auto + Begin + Directly + Auto + + + + + + + + + + + + false + false + Auto + + InDialog + + + ExternalDataSource.PG.Table.products.Field.id + + Automatic + + + + + id + + + ru + id + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + + + Auto + Auto + Auto + + id + false + false + + + + + name + + + ru + name + + + + + xs:string + + 150 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + + + Auto + Auto + Auto + + name + false + false + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Languages/Русский.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-no-key/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Configuration.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Configuration.xml new file mode 100644 index 000000000..da0e784ee --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/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 + + + + Русский + PG + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG.xml new file mode 100644 index 000000000..8ba69f674 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + + PG + + + ru + PG + + + + Automatic + + + products
+ prices
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/prices.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/prices.xml new file mode 100644 index 000000000..f3d281122 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/prices.xml @@ -0,0 +1,170 @@ + + + + + + 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 + + + UUID-016 + UUID-017 + + + + prices + + + ru + prices + + + + Table + prices + + NonobjectData + + + + + + true + false + + Auto + Begin + Directly + Auto + + + + + + + + + + + + false + false + Auto + + InDialog + + + Automatic + + + + + product_id + + + ru + product_id + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + + + Auto + Auto + Auto + + product_id + false + false + + + + + price + + + ru + price + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + + + Auto + Auto + Auto + + price + false + false + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/products.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/products.xml new file mode 100644 index 000000000..f4e115d26 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/ExternalDataSources/PG/Tables/products.xml @@ -0,0 +1,175 @@ + + + + + + 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 + + + UUID-016 + UUID-017 + + + + products + + + ru + products + + + + Table + products + + ObjectData + + ExternalDataSource.PG.Table.products.Field.id + + ExternalDataSource.PG.Table.products.Field.name + + + + true + false + + ExternalDataSource.PG.Table.products.Field.name + + Auto + Begin + Directly + Auto + + + + + + + + + + + + false + false + Auto + + InDialog + + + ExternalDataSource.PG.Table.products.Field.id + + Automatic + + + + + id + + + ru + id + + + + + xs:decimal + + 10 + 0 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + + + Auto + Auto + Auto + + id + false + false + + + + + name + + + ru + name + + + + + xs:string + + 150 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + + + Auto + Auto + Auto + + name + false + false + + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Languages/Русский.xml b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/meta-validate/snapshots/eds-table-refs/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file