mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-22 20:51:03 +03:00
Py-порты (lxml) при точечном редактировании существующего 1С-XML переписывали весь файл: CRLF→LF, encoding="UTF-8"→"utf-8", добавляли финальный перенос, плодили литерал (сериализация \r из tail'ов). Результат — широкий шумовой diff и скрытый лишний текст-узел при exit 0 и зелёной валидации. PS1-порты (XmlDocument) багу не подвержены — эталон. Фикс во всех 13 round-trip re-serialize py-навыках: перед записью детектится стиль существующего файла (BOM / EOL / регистр encoding / финальный перенос) и восстанавливается при сохранении; переносы канонизируются к LF (убирает ), затем приводятся к EOL источника. Новый файл (путь не существует) → прежнее поведение, снапшоты не двигаются. Навыки: cf-edit, meta-edit, meta-remove, interface-edit, subsystem-edit, skd-edit, form-edit, form-add, help-add, template-add, template-remove, form-remove, cfe-borrow. Версии py+ps1 подняты синхронно. Harness (tests/skills/runner.mjs): снята маска в normalizeXmlContent (порты её больше не порождают → гвардия ловит регресс); добавлен expect.preserves — raw-байтовая проверка BOM/EOL/encoding/финального переноса/отсутствия в обход нормализации. Регрессионные round-trip кейсы на CRLF+BOM+UTF-8 фикстурах для cf-edit/meta-edit/subsystem-edit. Верификация: py 556/556, ps1 556/556; платформа 1С 8.3.24 (verify-snapshots) cf-edit 12/12, meta-edit/subsystem-edit round-trip загружаются; негатив-тест подтверждает, что harness ловит дефект на старом коде. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
254 lines
10 KiB
XML
254 lines
10 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="3bad2776-b802-400b-a222-338461848f08">
|
||
<InternalInfo>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
|
||
<xr:ObjectId>5a5b12bf-6195-4ec6-9345-74ac5d4a51e9</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
|
||
<xr:ObjectId>d63f4369-8cd6-48a9-9eb2-d59ee96c1cd7</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
|
||
<xr:ObjectId>e056dc64-9149-4384-9d91-1bc0006f3b0a</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
|
||
<xr:ObjectId>400759d9-9144-4b60-a73b-6d4d54f8e608</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
|
||
<xr:ObjectId>5443c8e3-afcc-4853-8b92-7a211d728c9f</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
|
||
<xr:ObjectId>8bdc6930-957c-456e-847f-d2126faa50ea</xr:ObjectId>
|
||
</xr:ContainedObject>
|
||
<xr:ContainedObject>
|
||
<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
|
||
<xr:ObjectId>3c5dc348-1768-4268-99d7-bae149d144c8</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></Vendor>
|
||
<Version></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> |