Перенос системных настроек через svn

Коллеги, приветствую.

Подскажите, пожалуйста, как можно перенести набор системных настроек через svn?

Во вкладке Данные переносимого пакета я создал новую схему для всех созданных системных настроек с фильтром "Код начинается на ...", схема показала 3 нужные записи.

Попробовал создать схему привязки Значений системной настройки (с фильтром Системная настройка.Код начинается на ... - т.е. зеркально предыдущему фильтру), при показе данных отображает 3 корректных значения, но при сохранении выдаётся ошибка для всех трёх значений: "Не привязаны данные для связанного объекта "SysSettings" по колонке "SysSettings"" и дальше Id системных настроек.

Но если я пытаюсь добавить ещё одну схему привязки системной настройки с другим фильтром мне выдаётся сообщение, что эта запись уже привязана в другой схеме.

Подскажите, пожалуйста, корректный способ переноса настроек.

Нравится

9 комментариев

Что интересно. Сейчас (в процессе тестирования) попробовал изменить в настройке фильтров ограничение с И на ИЛИ для единственного фильтра и все записи корректно привязались, вторая схема также увидела привязанные данные.

Правда до этого я указал один раз в фильтре конкретное значение записи в режиме фильтра "равно".

Теперь изменения фильтров на И или ИЛИ не отменяют успешность привязки данных к пакету.

Похоже на ошибку в работе привязки данных...

"Фёдоров Александр. Афлекс" написал:Подскажите, пожалуйста, как можно перенести набор системных настроек через svn?

Наиболее гарантированный, а так же с наиболее ожидаемым поведением - это SQL-скрипт.

"Севостьянов Илья Сергеевич" написал:
Наиболее гарантированный, а так же с наиболее ожидаемым поведением - это SQL-скрипт.

Это всё-таки хардкор без поддержки логики приложения...

Если есть штатные рабочие инструменты, хочется сначала пользоваться ими, пока не будет доказано, что они неработоспособны.

Пока получилось, что надо как минимум одно условие прописать в качестве прямого "равно", тогда данные привязываются, а дальше можно ставить любые условия. Буду ещё дальше смотреть как оно работает.

"Фёдоров Александр. Афлекс" написал:Если есть штатные рабочие инструменты, хочется сначала пользоваться ими, пока не будет доказано, что они неработоспособны.

Они не предназначаются для переноса:
1) Системных настроек и их значений
2) Настройки колонок и их значений
3) Организационной структуры
4) Пользовательских прав.

Об этом, не однократно заявляли специалисты тех.поддрежки.

Если Вы хотите "надежно" переносить Ваши системные настройки - Вам необходимо написать SQL-сценарий, при этом желательно с логикой проверки предварительного существования, а так же проверкой - возможно, связанных данных.
ИМХО самый подходящий вариант (для TSQL) это MERGE скрипт, я о нем писал.

PS: Через данные, нормально переносятся группы системных настроект, включение настроек в группы, но самими значениями настроек - иногда бывают проблемы.

"Севостьянов Илья Сергеевич" написал:

Они не предназначаются для переноса:

1) Системных настроек и их значений

...

Об этом неоднократно заявляли специалисты тех.поддержки.

...

Это утверждение входит в противоречие с рекомендацией (которые звучали в том числе и на форуме Террасофт): при разработке новых объектов для задания значений по умолчанию использовать системные переменные.

Объективно есть потребность в переносе системных настроек между окружениями, да и оргструктуру с настройкой прав было бы удобнее сначала тестировать, а затем переносить пакетом.

При этом SQL-скрипт - это слишком низкоуровневый инструмент, для которого требуется разработчик с неплохим знанием SQL.

Здравствуйте!

1. Создать привязку на системную настройку
2. Создать привязку на само значение System settings value
Скриншот примера во вложении.

да нормально они переносятся - привяжите нужные данные для таблиц
SysSettings (обязательно)
SysSettingsFolder (группы настроек)
SysSettingsFolderLcz (локализация групп настроек)
SysSettingsGrantor (вхождение пользователей, если настройка "персональная")
SysSettingsInFolder (вхождение настройки в группу настроек)
SysSettingsLcz (локализация настроек)
SysSettingsReferenceSchema (не знаю, что это, вроде не нужно)
SysSettingsValue (обязательно)

они даже установятся в правильном порядке.
после установки только надо бы редис очистить и перезайти на клиенте

и еще момент, если настройка уже была, то, чтобы значение поменялось, надо ставить признак "Обязательно для обновления" на соответствующую колонку

"Мотков Илья" написал:
1. Создать привязку на системную настройку

2. Создать привязку на само значение System settings value


Илья, да, я так и сделал. В первоначальном моём сообщении я писал про то, что не сработала привязка данных из-за группового фильтра. После указания прямого фильтра всё заработало.

Дмитрий, спасибо за столь развёрнуты ответ. За "Обязательно для обновления" - отдельное спасибо.

"Фёдоров Александр. Афлекс" написал:За "Обязательно для обновления" - отдельное спасибо.

Поддерживаю... мы как-то отказались от переноса настроек данными именно по этой причине, эта "особенность" нам была не известна.

Показать все комментарии