mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
feat(role-compile): порядок прав и узлов как у платформы
Платформа нормализует и то и другое: права внутри <object> идут в фиксированном для типа порядке, сами <object> — по uuid объекта метаданных. Навык писал в порядке ввода, поэтому первая же выгрузка из Конфигуратора давала диф, которого никто не делал. Замеры (debug/role-edit/FINDINGS.md): канон прав снят с платформы и сошёлся с топологической сортировкой по корпусу (~290k узлов <right>); порядок узлов по uuid подтверждён на 363 ролях ACC из 363 и отдельно на 44 ролях с вложенными объектами, где ключ — uuid самого реквизита. Порядок дерева конфигурации тут ни при чём — прямое сравнение с ChildObjects даёт скачущие позиции. Проверка: выход обоих портов совпал с выгрузкой 1С байт в байт. Сортировка узлов строго ordinal: Sort-Object сравнивает по культуре и игнорирует дефис, из-за чего порядок разошёлся бы и с платформой, и с py-портом. Объект, которого нет в выгрузке (uuid неизвестен), уходит в конец с предупреждением в stderr — платформа переставит его сама. Кейсы с несколькими объектами переведены с preRun на фикстуры: uuid, который meta-compile генерирует заново на каждом прогоне, сделал бы порядок узлов плавающим. Фикстуры собраны теми же навыками. Двум фикстурам добавлен документ-регистратор: регистр расчёта без него платформа не принимает, и verify-snapshots это поймал. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FGkXwoXTuafcu1SXMsauFq
This commit is contained in:
co-authored by
Claude Opus 5
parent
c23cae39d8
commit
bbc3be55a5
@@ -247,6 +247,7 @@
|
||||
<ChildObjects>
|
||||
<Language>Русский</Language>
|
||||
<Role>ИсторияДанныхПроцессов</Role>
|
||||
<Document>РегистраторРасчёта</Document>
|
||||
<ChartOfCalculationTypes>Начисления</ChartOfCalculationTypes>
|
||||
<CalculationRegister>Начисление</CalculationRegister>
|
||||
<BusinessProcess>Согласование</BusinessProcess>
|
||||
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
<?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">
|
||||
<Document uuid="UUID-001">
|
||||
<InternalInfo>
|
||||
<xr:GeneratedType name="DocumentObject.РегистраторРасчёта" category="Object">
|
||||
<xr:TypeId>UUID-002</xr:TypeId>
|
||||
<xr:ValueId>UUID-003</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="DocumentRef.РегистраторРасчёта" category="Ref">
|
||||
<xr:TypeId>UUID-004</xr:TypeId>
|
||||
<xr:ValueId>UUID-005</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="DocumentSelection.РегистраторРасчёта" category="Selection">
|
||||
<xr:TypeId>UUID-006</xr:TypeId>
|
||||
<xr:ValueId>UUID-007</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="DocumentList.РегистраторРасчёта" category="List">
|
||||
<xr:TypeId>UUID-008</xr:TypeId>
|
||||
<xr:ValueId>UUID-009</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="DocumentManager.РегистраторРасчёта" category="Manager">
|
||||
<xr:TypeId>UUID-010</xr:TypeId>
|
||||
<xr:ValueId>UUID-011</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>РегистраторРасчёта</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Регистратор расчёта</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<Numerator/>
|
||||
<NumberType>String</NumberType>
|
||||
<NumberLength>11</NumberLength>
|
||||
<NumberAllowedLength>Variable</NumberAllowedLength>
|
||||
<NumberPeriodicity>Year</NumberPeriodicity>
|
||||
<CheckUnique>true</CheckUnique>
|
||||
<Autonumbering>true</Autonumbering>
|
||||
<Characteristics/>
|
||||
<BasedOn/>
|
||||
<InputByString>
|
||||
<xr:Field>Document.РегистраторРасчёта.StandardAttribute.Number</xr:Field>
|
||||
</InputByString>
|
||||
<CreateOnInput>Use</CreateOnInput>
|
||||
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
|
||||
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
|
||||
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
|
||||
<DefaultObjectForm/>
|
||||
<DefaultListForm/>
|
||||
<DefaultChoiceForm/>
|
||||
<AuxiliaryObjectForm/>
|
||||
<AuxiliaryListForm/>
|
||||
<AuxiliaryChoiceForm/>
|
||||
<Posting>Allow</Posting>
|
||||
<RealTimePosting>Deny</RealTimePosting>
|
||||
<RegisterRecordsDeletion>AutoDelete</RegisterRecordsDeletion>
|
||||
<RegisterRecordsWritingOnPost>WriteSelected</RegisterRecordsWritingOnPost>
|
||||
<SequenceFilling>AutoFill</SequenceFilling>
|
||||
<RegisterRecords>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CalculationRegister.Начисление</xr:Item>
|
||||
</RegisterRecords>
|
||||
<PostInPrivilegedMode>true</PostInPrivilegedMode>
|
||||
<UnpostInPrivilegedMode>true</UnpostInPrivilegedMode>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<DataLockFields/>
|
||||
<DataLockControlMode>Managed</DataLockControlMode>
|
||||
<FullTextSearch>Use</FullTextSearch>
|
||||
<ObjectPresentation/>
|
||||
<ExtendedObjectPresentation/>
|
||||
<ListPresentation/>
|
||||
<ExtendedListPresentation/>
|
||||
<Explanation/>
|
||||
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
|
||||
<DataHistory>DontUse</DataHistory>
|
||||
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
|
||||
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
</Document>
|
||||
</MetaDataObject>
|
||||
+21
-21
@@ -3,25 +3,6 @@
|
||||
<setForNewObjects>false</setForNewObjects>
|
||||
<setForAttributesByDefault>true</setForAttributesByDefault>
|
||||
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
|
||||
<object>
|
||||
<name>BusinessProcess.Согласование</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ReadDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ViewDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveDeleteMarked</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя</name>
|
||||
<right>
|
||||
@@ -44,11 +25,11 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EditDataHistoryVersionComment</name>
|
||||
<name>InteractiveDeleteMarked</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveDeleteMarked</name>
|
||||
<name>EditDataHistoryVersionComment</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
@@ -71,4 +52,23 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>BusinessProcess.Согласование</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveDeleteMarked</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ReadDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ViewDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
Reference in New Issue
Block a user