Файл настроек объединения
Описан XML-файл настроек объединения конфигураций в BAS: его структура, параметры, правила поддержки и вспомогательные элементы для объектов, свойств и модулей.. Общая информация. Элемент <Settings>. Вспомогательные элементы
Общая информация
При сохранении настроек объединения конфигураций в файл сохраняются:
- Версия файла настроек и минимальная версия платформы, поддерживающая эту версию настроек.
Описание конфигураций:
- Имя,
- Версия,
- Поставщик.
Параметры объединения:
- Отношение основной и второй конфигурации,
- Языки сравнения,
- Признак разрешения удаления объектов основной конфигурации,
- Режим копирования объектов.
- Признаки участия объекта или свойства в объединении.
- Установленные порядки подчиненных объектов.
Настройки объединения свойств, в частности:
- Модулей,
- Форм,
- Макетов табличных документов.
Сохраняются только параметры, отличающиеся от значений по умолчанию.
Файл настроек является XML-файлом со следующей структурой:
<Settings…>
<MainConfiguration>
<Name/>
<Version/>
<Vendor/>
</MainConfiguration>
<SecondConfiguration>
<Name/>
<Version/>
<Vendor/>
</SecondConfiguration>
<OldVendorConfiguration>
<Name/>
<Version/>
<Vendor/>
</OldVendorConfiguration>
<SupportRules>
// Настройки правил поддержки
</SupportRules>
<Parameters>
// Параметры объединения
</Parameters>
<Conformities>
// Настройки ручных соответствий объектов
</Conformities>
<Objects>
// Настройки объединения объектов
</Objects>
</Settings>
Порядок расположения подчиненных элементу <Settings> указанных выше элементов важен, и его следует соблюдать при самостоятельном формировании файла. Каждый указанный выше элемент состоит из вложенных элементов (одного или нескольких) и может содержать атрибуты. Далее приведено описание структуры каждого элемента.
Пространство имен: http://bas-soft.eu/8.3/config/merge/settings.
Элемент <Settings>
Общее описание
Корневой элемент файла.
Элемент может содержать следующие атрибуты:
Version обязательный
Версия файла настроек.
Тип: String/Строка.
platformVersion необязательный
Минимальная версия платформы, с которой может использоваться файл настроек.
Атрибут записывается при сохранении настроек.
Тип: String/Строка.
Элемент <MainConfiguration>
Элемент определяет параметры основной конфигурации.
Необязательный элемент.
Элемент <Name> обязательный
Имя основной конфигурации.
Тип: String/Строка.
Элемент <Version> необязательный
Версия основной конфигурации.
Тип: String/Строка.
Элемент <Vendor> необязательный
Имя поставщика.
Тип: String/Строка.
Элемент <SecondConfiguration>
Описание второй конфигурации, участвующей в объединении.
Необязательный элемент.
Состав этого элемента аналогичен составу элемента <MainConfiguration>.
Элемент <OldVendorConfiguration>
Описание конфигурации поставщика, участвующей в объединении.
Необязательный элемент.
Состав этого элемента аналогичен составу элемента <MainConfiguration>.
Элемент <SupportRules>
Общее описание
Этот элемент содержит настройки правил поддержки.
Этот элемент не является обязательным.
Элемент имеет следующий состав:
<SupportRules>
<NewObjects>
<ChangesAllowedRule/>
<ChangesNotRecommendedRule/>
</NewObjects> <DuplicateObjectsAndModifiedObjectsWithGetFromSecondConfigurationRule>
<ChangesAllowedRule/>
<ChangesNotRecommendedRule/> </DuplicateObjectsAndModifiedObjectsWithGetFromSecondConfigurationRule>
<ModifiedObjectsWithoutGetFromSecondConfigurationRule>
<ChangesAllowedRule/>
<ChangesNotRecommendedRule/>
</ModifiedObjectsWithoutGetFromSecondConfigurationRule>
</SupportRules>
Элемент <NewObjects>
Этот элемент содержит правила поддержки для новых объектов поставщика.
Элемент <ChangesAllowedRule> необязательный
Указываются правила поддержки для объектов поставщика с правилом поставки Изменения разрешены. Элемент может принимать одно из следующих значений:
- ObjectNotEditable – правило поддержки Объект поставщика не редактируется.
- ObjectIsEditableSupportEnabled – правило поддержки Объект поставщика редактируется с сохранением поддержки.
- ObjectNotSupported – правило поддержки Объект поставщика снят с поддержки.
Значение по умолчанию: ObjectNotEditable.
Элемент <ChangesNotRecommendedRule> необязательный
Указываются правила поддержки для объектов поставщика с правилом поставки Изменения не рекомендуются. Элемент может принимать одно из следующих значений:
- ObjectNotEditable – правило поддержки Объект поставщика не редактируется.
- ObjectIsEditableSupportEnabled – правило поддержки Объект поставщика редактируется с сохранением поддержки.
- ObjectNotSupported – правило поддержки Объект поставщика снят с поддержки.
Значение по умолчанию: ObjectNotEditable.
Элемент <DuplicateObjectsAndModifiedObjectsWithGetFromSecondConfigurationRule>
В этом элементе указываются правила поддержки для идентичных объектов или объектов с режимом объединения Взять из второй конфигурации.
Элемент <ChangesAllowedRule> необязательный
Указываются правила поддержки для объектов поставщика с правилом поставки Изменения разрешены. Элемент может принимать одно из следующих значений:
- KeepCurrentRule – сохранить текущее правило поддержки (только для обновления конфигурации на поддержке).
- ObjectNotEditable – правило поддержки Объект поставщика не редактируется.
- ObjectIsEditableSupportEnabled – правило поддержки Объект поставщика редактируется с сохранением поддержки.
- ObjectNotSupported – правило поддержки Объект поставщика снят с поддержки.
Значение по умолчанию:
- При постановке на поддержку: ObjectNotEditable.
- При обновлении поддержки: KeepCurrentRule.
Элемент <ChangesNotRecommendedRule> необязательный
Указываются правила поддержки для объектов поставщика с правилом поставки Изменения не рекомендуются. Элемент может принимать одно из следующих значений:
- KeepCurrentRule – сохранить текущее правило поддержки (только для обновления конфигурации на поддержке).
- ObjectNotEditable – правило поддержки Объект поставщика не редактируется.
- ObjectIsEditableSupportEnabled – правило поддержки Объект поставщика редактируется с сохранением поддержки.
- ObjectNotSupported – правило поддержки Объект поставщика снят с поддержки.
Значение по умолчанию:
- При постановке на поддержку: ObjectNotEditable.
- При обновлении поддержки: KeepCurrentRule.
Элемент <ModifiedObjectsWithoutGetFromSecondConfigurationRule>
В этом элементе указываются правила поддержки для измененных объектов с режимом объединения, отличным от Взять из второй конфигурации.
Элемент <ChangesAllowedRule> необязательный
Указываются правила поддержки для объектов поставщика с правилом поставки Изменения разрешены. Элемент может принимать одно из следующих значений:
- KeepCurrentRule – сохранить текущее правило поддержки (только для обновления конфигурации на поддержке).
- ObjectNotEditable – правило поддержки Объект поставщика не редактируется.
- ObjectIsEditableSupportEnabled – правило поддержки Объект поставщика редактируется с сохранением поддержки.
- ObjectNotSupported – правило поддержки Объект поставщика снят с поддержки.
Значение по умолчанию:
- При постановке на поддержку: ObjectIsEditableSupportEnabled.
- При обновлении поддержки: KeepCurrentRule.
Элемент <ChangesNotRecommendedRule> необязательный
Указываются правила поддержки для объектов поставщика с правилом поставки Изменения не рекомендуются. Элемент может принимать одно из следующих значений:
- KeepCurrentRule – сохранить текущее правило поддержки (только для обновления конфигурации на поддержке).
- ObjectNotEditable – правило поддержки Объект поставщика не редактируется.
- ObjectIsEditableSupportEnabled – правило поддержки Объект поставщика редактируется с сохранением поддержки.
- ObjectNotSupported – правило поддержки Объект поставщика снят с поддержки.
Значение по умолчанию:
- При постановке на поддержку: ObjectIsEditableSupportEnabled.
- При обновлении поддержки: KeepCurrentRule.
Элемент <Parameters>
Общее описание
Этот элемент содержит параметры объединения и не является обязательным.
Элемент имеет следующий состав:
<Parameters>
<ConfigurationsRelation/>
<ComparisonLanguages>
<Language/>
</ComparisonLanguages>
<AllowMainConfigurationObjectDeletion/>
<CopyObjectsMode/>
</Parameters>
Элемент <ConfigurationsRelation> необязательный
Элемент определяет связь между основной и второй конфигурациями. Элемент может принимать одно из следующих значений:
- ConfigurationsNotRelated – основная конфигурация не связана со второй;
- SecondConfigurationIsDescendantOfMainConfiguration – вторая конфигурация является потомком основной;
- MainConfigurationIsDescendantOfSecondConfiguration – основная конфигурация является потомком второй конфигурации.
Значение по умолчанию: ConfigurationsNotRelated.
Элемент <AllowMainConfigurationObjectDeletion> необязательный
Элемент указывает на возможность удаления объектов основной конфигурации.
Тип: Boolean/Булево.
Значение по умолчанию: False.
Элемент <CopyObjectsMode> необязательный
Элемент определяет режим копирования объектов загружаемой конфигурации. В этом случае внутренние идентификаторы объектов не сохраняются.
Тип: Boolean/Булево.
Значение по умолчанию: False.
Элемент <ComparisonLanguages>
Указывает, что используется выборочное сравнение по языкам. Коды языков, используемые для сравнения, описываются элементами Language.
Элемент <Conformities>
Этот элемент содержит перечень объектов, соответствие которых установлено вручную, и не является обязательным.
Элемент имеет следующий состав:
<Conformities>
<Conformity/>
</Conformities>
Элемент <Conformity>
Элемент определяет пару сопоставленных объектов.
Элемент содержит следующие атрибуты:
fullName обязательный
Полное имя объекта основной конфигурации.
Тип: String/Строка.
fullNameInSecondConfiguration обязательный
Полное имя объекта второй конфигурации.
Тип: String/Строка.
Элемент <Objects>
Общее описание
Этот элемент содержит параметры объединения конфигурационных объектов и не является обязательным.
Элемент имеет следующий состав:
<Objects>
<Configuration>
<MergeRule/>
<MergeRuleForPropertiesChangedTwice/>
<MergeRuleForPropertiesChangedOnce/>
<ObjectOrder/>
<Properties/>
</Configuration>
<Object>
<MergeRule/>
<MergeRuleForPropertiesChangedTwice/>
<MergeRuleForPropertiesChangedOnce/>
<ObjectOrder/>
<Subsystem>
<MergeRule/>
<MergeRuleForPropertiesChangedTwice/>
<MergeRuleForPropertiesChangedOnce/>
<ObjectOrder/>
</Subsystem>
<Properties/>
</Object>
</Objects>
Элемент <Configuration>
Описывает параметры объединения корневого конфигурационного элемента. В состав элемента должен входить хотя бы один из элементов <MergeRule>, <MergeRuleForPropertiesChangedTwice>, <MergeRuleForPropertiesChangedOnce>, <ObjectOrder>, <Properties>.
Элемент <MergeRule> необязательный
Описывает режим объединения корневого элемента.
Элемент <MergeRuleForPropertiesChangedTwice> необязательный
Описывает режим объединения дважды измененных свойств корневого элемента.
Элемент <MergeRuleForPropertiesChangedOnce> необязательный
Описывает режим объединения свойств корневого элемента конфигурации, измененного только в одной конфигурации.
Элемент <ObjectOrder> необязательный
Описывает порядок подчиненных объектов.
Элемент <Properties> необязательный
Настройки объединения свойств корневого объекта конфигурации.
Элемент <Object>
Описывает параметры объединения конкретного объекта конфигурации.
Элемент содержит следующие атрибуты:
fullName необязательный
Полное имя объекта в первой конфигурации.
При настройке объединения конфигураций следует указать один из атрибутов: fullName или fullNameInSecondConfiguration.
Тип: String/Строка.
fullNameInSecondConfiguration
Полное имя объекта во второй конфигурации.
При настройке объединения конфигураций следует указать один из атрибутов: fullName или fullNameInSecondConfiguration.
Тип: String/Строка.
В состав элемента должен входить хотя бы один из элементов <MergeRule>, <ObjectOrder>, <Properties>, <Subsystem>.
Если режим объединения не равен DoNotMerge и:
- если объект есть только в основной конфигурации, объект будет удален;
- если объект есть только во второй конфигурации, объект будет добавлен.
Элемент <MergeRule> необязательный
Описывает режим объединения объекта.
Элемент <MergeRuleForPropertiesChangedTwice> необязательный
Описывает режим объединения дважды измененных свойств объекта.
Элемент <MergeRuleForPropertiesChangedOnce> необязательный
Описывает режим объединения свойств объекта, измененного только в одной конфигурации.
Элемент <ObjectOrder> необязательный
Описывает порядок подчиненных объектов объекта.
Элемент <Subsystem>
Описывает параметры объединения объектов, входящих в состав подсистемы. Используется только для объектов, описывающих подсистему.
includeObjectsFromSubordinateSubsystems обязательный
Если атрибут указан, в список объектов обработки попадут все объекты (вместе с подчиненными), входящие в состав подсистемы, описанной родительским элементом.
Тип: Boolean/Булево.
configuration обязательный
Определяет, из какой конфигурации брать состав подсистемы.
Тип: String/Строка.
Возможные значения:
- Main – взять из основной конфигурации. Используется по умолчанию.
- Second – взять из второй конфигурации.
Элемент <MergeRule> необязательный
Описывает режим объединения объекта.
Элемент <MergeRuleForPropertiesChangedTwice> необязательный
Описывает режим объединения дважды измененных свойств объекта.
Элемент <MergeRuleForPropertiesChangedOnce> необязательный
Описывает режим объединения свойств объекта, измененного только в одной конфигурации.
Элемент <ObjectOrder> необязательный
Описывает порядок подчиненных объектов объекта.
Вспомогательные элементы
Элемент <Properties>
Общее описание
Элемент определяет параметры объединения свойств объекта конфигурации.
Элемент имеет следующий состав:
<Properties>
<Property name="…">
<MergeRule/>
<MergeRuleForPropertiesChangedTwice/>
<MergeRuleForPropertiesChangedOnce/>
<Module>
<Methods/>
<Patch/>
</Module>
<FormModule>
<MergeRule/>
<MergeRuleForPropertiesChangedTwice/>
<MergeRuleForPropertiesChangedOnce/>
<Module/>
</FormModule>
<SpreadsheetDocument>
<MergeRule/>
<MergeRuleForPropertiesChangedTwice/>
<MergeRuleForPropertiesChangedOnce/>
</SpreadsheetDocument>
<Types>
<Type>
<MergeRule/>
</Type>
…
</Types>
<Content>
<Item>
<MergeRule/>
</Item>
…
</Content>
<Property/>
</Properties>
Элемент <Property>
Элемент определяет параметры объединения конкретного свойства объекта конфигурации.
Элемент содержит следующие атрибуты:
name
Имя свойства объекта конфигурации. В зависимости от значения этого атрибута в состав элемента <Property> может входить один из следующих элементов: <Module>, <FormModule>, <SpreadsheetDocument>, <Types>, <Content>.
Тип: String/Строка.
В состав элемента входят следующие элементы:
Элемент <MergeRule>
Описывает режим объединения свойства.
Элемент <MergeRuleForPropertiesChangedTwice>
Описывает режим объединения дважды измененных свойств объекта.
Элемент <MergeRuleForPropertiesChangedOnce> необязательный
Описывает режим объединения свойств объекта, измененного только в одной конфигурации.
Элемент <Module>
Элемент описывает дополнительные параметры объединения модуля.
Элемент состоит из следующих элементов:
Элемент <Methods>
Элемент определяет параметры объединения модуля по процедурам.
Элемент <Patch>
Информация, предназначенная для автоматизированного внесения изменений в текст модуля на встроенном языке в универсальном формате (unidiff).
Элемент <FormModule>
Элемент описывает дополнительные параметры объединения модуля формы.
Элемент состоит из следующих элементов:
Элемент <MergeRule>
Описывает режим объединения модуля.
Элемент <MergeRuleForPropertiesChangedTwice>
Описывает режим объединения модуля, если форма изменялась дважды.
Элемент <MergeRuleForPropertiesChangedOnce>
Описывает режим объединения модуля, измененного только в одной конфигурации.
Элемент <Module>
Содержит дополнительные параметры объединения модуля формы.
Элемент <SpreadsheetDocument>
Элемент определяет дополнительные параметры для объединения табличного документа.
Элемент состоит из следующих элементов:
Элемент <MergeRule>
Описывает режим объединения табличного документа. Может принимать одно из следующих значений:
- Merge – объединить документы.
- Unite – включить содержимое обоих табличных документов.
Элемент <MergeRuleForPropertiesChangedTwice>
Описывает режим объединения, если табличный документ изменен дважды.
Элемент <MergeRuleForPropertiesChangedOnce>
Описывает режим объединения табличного документа, измененного только в одной конфигурации.
Элемент <Types>
Описание элемента
Элемент описывает дополнительные параметры объединения типов.
Элемент состоит из одного или нескольких элементов:
Элемент <Type>
Элемент определяет настройки объединения для конкретного типа.
Элемент <Type>
Элемент содержит следующие атрибуты:
name обязательный
Полное имя типа, для которого описывается правило объединения.
Тип: String/Строка.
В состав элемента должен входить один элемент <MergeRule>.
Элемент <MergeRule> обязательный
Описывает режим объединения объекта.
Элемент <Content>
Описание элемента
Элемент определяет дополнительные настройки объединения составов плана обмена, подсистем, функциональных опций.
Элемент состоит из одного или нескольких элементов:
Элемент <Item>
Элемент определяет параметры объединения для конкретного элемента состава вышеуказанных объектов.
Элемент <Item>
Элемент содержит следующие атрибуты:
name обязательный
Полное имя типа, для которого описывается правило объединения.
Тип: String/Строка.
В состав элемента должен входить один элемент <MergeRule>.
Элемент <MergeRule> обязательный
Описывает режим объединения объекта.
Элемент <Methods>
Общее описание
Этот элемент определяет настройки объединения модулей конфигурации. Элемент содержит один или несколько элементов, описывающих настройки:
- объединения процедур/функций (элемент <Method>). Таких элементов может быть один или несколько;
- объединения раздела объявления переменных (элемент <VariableDeclarationArea>). Такой элемент может быть только один или отсутствовать;
- объединения раздела основной программы (элемент <MainArea>). Такой элемент может быть только один или отсутствовать.
Элемент имеет следующий состав:
<Methods>
<Method>
<MergeRule/>
<Patch/>
<Method/>
<VariableDeclarationArea>
<Methods/>
<Patch/>
</VariableDeclarationArea>
<MainArea>
<Methods/>
<Patch/>
</MainArea>
</Methods>
Элемент <Method>
Элемент определяет настройки объединения конкретной процедуры или функции модуля на встроенном языке.
Элемент содержит следующие атрибуты:
name
Название метода в основной и второй конфигурациях, если не указан атрибут NameInSecondConfiguration.
Тип: String/Строка.
nameInSecondConfiguration
Название метода во второй конфигурации, если соответствие установлено вручную. Может отсутствовать.
Тип: String/Строка.
Особенности поведения:
- если процедура есть в обоих файлах, будет выполнено объединение согласно режиму или использовано содержимое элемента <Patch>;
- при наличии метода только в первом файле он будет удален, если режим объединения не равен DoNotMerge;
- при наличии метода только во втором файле он будет добавлен, если режим объединения не равен DoNotMerge.
В состав элемента входят следующие элементы:
Элемент <MergeRule>
Описывает режим объединения метода.
Элемент <Patch>
Информация, предназначенная для автоматизированного внесения изменений в текст модуля на встроенном языке в универсальном формате (unidiff).
Элемент <VariableDeclarationArea>
Элемент определяет параметры объединения для раздела объявления переменных.
В состав элемента входят следующие элементы:
Элемент <MergeRule>
Описывает режим объединения раздела объявления переменных.
Элемент <Patch>
Информация, предназначенная для автоматизированного внесения изменений в текст модуля на встроенном языке в универсальном формате (unidiff).
Элемент <MainArea>
Элемент определяет параметры объединения для раздела основной программы.
В состав элемента входят следующие элементы:
Элемент <MergeRule>
Описывает режим объединения раздела основной программы.
Элемент <Patch>
Информация, предназначенная для автоматизированного внесения изменений в текст модуля на встроенном языке в универсальном формате (unidiff).
Элемент <MergeRule>
Элемент определяет режим объединения элемента. Может принимать одно из следующих значений:
- DoNotMerge – не объединять.
- GetFromSecondConfiguration – взять из второй конфигурации.
- MergePrioritizingMainConfiguration – объединить с приоритетом основной конфигурации.
- MergePrioritizingSecondConfiguration – объединить с приоритетом второй конфигурации.
- MergeWithExternalTool – объединить с помощью внешней программы (поддерживается модулями).
Элемент <MergeRuleForPropertiesChangedTwice>
Описывает режим объединения дважды измененных свойств объекта. Может принимать одно из следующих значений:
- DoNotMerge – не объединять.
- GetFromSecondConfiguration – взять из второй конфигурации.
- MergePrioritizingMainConfiguration – объединить с приоритетом основной конфигурации.
- MergePrioritizingSecondConfiguration – объединить с приоритетом второй конфигурации.
- MergeWithExternalTool – объединить с помощью внешней программы (поддерживается модулями).
Элемент <MergeRuleForPropertiesChangedOnce>
Описывает режим объединения свойств объектов, измененных только в одной из конфигураций. Может принимать одно из следующих значений:
- DoNotMerge – не объединять.
- GetFromSecondConfiguration – взять из второй конфигурации.
Элемент <ObjectOrder>
Описывает порядок подчиненных объектов. Может принимать одно из следующих значений:
- GetFromMainConfiguration – взять порядок из основной конфигурации.
- GetFromSecondConfiguration – взять порядок из второй конфигурации.