mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 00:10:50 +03:00
Навыки-создатели дописывали новый объект в конец группы своего вида, а стандарт требует порядка по имени (АПК:1108). Замеры на 8 боевых выгрузках: 103 385 объектов лежат по алфавиту, нарушают его ровно дописки в хвост. Стенд подтвердил, что беспорядок вечен: платформа нормализует порядок ВИДОВ (возвращает канонический), но порядок имён внутри вида не трогает. Настройка newObjectPosition в .v8-project.json (end по умолчанию | byName) — решение проекта, а не вызова: читают её meta-compile, role-compile, xdto-compile, cfe-borrow и cf-edit add-childObject. Компаратор при этом константа, моделирующая дерево Конфигуратора: ключ «ранг+символ» без культурных таблиц, одинаковый в обоих портах на любой ОС. На корпусе он даёт 4 нарушения на 125 088 пар против 2866 у ordinal-сравнения, которым cf-edit и cfe-borrow сортировали до сих пор. Subsystem не упорядочивается автоматически нигде: пока подсистемы не перечислены в <SubsystemsOrder>, порядок дерева задаёт порядок разделов в панели, а платформа этот список сама не заводит. Настройка не чинит накопленное, поэтому cf-edit получил операцию sort-childObjects (вся конфигурация или названные виды). Она переставляет значения узлов, а не узлы, поэтому диф — чистая перестановка строк. Имя вида принимается в любом регистре, во множественном числе и по-русски; неизвестный вид — отказ со списком допустимых. Попутно: - PS-порты создателей переведены с DOM-сериализации на текстовую вставку: на выгрузке не в каноне Конфигуратора они переписывали заголовок без просьбы; - PS-сторона семьи detect_xml_style/finalize_xml_bytes закрыта в cf-edit и cfe-borrow — правка чужого файла наследует его BOM/EOL/заголовок; - xdto-compile присоединён к семье Register-InChildObjects вместо инлайн-копии; - закрыт ложный успех в py subsystem-compile: <ChildObjects /> с пробелом ET разбирает, а текстовые ветки не находили — файл писался без вставки; - cfe-borrow py не импортировал json, из-за чего резолвер молча возвращал end; - cf-edit add-childObject ставил объект в конец блока, за пределы своей группы, когда видов старше в файле не было. Проверки: 906/906 на PowerShell и 903/906 на Python, 10 гардов, верификация эталонов платформой без падений, раундтрип отсортированной конфигурации на 8.3.24 и 8.3.27, сортировка боевой выгрузки ACC (1,4 МБ) и расширения из корпуса. Задачу принёс PR #85; часть кода взята оттуда. Co-Authored-By: Sergei Pleshanov <72200277+Abacadabras@users.noreply.github.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
253 lines
10 KiB
XML
253 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="10174db7-3364-4a61-95de-0531580d57a1">
|
|
<InternalInfo>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
|
|
<xr:ObjectId>b106f45f-600f-4f38-9161-9c47700a5046</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
|
|
<xr:ObjectId>075510c9-7b9b-45ca-8f51-1ddf429a6810</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
|
|
<xr:ObjectId>ad188e60-19d5-4115-8ab5-28baf8fb8aed</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
|
|
<xr:ObjectId>c2b8a80d-e43c-42af-ba60-752754eeb32e</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
|
|
<xr:ObjectId>f3b8f5d6-81db-427a-971e-73e2b122dc57</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
|
|
<xr:ObjectId>72f44335-fd87-4c4e-8843-089458df5aa3</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
<xr:ContainedObject>
|
|
<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
|
|
<xr:ObjectId>38823070-1762-422e-8584-17912ce75394</xr:ObjectId>
|
|
</xr:ContainedObject>
|
|
</InternalInfo>
|
|
<Properties>
|
|
<Name>TestConfig</Name>
|
|
<Synonym>
|
|
<v8:item>
|
|
<v8:lang>ru</v8:lang>
|
|
<v8:content>TestConfig</v8:content>
|
|
</v8:item>
|
|
</Synonym>
|
|
<Comment/>
|
|
<NamePrefix/>
|
|
<ConfigurationExtensionCompatibilityMode>Version8_3_24</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_24</CompatibilityMode>
|
|
<DefaultConstantsForm/>
|
|
</Properties>
|
|
<ChildObjects>
|
|
<Language>Русский</Language>
|
|
<XDTOPackage>aaa</XDTOPackage>
|
|
<XDTOPackage>zzz</XDTOPackage>
|
|
</ChildObjects>
|
|
</Configuration>
|
|
</MetaDataObject> |