mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-01 07:50:50 +03:00
Раннер сам прятал дефекты, которые чинит #57. normalizeXmlContent при runtime=python снимал ровно четыре измерения: пробел перед `/>`, whitespace между тегами, пустую пару <Tag></Tag> и хвостовой пробельный мусор. Паритет PS<->PY по этим измерениям проверялся ЧЕРЕЗ маску — расхождение физически не могло упасть. Снято три из четырёх (пробел, пустая пара, хвост). Схлопывание whitespace между тегами оставлено: порты кое-где расставляют отступы иначе, это форматирование, а не байтовый канон. Ужесточён checkPreserves: eol теперь считает ОДИНОЧНЫЕ LF, а не «есть ли хоть один CR». Прежняя проверка пропускала смешанный выход — cfe-init давал 10 CR на 70 строк и проходил её, то есть головной дефект тикета был ей невидим. Добавлены ключи selfClose:"tight" и noEmptyPairs; preserves проставлен в 13 кейсах навыков-эмиттеров (по одному на навык, на его СОБСТВЕННЫЙ артефакт). Снятие масок сразу вскрыло четыре реальных расхождения портов: - form-edit собирает выход из OuterXml и писал `<a />`; в списке 17 навыков его не было, потому что искал по вызовам Save — здесь другой путь. Тот же случай, что с Form.xml в cfe-borrow; - meta-edit py дописывал хвостовой перевод в создаваемый Ext/Predefined.xml и читал существующий без newline='' (терял CRLF); - skd-info py писал отчёт -OutFile без хвостового перевода, PS через WriteAllLines — с ним. Это текстовый отчёт, канон Конфигуратора к нему не относится, поэтому выровнял py по существующему эталону; - фикстуры кейсов содержали <Vendor></Vendor> — снимок нашего же старого вывода. Конфигуратор пустых пар не пишет, .NET их сохраняет, lxml схлопывает. Поправлены 10 фикстур: пары → самозакрывающиеся, EOL и BOM не тронуты. Результат: PS 641/641, python 638/641 (+3 runtimeOnly-скипа) — со снятыми масками. Дрейф снэпшотов: 10 файлов, только пробельные теги и пустые пары. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
254 lines
9.5 KiB
XML
254 lines
9.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
||
<Configuration uuid="UUID-001">
|
||
<InternalInfo>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-002</xr:ClassId>
|
||
<xr:ObjectId>UUID-003</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-004</xr:ClassId>
|
||
<xr:ObjectId>UUID-005</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-006</xr:ClassId>
|
||
<xr:ObjectId>UUID-007</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-008</xr:ClassId>
|
||
<xr:ObjectId>UUID-009</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-010</xr:ClassId>
|
||
<xr:ObjectId>UUID-011</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-012</xr:ClassId>
|
||
<xr:ObjectId>UUID-013</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>UUID-014</xr:ClassId>
|
||
<xr:ObjectId>UUID-015</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
</InternalInfo>
|
||
<Properties>
|
||
<Name>КонфS</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>КонфS</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment />
|
||
<NamePrefix />
|
||
<ConfigurationExtensionCompatibilityMode>Version8_3_27</ConfigurationExtensionCompatibilityMode>
|
||
<DefaultRunMode>ManagedApplication</DefaultRunMode>
|
||
<UsePurposes>
|
||
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
|
||
</UsePurposes>
|
||
<ScriptVariant>Russian</ScriptVariant>
|
||
<DefaultRoles />
|
||
<Vendor/>
|
||
<Version/>
|
||
<UpdateCatalogAddress />
|
||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
|
||
<UseOrdinaryFormInManagedApplication>false</UseOrdinaryFormInManagedApplication>
|
||
<AdditionalFullTextSearchDictionaries />
|
||
<CommonSettingsStorage />
|
||
<ReportsUserSettingsStorage />
|
||
<ReportsVariantsStorage />
|
||
<FormDataSettingsStorage />
|
||
<DynamicListsUserSettingsStorage />
|
||
<URLExternalDataStorage />
|
||
<Content />
|
||
<DefaultReportForm />
|
||
<DefaultReportVariantForm />
|
||
<DefaultReportSettingsForm />
|
||
<DefaultReportAppearanceTemplate />
|
||
<DefaultDynamicListSettingsForm />
|
||
<DefaultSearchForm />
|
||
<DefaultDataHistoryChangeHistoryForm />
|
||
<DefaultDataHistoryVersionDataForm />
|
||
<DefaultDataHistoryVersionDifferencesForm />
|
||
<DefaultCollaborationSystemUsersChoiceForm />
|
||
<RequiredMobileApplicationPermissions />
|
||
<UsedMobileApplicationFunctionalities>
|
||
<app:functionality>
|
||
<app:functionality>Biometrics</app:functionality>
|
||
<app:use>true</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Location</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>BackgroundLocation</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>BluetoothPrinters</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>WiFiPrinters</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Contacts</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Calendars</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>PushNotifications</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>LocalNotifications</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>InAppPurchases</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>PersonalComputerFileExchange</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Ads</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>NumberDialing</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>CallProcessing</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>CallLog</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>AutoSendSMS</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>ReceiveSMS</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>SMSLog</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Camera</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Microphone</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>MusicLibrary</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>PictureAndVideoLibraries</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>AudioPlaybackAndVibration</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>BackgroundAudioPlaybackAndVibration</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>InstallPackages</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>OSBackup</app:functionality>
|
||
<app:use>true</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>ApplicationUsageStatistics</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>BarcodeScanning</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>BackgroundAudioRecording</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>AllFilesAccess</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Videoconferences</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>NFC</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>DocumentScanning</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>SpeechToText</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>Geofences</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>IncomingShareRequests</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
<app:functionality>
|
||
<app:functionality>AllIncomingShareRequestsTypesProcessing</app:functionality>
|
||
<app:use>false</app:use>
|
||
</app:functionality>
|
||
</UsedMobileApplicationFunctionalities>
|
||
<StandaloneConfigurationRestrictionRoles />
|
||
<MobileApplicationURLs />
|
||
<AllowedIncomingShareRequestTypes />
|
||
<MainClientApplicationWindowMode>Normal</MainClientApplicationWindowMode>
|
||
<DefaultInterface />
|
||
<DefaultStyle />
|
||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||
<BriefInformation />
|
||
<DetailedInformation />
|
||
<Copyright />
|
||
<VendorInformationAddress />
|
||
<ConfigurationInformationAddress />
|
||
<DataLockControlMode>Managed</DataLockControlMode>
|
||
<ObjectAutonumerationMode>NotAutoFree</ObjectAutonumerationMode>
|
||
<ModalityUseMode>DontUse</ModalityUseMode>
|
||
<SynchronousPlatformExtensionAndAddInCallUseMode>DontUse</SynchronousPlatformExtensionAndAddInCallUseMode>
|
||
<InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>
|
||
<DatabaseTablespacesUseMode>DontUse</DatabaseTablespacesUseMode>
|
||
<CompatibilityMode>Version8_3_27</CompatibilityMode>
|
||
<DefaultConstantsForm />
|
||
</Properties>
|
||
<ChildObjects>
|
||
<Language>Русский</Language>
|
||
<CommonModule>М</CommonModule>
|
||
<CommonModule>Второй</CommonModule>
|
||
<Subsystem>КрлфПС</Subsystem>
|
||
</ChildObjects>
|
||
</Configuration>
|
||
</MetaDataObject> |