1с mergesettings обновление как пользоваться сохраненными настройками
Interface MergeSettings
A representation of the model object 'Merge Settings'.
The following features are supported:
Method Summary
Returns the value of the 'Available Merge Rules' attribute list.
Returns the value of the 'Custom Settings' containment reference.
Returns the value of the 'Default Merge Rule' attribute.
Returns the value of the 'Merge Rule' attribute.
Returns the value of the 'Order Rule' containment reference.
Returns the value of the 'Can Be Merged' attribute.
* Tells whether the current merge rule equals to the default one.
Returns the value of the 'Have Children Excluded From Merge' attribute.
Returns the value of the 'Merge Rule Set By User' attribute.
Returns the value of the 'Must Be Merged' attribute.
Methods inherited from interface org.eclipse.emf.ecore.EObject
Methods inherited from interface com._1c.g5.v8.bm.core.IBmObject
Method Detail
getMergeRule
Returns the value of the 'Merge Rule' attribute. The literals are from the enumeration MergeRule . * The rule to be used during a merge process. This rule could be changed by the user in case if isCanBeMerged() is true. The values for overriding should be taken from the getAvailableMergeRules()
setMergeRule
getDefaultMergeRule
Returns the value of the 'Default Merge Rule' attribute. The literals are from the enumeration MergeRule . * The default merge rule calculated for the current node during the comparison process.
setDefaultMergeRule
getAvailableMergeRules
Returns the value of the 'Available Merge Rules' attribute list. The list contents are of type MergeRule . The literals are from the enumeration MergeRule . * The list of merge rules available for the node.
isMustBeMerged
Returns the value of the 'Must Be Merged' attribute. * Tells whether the node will be merged during the merge process using the corresponding merge rule.
This setting could be changed by the user in case if isCanBeMerged() is true.
setMustBeMerged
isCanBeMerged
setCanBeMerged
isHaveChildrenExcludedFromMerge
Returns the value of the 'Have Children Excluded From Merge' attribute. * Tells whether the node contains children excluded from merge. More technically, this flag is true when the node contains canBeMerged-children that are not mustBeMerged.
setHaveChildrenExcludedFromMerge
isMergeRuleSetByUser
Returns the value of the 'Merge Rule Set By User' attribute. * Tells whether the merge rule set by the user and therefore shouldn't be changed by merge rule's building algorithms.
setMergeRuleSetByUser
getOrderRule
Returns the value of the 'Order Rule' containment reference. * The rule to be used for ordering of child elements on merge. Not null only for comparison nodes that support ordering of their children.
setOrderRule
getCustomSettings
Returns the value of the 'Custom Settings' containment reference. * Additional custom settings that extend standard merge settings for specific node types.
setCustomSettings
Использование объекта ХранилищеОбщихНастроек. Считаю этот вариант наиболее удобным и гибким.
Объект доступен в глобальном контексте. Содержит следующие методы:
Сохранение настроек:
// ключи могут быть произвольными строками
КлючОбъекта = " MIKO " ;
КлючНастроек = "ПанельТелефонии" ;
// настройки могут быть произвольного типа
Настройки = Новый Структура ( "Это настройки произвольного типа, к примеру структура" , "" );
ИмяПользователя = ИмяПользователя ();
// имя пользователя - пользователь владелец настроек, если параметр не указать,
// то настройки будут сохранены для ТЕКУЩЕГО пользователя
ИмяПользователя = ИмяПользователя ();
ХранилищеОбщихНастроек .C охранить ( КлючОбъекта , КлючНастроек , Настройки , , ИмяПользователя );
Под пользователем понимается именно пользователь информационной базы! Пример получения имени текущего пользователя:
// получим имя
ИмяТекущегоПользователя = ИмяПользователя ();
// в типовых конфигурация используется справочник "Пользователи"
// в этом справочнике в стандартном реквизите "Код" обычно
// хранят информацию по имени пользователя, пример получения имени:
ИмяПользователя = Справочники . Пользователи . НайтиПоНаименованию ( "Администратор" ). Код ;
// обычно "Код", для этого справочника - строка фиксированной длинны, потому вероятно разумно обрезать пробелы справа:
ИмяПользователя = СокрП ( ИмяПользователя );
Восстановление настроек:
КлючОбъекта = " MIKO " ;
КлючНастроек = "ПанельТелефонии" ;
ВладелецНастроек = ИмяПользователя ();
// Для восстановления настроек необходимо воспользоваться функцией Загрузить
СтруктураНастроек = Неопределено;
Попытка
СтруктураНастроек = ХранилищеОбщихНастроек . Загрузить ( КлючОбъекта , КлючНастроек ,, ВладелецНастроек );
// если настроек нет, то будет возвращено значение "Неопределено"
Исключение
Сообщить ( "Нет прав на восстановление настроек." );
КонецПопытки;
Если СтруктураНастроек = Неопределено Тогда
Сообщить ( "Не вышло восстановить настройки!" );
КонецЕсли;
ВладелецНастроек - это имя пользователя, владельца настроек. Параметр очень важный.
Настройки других пользователей могут получать ТОЛЬКО пользователи с расширенными правами.
Необходимо право "АдминистрированиеДанных".
Пробелы справа игнорируются!
Плюсы
- Возможно работать со значениями настроек других пользователей.
- Доступность: Сервер, толстый клиент, внешнее соединение.
Получение всех ключей настроек по ключу объекта
// Пример получения всех настроек по ключу объекта
КлючОбъекта = "MIKO" ;
ВладелецНастроек = ИмяПользователя ();
Попытка
// возвращает список значений
// элементы списка - ключи настроек
СтруктураНастроек = ХранилищеОбщихНастроек . ПолучитьСписок ( КлючОбъекта , ВладелецНастроек );
Исключение
Сообщить ( "Нет прав на восстановление настроек." );
КонецПопытки;
Подведем итог
В рамках этой заметки я рассказал о двух вариантах работы с настройками пользователя. Пробуйте :).
При объединении конфигураций, содержащих большое количество изменений, хочется иметь возможность запомнить те настройки, которые были выполнены. Речь идёт о режимах объединения, индивидуальных настройках модулей и так далее. Особенно актуально это в тех случаях, когда объединение выполняется регулярно, или когда оно выполняется в несколько этапов.
Теперь у вас есть такая возможность. И даже более. Потому что теперь вы можете полностью автоматизировать операции сборки конфигураций.
XML файл настроек объединения конфигураций
Настройки объединения конфигураций (или настройки обновления конфигурации на поддержке) вы можете сохранять теперь в xml файл. Также вам доступна и обратная операция – загрузка этих настроек из файла.
Сохранять настройки вы можете вручную (командой Сохранить настройки объединения в файл…), или автоматически.
При этом в файл сохраняются:
- Минимальная версия платформы, поддерживающая данную версию настроек;
- Описания конфигураций;
- Параметры объединения;
- Признаки участия объекта/свойства в объединении;
- Установленные порядки подчиненных объектов;
- Настройки объединения свойств, в том числе настройки объединения модулей.
Так как файл сохранения настроек имеет формат XML, то у вас появляется ещё одна возможность его создания – вручную сформировать содержимое этого файла. Такой способ, по сравнению с формированием файла командой или автоматически, имеет дополнительные преимущества. Вы можете устанавливать правила не только на отдельные свойства, но и на объекты, с учетом вложенных объектов и подсистем. В том числе поддерживается иерархическая установка правил с возможностью уточнять правила для вложенных объектов. Это позволяет вам создавать универсальные шаблоны объединения.
Загрузить настройки объединения вы можете двумя способами. Во-первых, командой Загрузить настройки из файла…. При этом выполняется сброс к настройкам по умолчанию, и загрузка настроек из файла.
Во-вторых, командой Добавить настройки из файла…. Эта команда загружает настройки из файла, а те настройки, которых нет в файле, не сбрасываются.
При загрузке настроек платформа проверяет описания конфигураций. В случае если они не совпадают, выводится окно с описанием отличий. В нем вы можете либо продолжить загрузку настроек, либо отказаться от неё.
Интерфейс сравнения, объединения
Так как работа с настройками объединения требует новых действий, мы доработали интерфейс окна сравнения и объединения конфигураций.
Все команды мы собрали в подменю Действия, а самые востребованные из них вынесли в командную панель.
К дереву основной конфигурации мы добавили колонку, в которой цветом отображаются элементы дерева с измененными настройками по умолчанию. Светло-зеленый цвет означает, что объекты или свойства с измененными настройками по умолчанию есть среди подчиненных. А зеленый цвет означает, что настройки по умолчанию изменены у самого объекта или свойства.
Также мы добавили флажок Сохранять настройки автоматически. Если он установлен, то перед объединением настройки автоматически сохраняются в указанный файл.
Интерфейс объединения модулей
Следуя вашим пожеланиям, мы улучшили интерфейс объединения модулей. Например, в заголовке формы теперь выводится название модуля. Кроме этого в окне редактирования отображаются номера строк.
Окна сравнения и редактирования теперь синхронизированы. При нажатии мышью на номер строки в одном окне, курсор в другом окне перемещается на соответствующую строку. Аналогичным образом синхронно перемещается курсор при нажатии на кнопки перехода по отличиям в методе.
Окну редактирования мы добавили командную панель и реализовали синтаксическую подсказку при редактировании текста программы. В контекст подсказки входит основная конфигурация (необъединенная) и весь текущий объединенный модуль.
Пакетный режим конфигуратора
Мы выполнили ряд доработок для того, чтобы вы могли использовать новую функциональность в пакетном режиме запуска конфигуратора.
Во-первых, для объединения конфигураций с использованием файла настроек мы добавили новый параметр командной строки MergeCfg.
Кроме этого в параметр обновления конфигурации, находящейся на поддержке, UpdateCfg, мы добавили новые опции. Они позволяют выполнять обновление с использованием файла настроек.
И, наконец, для построения отчета о сравнении конфигураций мы реализовали новый параметр командной строки CompareCfg.
Все эти изменения параметров командной строки позволят вам автоматизировать операции объединения и обновления конфигураций, стоящих на поддержке.
Interface MergeSettings
A representation of the model object 'Merge Settings'.
The following features are supported:
Method Summary
Returns the value of the 'Available Merge Rules' attribute list.
Returns the value of the 'Custom Settings' containment reference.
Returns the value of the 'Default Merge Rule' attribute.
Returns the value of the 'Merge Rule' attribute.
Returns the value of the 'Order Rule' containment reference.
Returns the value of the 'Can Be Merged' attribute.
* Tells whether the current merge rule equals to the default one.
Returns the value of the 'Have Children Excluded From Merge' attribute.
Returns the value of the 'Merge Rule Set By User' attribute.
Returns the value of the 'Must Be Merged' attribute.
Methods inherited from interface org.eclipse.emf.ecore.EObject
Methods inherited from interface com._1c.g5.v8.bm.core.IBmObject
Method Detail
getMergeRule
Returns the value of the 'Merge Rule' attribute. The literals are from the enumeration MergeRule . * The rule to be used during a merge process. This rule could be changed by the user in case if isCanBeMerged() is true. The values for overriding should be taken from the getAvailableMergeRules()
setMergeRule
getDefaultMergeRule
Returns the value of the 'Default Merge Rule' attribute. The literals are from the enumeration MergeRule . * The default merge rule calculated for the current node during the comparison process.
setDefaultMergeRule
getAvailableMergeRules
Returns the value of the 'Available Merge Rules' attribute list. The list contents are of type MergeRule . The literals are from the enumeration MergeRule . * The list of merge rules available for the node.
isMustBeMerged
Returns the value of the 'Must Be Merged' attribute. * Tells whether the node will be merged during the merge process using the corresponding merge rule.
This setting could be changed by the user in case if isCanBeMerged() is true.
setMustBeMerged
isCanBeMerged
setCanBeMerged
isHaveChildrenExcludedFromMerge
Returns the value of the 'Have Children Excluded From Merge' attribute. * Tells whether the node contains children excluded from merge. More technically, this flag is true when the node contains canBeMerged-children that are not mustBeMerged.
setHaveChildrenExcludedFromMerge
isMergeRuleSetByUser
Returns the value of the 'Merge Rule Set By User' attribute. * Tells whether the merge rule set by the user and therefore shouldn't be changed by merge rule's building algorithms.
setMergeRuleSetByUser
getOrderRule
Returns the value of the 'Order Rule' containment reference. * The rule to be used for ordering of child elements on merge. Not null only for comparison nodes that support ordering of their children.
setOrderRule
getCustomSettings
Returns the value of the 'Custom Settings' containment reference. * Additional custom settings that extend standard merge settings for specific node types.
setCustomSettings
Читайте также: