Хранилище настроек (постановка)

Материал из GedeminWiki
Перейти к: навигация, поиск

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

Возможно несколько способов организации:

На все хранилище имеется одна папка с подчиненными настройке файлами

В этом случае при сохранении мы всегда указываем корневую папку хранилища. Главный файл настройки сохраняется в корне папки setting (или в папку соответствующую тегу, типу настройки), подчиненные файлы помещаются в папку хранения кода - data. Папка хранения кода будет содержать файлы vbs, dfm, fr, fr4, sql, содержащие логику работы приложения.

Получается следующая иерархия папок:

setting\
data\
function\
Acc_CalcNormExpenses.vbs
Tgdc_dlgGoodBeforePost.vbs
TgdcInvDocument147006557_63934951_DoOnNewRecord.vbs
form\
usrf_acc_taxposition.dfm
gdc_dlgAttrUserDefinedTreeUSR_ACC_TAXPOSITION.dfm
gdc_frmInvDocument147013038_109092844.dfm
report\
Приход_в_ценах_поставщика..fr
Драг_металы.fr4
stored_procedure\
USR$AC_GETADDSUM.sql
USR$FA_P_YEAR_BETWEEN.sql
trigger\
USR$INV_INVENTLINE.USR$BI_USR$INV_INVENTLINE.sql
USR$INV_CAR.USR$USR$INV_BI_CAR_NAME.sql
Мат_склад_макросы.xml
Общие_данные.xml

При сохранении настройки не в хранилище настроек, или при сохранении настройки-патча, включающего в себя объекты из разных настроек, формируется точно такая же структура:

VMK_SETTING\
data\
function\
Acc_CalcNormExpenses.vbs
form\
usrf_acc_taxposition.dfm
20100928_Исправления.xml

Папка с подчиненными файлами есть у каждой настройки

В этом случае необходимо каждому объекту (функции, процедуре) указать родную настройку, ту в папку которой он будет сохранятся. Получается следующая иерархия папок:

setting\
Мат_склад_макросы\
Tgdc_dlgGoodBeforePost.vbs
usrf_acc_taxposition.dfm
gdc_frmInvDocument147013038_109092844.dfm
USR$AC_GETADDSUM.sql
USR$INV_INVENTLINE.USR$BI_USR$INV_INVENTLINE.sql
USR$INV_CAR.USR$USR$INV_BI_CAR_NAME.sql
Приход_в_ценах_поставщика..fr
Драг_металы.fr4
Общие_данные\
TgdcInvDocument147006557_63934951_DoOnNewRecord.vbs
Acc_CalcNormExpenses.vbs
gdc_dlgAttrUserDefinedTreeUSR_ACC_TAXPOSITION.dfm
USR$FA_P_YEAR_BETWEEN.sql
Мат_склад_макросы.xml
Общие_данные.xml

При сохранении настройки не в хранилище настроек, или при сохранении настройки-патча, включающего в себя объекты из разных настроек, каждый объект сохраняется в папку соответствующую его родительской настройке:

VMK_SETTING\
Мат_склад_макросы\
Acc_CalcNormExpenses.vbs
Общие_данные\
usrf_acc_taxposition.dfm
20100928_Исправления.xml

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты