From 0791b0cfe10c4a3a79147c6576c9e272552c6455 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 27 Sep 2026 13:49:12 +0300 Subject: [PATCH] =?UTF-8?q?fix(meta-validate):=20TemplateType=20Geographic?= =?UTF-8?q?alSchema=20=E2=80=94=20=D0=B4=D0=BE=D0=BF=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BC=D1=8B=D0=B9=20=D0=B2=D0=B8=D0=B4=20=D0=BC=D0=B0?= =?UTF-8?q?=D0=BA=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В перечислении вида макета не хватало географической схемы: значение GeographicalSchema есть в перечислении TemplateType платформы (backend.dll, рядом с GraphicalSchema и AddIn), но в разобранных выгрузках не встречается — поэтому список, собранный по спецификации, его пропустил. Дескриптор такого макета на входе давал ложную ошибку. Список дополнен и в спецификациях. Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) --- .../meta-validate/scripts/meta-validate.ps1 | 4 +- .../meta-validate/scripts/meta-validate.py | 4 +- docs/1c-config-objects-spec.md | 2 +- docs/1c-configuration-spec.md | 2 +- .../Catalogs/Товары.xml | 94 +++++++ .../Catalogs/Товары/Ext/Help.xml | 4 + .../Catalogs/Товары/Ext/Help/ru.html | 11 + .../Catalogs/Товары/Ext/ObjectModule.bsl | 1 + .../Catalogs/Товары/Ext/Predefined.xml | 9 + .../Catalogs/Товары/Forms/ФормаЭлемента.xml | 21 ++ .../Товары/Forms/ФормаЭлемента/Ext/Form.xml | 16 ++ .../Forms/ФормаЭлемента/Ext/Form/Module.bsl | 19 ++ .../Catalogs/Товары/Templates/Описание.xml | 16 ++ .../Templates/Описание/Ext/Template.xml | 4 + .../Templates/Описание/Ext/Template/ru.html | 2 + .../CommonPictures/Пустая.xml | 17 ++ .../CommonPictures/Пустая/Ext/Picture.xml | 7 + .../Пустая/Ext/Picture/Picture.png | Bin 0 -> 75 bytes .../Configuration.xml | 257 ++++++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 ++ .../Languages/Русский.xml | 16 ++ ...alid-template-descriptor-geographical.json | 8 + 22 files changed, 526 insertions(+), 6 deletions(-) create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help/ru.html create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Predefined.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template/ru.html create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture/Picture.png create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Configuration.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Languages/Русский.xml create mode 100644 tests/skills/cases/meta-validate/valid-template-descriptor-geographical.json diff --git a/.claude/skills/meta-validate/scripts/meta-validate.ps1 b/.claude/skills/meta-validate/scripts/meta-validate.ps1 index 1e5dd39c2..42a035254 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.31 — Validate 1C metadata object structure +# meta-validate v1.32 — Validate 1C metadata object structure # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills [CmdletBinding(PositionalBinding=$false)] param( @@ -249,7 +249,7 @@ $nestedDescriptorTypes = @("Form","Template") $descriptorKindValues = @{ "FormType" = @("Managed","Ordinary") "TemplateType" = @("SpreadsheetDocument","BinaryData","HTMLDocument","TextDocument","ActiveDocument", - "DataCompositionSchema","DataCompositionAppearanceTemplate","GraphicalSchema","AddIn") + "DataCompositionSchema","DataCompositionAppearanceTemplate","GraphicalSchema","GeographicalSchema","AddIn") } # GeneratedType categories by type diff --git a/.claude/skills/meta-validate/scripts/meta-validate.py b/.claude/skills/meta-validate/scripts/meta-validate.py index 5345bb5c9..98d143068 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.31 — Validate 1C metadata object structure (Python port) +# meta-validate v1.32 — Validate 1C metadata object structure (Python port) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import os @@ -302,7 +302,7 @@ nested_descriptor_types = ("Form", "Template") descriptor_kind_values = { "FormType": ("Managed", "Ordinary"), "TemplateType": ("SpreadsheetDocument", "BinaryData", "HTMLDocument", "TextDocument", "ActiveDocument", - "DataCompositionSchema", "DataCompositionAppearanceTemplate", "GraphicalSchema", "AddIn"), + "DataCompositionSchema", "DataCompositionAppearanceTemplate", "GraphicalSchema", "GeographicalSchema", "AddIn"), } # GeneratedType categories by type diff --git a/docs/1c-config-objects-spec.md b/docs/1c-config-objects-spec.md index 0154f1ba5..235d3acc9 100644 --- a/docs/1c-config-objects-spec.md +++ b/docs/1c-config-objects-spec.md @@ -785,7 +785,7 @@ Ext/ # Расширение конфигураци ОсновнаяСхемаКомпоновкиДанных ... - DataCompositionSchema + DataCompositionSchema ``` diff --git a/docs/1c-configuration-spec.md b/docs/1c-configuration-spec.md index 8ea0b2089..3e1f7263f 100644 --- a/docs/1c-configuration-spec.md +++ b/docs/1c-configuration-spec.md @@ -607,7 +607,7 @@ ClassId — фиксированные идентификаторы классо | Свойство | Тип | Описание | |----------|-----|----------| -| `TemplateType` | enum | Тип макета: `SpreadsheetDocument`, `BinaryData`, `HTMLDocument`, `TextDocument`, `ActiveDocument`, `DataCompositionSchema`, `DataCompositionAppearanceTemplate`, `GraphicalSchema`, `AddIn` | +| `TemplateType` | enum | Тип макета: `SpreadsheetDocument`, `BinaryData`, `HTMLDocument`, `TextDocument`, `ActiveDocument`, `DataCompositionSchema`, `DataCompositionAppearanceTemplate`, `GraphicalSchema`, `GeographicalSchema`, `AddIn` | ### 6.3. CommonAttribute — общий реквизит diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары.xml new file mode 100644 index 000000000..c25e3c8d2 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары.xml @@ -0,0 +1,94 @@ + + + + + + 04cfef5a-d82d-4ce3-a4b2-61dcd7d63017 + 213110e1-e3eb-4e92-8a8c-062de0de7b5e + + + 5ad7b3d3-ea08-4041-b12b-c68aa1b87259 + cbbb4d87-25b8-4900-8804-ee7f4189a170 + + + 3f871bd5-0857-4e28-ad6b-4829e7adc05d + d42ac012-7ed7-4f68-85b3-a8542567ccc3 + + + 89b71b77-0695-412c-87b3-bf83a602d253 + ea354adc-650e-4ba8-a4da-604eace12a18 + + + f40d5653-27fb-4948-a00b-97bc732452e6 + cd900e1d-375e-43d5-88fd-5b4d48493b32 + + + + Товары + + + ru + Товары + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Товары.StandardAttribute.Description + Catalog.Товары.StandardAttribute.Code + + Begin + DontUse + Directly + Catalog.Товары.Form.ФормаЭлемента + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + +
ФормаЭлемента
+ +
+
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help.xml new file mode 100644 index 000000000..237bf77a7 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help/ru.html b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help/ru.html new file mode 100644 index 000000000..cacd16d9f --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Help/ru.html @@ -0,0 +1,11 @@ + + + + + + + +

Catalogs/Товары

+

Описание.

+ + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/ObjectModule.bsl b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/ObjectModule.bsl new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/ObjectModule.bsl @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Predefined.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Predefined.xml new file mode 100644 index 000000000..44dec0a3f --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Ext/Predefined.xml @@ -0,0 +1,9 @@ + + + + Основной + + Основной + false + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента.xml new file mode 100644 index 000000000..16e4d32e9 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЭлемента + + + ru + ФормаЭлемента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml new file mode 100644 index 000000000..1a83222ab --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml @@ -0,0 +1,16 @@ + +
+ + true + + + + + + cfg:CatalogObject.Товары + + true + true + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl new file mode 100644 index 000000000..4cf929983 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание.xml new file mode 100644 index 000000000..934a197cc --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template.xml new file mode 100644 index 000000000..237bf77a7 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template.xml @@ -0,0 +1,4 @@ + + + ru + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template/ru.html b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template/ru.html new file mode 100644 index 000000000..46690e416 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Catalogs/Товары/Templates/Описание/Ext/Template/ru.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая.xml new file mode 100644 index 000000000..e0481f4aa --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая.xml @@ -0,0 +1,17 @@ + + + + + Пустая + + + ru + Пустая + + + + false + false + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture.xml new file mode 100644 index 000000000..1bdfdfbe5 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture.xml @@ -0,0 +1,7 @@ + + + + Picture.png + false + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture/Picture.png b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/CommonPictures/Пустая/Ext/Picture/Picture.png new file mode 100644 index 0000000000000000000000000000000000000000..96729e159b885d68f678fc6053bd8a170ca1b10b GIT binary patch literal 75 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`LY^*;Ar-fh6C_v{Cy4YgaWF8j X2rw|NckR#t$})Jm`njxgN@xNA05A_g literal 0 HcmV?d00001 diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Configuration.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Configuration.xml new file mode 100644 index 000000000..61fc637f4 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Configuration.xml @@ -0,0 +1,257 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + 6a1d4c14-d008-4a76-adf7-2cd068816303 + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + 1db67a73-798b-4f46-95ab-a48dbc77df97 + + + e3687481-0a87-462c-a166-9f34594f9bba + e82637c1-18d7-4f62-8e56-2ea8c4047458 + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + 49c1f996-3202-46cd-8850-9029e818f18d + + + 51f2d5d8-ea4d-4064-8892-82951750031e + 8e7835c9-3e32-4c89-9fbd-913f499e04bd + + + e68182ea-4237-4383-967f-90c1e3370bc7 + 8e30c1da-e593-4418-8c69-772c67bcafc4 + + + fb282519-d103-4dd3-bc12-cb271d631dfc + dd95720c-ad5c-441e-8c87-7ada01b89110 + + + + ПроверкаВерсий + + + ru + ПроверкаВерсий + + + + + Version8_3_27 + 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 + + + TextToSpeech + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_27 + + + + Русский + Пустая + Товары + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..91ea580cb --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + cbab57f2-a0f3-4f0a-89ea-4cb19570ab75 + + + + + b553047f-c9aa-4157-978d-448ecad24248 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Languages/Русский.xml b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Languages/Русский.xml new file mode 100644 index 000000000..1f634b2d9 --- /dev/null +++ b/tests/skills/cases/meta-validate/fixtures/template-descriptor-geographical/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/meta-validate/valid-template-descriptor-geographical.json b/tests/skills/cases/meta-validate/valid-template-descriptor-geographical.json new file mode 100644 index 000000000..cda7ac1cf --- /dev/null +++ b/tests/skills/cases/meta-validate/valid-template-descriptor-geographical.json @@ -0,0 +1,8 @@ +{ + "name": "Дескриптор макета с TemplateType GeographicalSchema (географическая схема) — допустимый вид", + "setup": "fixture:template-descriptor-geographical", + "params": { "objectPath": "Catalogs/Товары/Templates/Описание.xml" }, + "noSnapshot": "meta-validate только читает и печатает — эталон зафиксировал бы фикстуру, а не выход проверяемого навыка; проверяется stdout", + "expect": { "stdoutContains": ["=== Validation OK: Template.Описание"] }, + "skipPlatformVerify": "у макета заменён только вид в дескрипторе, тело осталось HTML — фикстура проверяет вход валидатора, не загрузку" +}