diff --git a/src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java b/src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java index c690412c7..d2ac0051d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java +++ b/src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java @@ -38,6 +38,7 @@ public class RoleDataConverter implements ReadConverter { private static final String OBJECT_NODE_NAME = "object"; private static final String RIGHT_NODE_NAME = "right"; + private static final String RESTRICTION_TEMPLATE_NODE_NAME = "restrictionTemplate"; @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { @@ -53,6 +54,10 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co if (OBJECT_NODE_NAME.equals(name)) { var objectRight = readObjectRight(reader, context); builder.objectRight(objectRight); + } else if (RESTRICTION_TEMPLATE_NODE_NAME.equals(name)) { + // пропускаем + reader.moveUp(); + continue; } else { var fieldClass = (Class) TransformationUtils.fieldType(builder, name); Objects.requireNonNull(fieldClass, "Field type not found for: " + name); @@ -76,7 +81,7 @@ private static RoleData.ObjectRight readObjectRight(HierarchicalStreamReader rea builder.right(right); } else { var fieldClass = (Class) TransformationUtils.fieldType(builder, name); - if(fieldClass == null) { + if (fieldClass == null) { continue; } var value = ExtendXStream.readValue(context, fieldClass); diff --git "a/src/test/resources/ext/designer/mdclasses/src/cf/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" "b/src/test/resources/ext/designer/mdclasses/src/cf/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" index 9f784dca0..ca967b179 100644 --- "a/src/test/resources/ext/designer/mdclasses/src/cf/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" +++ "b/src/test/resources/ext/designer/mdclasses/src/cf/Roles/\320\240\320\276\320\273\321\2141/Ext/Rights.xml" @@ -220,4 +220,17 @@ true + + ДляОбъекта(ПолеОбъекта) + // ДляОбъекта(ПолеОбъекта = "") + #Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + #Иначе + ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ) + + diff --git "a/src/test/resources/ext/edt/mdclasses/configuration/src/Roles/\320\240\320\276\320\273\321\2141/Rights.rights" "b/src/test/resources/ext/edt/mdclasses/configuration/src/Roles/\320\240\320\276\320\273\321\2141/Rights.rights" index 0c2784f70..937a76f5e 100644 --- "a/src/test/resources/ext/edt/mdclasses/configuration/src/Roles/\320\240\320\276\320\273\321\2141/Rights.rights" +++ "b/src/test/resources/ext/edt/mdclasses/configuration/src/Roles/\320\240\320\276\320\273\321\2141/Rights.rights" @@ -220,4 +220,17 @@ true + + ДляОбъекта(ПолеОбъекта) + // ДляОбъекта(ПолеОбъекта = "") + #Если &СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда + // Информационная база заблокирована для обновления. + ГДЕ ЛОЖЬ + #Иначе + ТекущаяТаблица ГДЕ ИСТИНА В + ( + ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА + ) + +