diff --git a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.epf b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.epf index 2b761c9..184ffa7 100644 Binary files a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.epf and b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.epf differ diff --git a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.xml b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.xml index dd25585..fff2020 100644 --- a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.xml +++ b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.xml @@ -1,30 +1,30 @@ - - - - - - c3831ec8-d8d5-4f93-8a22-f9bfae07327f - bbaa2ac9-df25-4069-92c7-acb62d30223c - - - 9b4f828a-21ea-44d4-af40-1b1b9d0f05c9 - 8b230d66-2ee4-4753-919c-4c17d05370a3 - - - - _ПодготовкаНастроекДляБазы - - - ru - Подготовка настроек для базы - - - - ExternalDataProcessor._ПодготовкаНастроекДляБазы.Form.Форма - - - -
Форма
-
-
+ + + + + + c3831ec8-d8d5-4f93-8a22-f9bfae07327f + bbaa2ac9-df25-4069-92c7-acb62d30223c + + + 9b4f828a-21ea-44d4-af40-1b1b9d0f05c9 + 8b230d66-2ee4-4753-919c-4c17d05370a3 + + + + _ПодготовкаНастроекДляБазы + + + ru + Подготовка настроек для базы + + + + ExternalDataProcessor._ПодготовкаНастроекДляБазы.Form.Форма + + + +
Форма
+
+
\ No newline at end of file diff --git a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма.xml b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма.xml index cb985a7..9b3be16 100644 --- a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма.xml +++ b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма.xml @@ -1,22 +1,22 @@ - - -
- - Форма - - - ru - Форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
+ + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PersonalComputer + MobileDevice + + + +
\ No newline at end of file diff --git a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form.xml b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form.xml index 752326d..b9291ca 100644 --- a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form.xml +++ b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form.xml @@ -1,821 +1,821 @@ - -
- None - - - ПриОткрытии - ПриСозданииНаСервере - ОбработкаПроверкиЗаполненияНаСервере - - - - ИмяФайлаНастроек - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Файл настроек</v8:content> - </v8:item> - - true - true - - - ru - D:\Folder\DB111.base_config - - - - - - ИмяФайлаНастроекПриИзменении - ИмяФайлаНастроекНачалоВыбора - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа команды</v8:content> - </v8:item> - - - - ru - Группа команды - - - None - false - - - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Общие</v8:content> - </v8:item> - - - - ru - Группа общие параметры - - - Vertical - StrongSeparation - - - - OSCRIPT - true - - - ru - c:\Program Files (x86)\OneScript\bin\oscript.exe - - - - - - - EXE1CV8 - - - ru - c:\Program Files (x86)\1cv8\8.3.9.2033\bin\1cv8.exe - - - - - - - FileBackup - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Файл Backup</v8:content> - </v8:item> - - - - ru - db111.bak - - - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа колонки</v8:content> - </v8:item> - - - - ru - Группа колонки - - - None - false - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа SQL</v8:content> - </v8:item> - - - - ru - Группа SQL - - - Vertical - None - false - - - - ВыгружатьБекап - Right - Auto - - - - ВыгружатьБекапПриИзменении - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>SQL Источник</v8:content> - </v8:item> - - Vertical - StrongSeparation - - - - Source_SQL_Server - - - ru - WORK_SQL_SERVER - - - - - - - Source_SQL_User - - - ru - sa - - - - - - - Source_SQL_Password - - - - - Source_SQL_Base - - - ru - db111 - - - - - - - - - ЗагружатьИзБекапа - Right - Auto - - - - ЗагружатьИзБекапаПриИзменении - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>SQL Приемник</v8:content> - </v8:item> - - - - ru - Группа общие параметры - - - Vertical - StrongSeparation - - - - Script_Restore - true - - - ru - Restore.sql - - - - - - Script_RestoreНачалоВыбора - - - - Current_SQL_Server - - - ru - DEV_SQL_SERVER - - - - - - - Current_SQL_User - - - ru - sa - - - - - - - Current_SQL_Password - - - - - Current_SQL_Base - - - ru - db111 - - - - - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа 1 С</v8:content> - </v8:item> - - - - ru - Группа 1 С - - - Vertical - None - false - - - - ПодключатьКХранилищу - Right - Auto - - - - ПодключатьКХранилищуПриИзменении - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Приемник</v8:content> - </v8:item> - - - - ru - Группа общие параметры - - - Vertical - StrongSeparation - - - - База_СтрокаПодключения - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Строка подключения</v8:content> - </v8:item> - - - - ru - /SSERVER/db111 - - - - - - - База_Пользователь - - - - - База_Пароль - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Хранилище</v8:content> - </v8:item> - - Vertical - StrongSeparation - - - - Хранилище_Адрес - - - - - Хранилище_Пользователь - - - - - Хранилище_Пароль - - - - - - - - - - - - - - cfg:ExternalDataProcessorObject._ПодготовкаНастроекДляБазы - - true - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Имя файла настроек</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Строка подключения</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сервер</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>OSCRIPT</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>1cv8.exe</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>File backup</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Script restore</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пользователь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пароль</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>База</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Загружать из бекапа</v8:content> - </v8:item> - - - xs:boolean - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Используемое имя файла</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сервер</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пароль</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>База</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пользователь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Выгружать бекап</v8:content> - </v8:item> - - - xs:boolean - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пользователь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пароль</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Адрес</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пользователь</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Пароль</v8:content> - </v8:item> - - - xs:string - - 0 - Variable - - - ShowError - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Подключать к хранилищу</v8:content> - </v8:item> - - - xs:boolean - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Записать</v8:content> - </v8:item> - - - - ru - Записать - - - Записать - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Прочитать</v8:content> - </v8:item> - - - - ru - Прочитать - - - Прочитать - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Тест обработки</v8:content> - </v8:item> - - - - ru - Тест обработки - - - ТестОбработки - - + + + None + + + ПриОткрытии + ПриСозданииНаСервере + ОбработкаПроверкиЗаполненияНаСервере + + + + ИмяФайлаНастроек + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Файл настроек</v8:content> + </v8:item> + + true + true + + + ru + D:\Folder\DB111.base_config + + + + + + ИмяФайлаНастроекПриИзменении + ИмяФайлаНастроекНачалоВыбора + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа команды</v8:content> + </v8:item> + + + + ru + Группа команды + + + None + false + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Общие</v8:content> + </v8:item> + + + + ru + Группа общие параметры + + + Vertical + StrongSeparation + + + + OSCRIPT + true + + + ru + c:\Program Files (x86)\OneScript\bin\oscript.exe + + + + + + + EXE1CV8 + + + ru + c:\Program Files (x86)\1cv8\8.3.9.2033\bin\1cv8.exe + + + + + + + FileBackup + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Файл Backup</v8:content> + </v8:item> + + + + ru + db111.bak + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа колонки</v8:content> + </v8:item> + + + + ru + Группа колонки + + + None + false + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа SQL</v8:content> + </v8:item> + + + + ru + Группа SQL + + + Vertical + None + false + + + + ВыгружатьБекап + Right + Auto + + + + ВыгружатьБекапПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>SQL Источник</v8:content> + </v8:item> + + Vertical + StrongSeparation + + + + Source_SQL_Server + + + ru + WORK_SQL_SERVER + + + + + + + Source_SQL_User + + + ru + sa + + + + + + + Source_SQL_Password + + + + + Source_SQL_Base + + + ru + db111 + + + + + + + + + ЗагружатьИзБекапа + Right + Auto + + + + ЗагружатьИзБекапаПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>SQL Приемник</v8:content> + </v8:item> + + + + ru + Группа общие параметры + + + Vertical + StrongSeparation + + + + Script_Restore + true + + + ru + Restore.sql + + + + + + Script_RestoreНачалоВыбора + + + + Current_SQL_Server + + + ru + DEV_SQL_SERVER + + + + + + + Current_SQL_User + + + ru + sa + + + + + + + Current_SQL_Password + + + + + Current_SQL_Base + + + ru + db111 + + + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа 1 С</v8:content> + </v8:item> + + + + ru + Группа 1 С + + + Vertical + None + false + + + + ПодключатьКХранилищу + Right + Auto + + + + ПодключатьКХранилищуПриИзменении + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Приемник</v8:content> + </v8:item> + + + + ru + Группа общие параметры + + + Vertical + StrongSeparation + + + + База_СтрокаПодключения + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Строка подключения</v8:content> + </v8:item> + + + + ru + /SSERVER/db111 + + + + + + + База_Пользователь + + + + + База_Пароль + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Хранилище</v8:content> + </v8:item> + + Vertical + StrongSeparation + + + + Хранилище_Адрес + + + + + Хранилище_Пользователь + + + + + Хранилище_Пароль + + + + + + + + + + + + + + cfg:ExternalDataProcessorObject._ПодготовкаНастроекДляБазы + + true + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя файла настроек</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Строка подключения</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сервер</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>OSCRIPT</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>1cv8.exe</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>File backup</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Script restore</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пользователь</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пароль</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>База</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Загружать из бекапа</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Используемое имя файла</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сервер</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пароль</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>База</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пользователь</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выгружать бекап</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пользователь</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пароль</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пользователь</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Пароль</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + ShowError + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подключать к хранилищу</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Записать</v8:content> + </v8:item> + + + + ru + Записать + + + Записать + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Прочитать</v8:content> + </v8:item> + + + + ru + Прочитать + + + Прочитать + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тест обработки</v8:content> + </v8:item> + + + + ru + Тест обработки + + + ТестОбработки + + \ No newline at end of file diff --git a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form/Module.bsl b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form/Module.bsl index 33679d0..3cb96f8 100644 --- a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form/Module.bsl +++ b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form/Module.bsl @@ -1,457 +1,486 @@ - - -&НаКлиентеНаСервереБезКонтекста -Функция РасширениеФайлаНастроек() - - Возврат "base_config"; - -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Функция КаталогПоиска() - - Возврат "\..\..\Configs\"; - -КонецФункции - - - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - НастроитьВидимостьДоступность(); - - ИспользуемоеИмяФайла = РеквизитФормыВЗначение( "Объект" ).ИспользуемоеИмяФайла; - - структ = ПеременныеОкружения(); - - Если структ.Свойство( "oscript" ) Тогда - - Элементы.OSCRIPT.СписокВыбора.Добавить( структ.oscript ); - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - - структ = ПеременныеОкружения(); - - Если структ.Свойство( "oscript" ) - И Элементы.OSCRIPT.СписокВыбора.НайтиПоЗначению( структ.oscript ) = Неопределено Тогда - - Элементы.OSCRIPT.СписокВыбора.Добавить( структ.oscript ); - - КонецЕсли; - - EXE1CV8 = КаталогПрограммы() + "\Bin\1cv8.exe" ; - - текФайл = Новый Файл( ИспользуемоеИмяФайла ); - каталогПоиска = Новый Файл( текФайл.Путь + КаталогПоиска() ); - - каталогПоиска.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтаФорма, Новый Структура("каталогПоиска", каталогПоиска.Путь))); - -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытииЗавершение(Существует, ДополнительныеПараметры) Экспорт - - Если Существует Тогда - - НачатьПоискФайлов(Новый ОписаниеОповещения("ПриОткрытииКаталогПоискаПроверен", ЭтаФорма), ДополнительныеПараметры.каталогПоиска , "*." + РасширениеФайлаНастроек(), Истина ); - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытииКаталогПоискаПроверен(НайденныеФайлы, ДополнительныеПараметры) Экспорт - - Для каждого цНайденныйФайл Из НайденныеФайлы Цикл - - Элементы.ИмяФайлаНастроек.СписокВыбора.Добавить( цНайденныйФайл.ПолноеИмя ); - - КонецЦикла; - -КонецПроцедуры - -&НаСервере -Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) - - Если Не ЗагружатьИзБекапа Тогда - - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_Server" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_User" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_Password" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_Base" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Script_Restore" ) ); - - КонецЕсли; - - Если Не ВыгружатьБекап Тогда - - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_Server" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_User" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_Password" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_Base" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "FileBackup" ) ); - - КонецЕсли; - - Если Не ПодключатьКХранилищу Тогда - - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "База_СтрокаПодключения" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "База_Пользователь" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "База_Пароль" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Хранилище_Адрес" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Хранилище_Пользователь" ) ); - ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Хранилище_Пароль" ) ); - - КонецЕсли; - -КонецПроцедуры - - - -&НаКлиенте -Процедура Прочитать(Команда) - - Если Не ЗначениеЗаполнено( ИмяФайлаНастроек ) Тогда - Возврат; - КонецЕсли; - - чтениеJSON = Новый ЧтениеJSON; - - чтениеJSON.ОткрытьФайл(ИмяФайлаНастроек); - соотПараметры = ПрочитатьJSON( ЧтениеJSON, Истина ); - чтениеJSON.Закрыть(); - - прочитанныеПараметры = Новый Соответствие; - - ПрочитатьПараметрыРекурсивно( соотПараметры, прочитанныеПараметры ); - - OSCRIPT = прочитанныеПараметры.Получить( "OSCRIPT" ); - EXE1CV8 = прочитанныеПараметры.Получить( "EXE1CV8" ); - FileBackup = прочитанныеПараметры.Получить( "FileBackup" ); - Script_Restore = прочитанныеПараметры.Получить( "Script_Restore" ); - - ВыгружатьБекап = прочитанныеПараметры.Получить( "Source_SQL.UseBackup" ); - Source_SQL_Server = прочитанныеПараметры.Получить( "Source_SQL.Server" ); - Source_SQL_User = прочитанныеПараметры.Получить( "Source_SQL.User" ); - Source_SQL_Password = прочитанныеПараметры.Получить( "Source_SQL.Password" ); - Source_SQL_Base = прочитанныеПараметры.Получить( "Source_SQL.Base" ); - - ЗагружатьИзБекапа = прочитанныеПараметры.Получить( "Current_SQL.UseRestore" ); - Current_SQL_Server = прочитанныеПараметры.Получить( "Current_SQL.Server" ); - Current_SQL_User = прочитанныеПараметры.Получить( "Current_SQL.User" ); - Current_SQL_Password = прочитанныеПараметры.Получить( "Current_SQL.Password" ); - Current_SQL_Base = прочитанныеПараметры.Получить( "Current_SQL.Base" ); - - База_СтрокаПодключения = прочитанныеПараметры.Получить( "Current_Base.Connect" ); - База_Пользователь = прочитанныеПараметры.Получить( "Current_Base.User" ); - База_Пароль = прочитанныеПараметры.Получить( "Current_Base.Password" ); - - ПодключатьКХранилищу = прочитанныеПараметры.Получить( "Current_Repo.Blind" ); - Хранилище_Адрес = прочитанныеПараметры.Получить( "Current_Repo.Connect" ); - Хранилище_Пользователь = прочитанныеПараметры.Получить( "Current_Repo.User" ); - Хранилище_Пароль = прочитанныеПараметры.Получить( "Current_Repo.Password" ); - - НастроитьВидимостьДоступность(); - -КонецПроцедуры - - -&НаКлиенте -Процедура Записать(Команда) - - Если Не ПроверитьЗаполнение() Тогда - Возврат; - КонецЕсли; - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.ОткрытьФайл( ИмяФайлаНастроек,,, Новый ПараметрыЗаписиJSON(, Символы.Таб )); - - соот = Новый Соответствие; - - общиеПараметры = Новый Соответствие; - общиеПараметры.Вставить( "OSCRIPT" , OSCRIPT ); - общиеПараметры.Вставить( "EXE1CV8" , EXE1CV8 ); - общиеПараметры.Вставить( "FileBackup" , FileBackup ); - общиеПараметры.Вставить( "Script_Restore", Script_Restore ); - - соот.Вставить( НСтр( "ru='Общие параметры'" ), общиеПараметры ); - - параметрыБазыИсточника = Новый Соответствие; - параметрыБазыИсточника.Вставить( "Source_SQL.UseBackup", ВыгружатьБекап ); - параметрыБазыИсточника.Вставить( "Source_SQL.Server", Source_SQL_Server ); - параметрыБазыИсточника.Вставить( "Source_SQL.User", Source_SQL_User ); - параметрыБазыИсточника.Вставить( "Source_SQL.Password", Source_SQL_Password ); - параметрыБазыИсточника.Вставить( "Source_SQL.Base", Source_SQL_Base ); - - - соот.Вставить( НСтр( "ru='Параметры базы-источника'" ), параметрыБазыИсточника ); - - параметрыБазыПриемника = Новый Соответствие; - параметрыБазыПриемника.Вставить( "Current_SQL.UseRestore", ЗагружатьИзБекапа ); - параметрыБазыПриемника.Вставить( "Current_SQL.Server", Current_SQL_Server ); - параметрыБазыПриемника.Вставить( "Current_SQL.User", Current_SQL_User ); - параметрыБазыПриемника.Вставить( "Current_SQL.Password", Current_SQL_Password ); - параметрыБазыПриемника.Вставить( "Current_SQL.Base", Current_SQL_Base ); - - параметрыБазыПриемника.Вставить( "Current_Base.Connect", База_СтрокаПодключения ); - параметрыБазыПриемника.Вставить( "Current_Base.User", База_Пользователь ); - параметрыБазыПриемника.Вставить( "Current_Base.Password", База_Пароль ); - - параметрыБазыПриемника.Вставить( "Current_Repo.Blind", ПодключатьКХранилищу ); - параметрыБазыПриемника.Вставить( "Current_Repo.Connect", Хранилище_Адрес ); - параметрыБазыПриемника.Вставить( "Current_Repo.User", Хранилище_Пользователь ); - параметрыБазыПриемника.Вставить( "Current_Repo.Password", Хранилище_Пароль ); - - соот.Вставить( НСтр( "ru='Параметры базы-приемника'" ), параметрыБазыПриемника ); - - ЗаписатьJSON( ЗаписьJSON, соот ); - - ЗаписьJSON.Закрыть(); - -КонецПроцедуры - - -&НаКлиенте -Процедура ИмяФайлаНастроекНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - - ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие ); - - Если ЗначениеЗаполнено( ИмяФайлаНастроек ) Тогда - - ДиалогОткрытияФайла.ПолноеИмяФайла = ИмяФайлаНастроек; - - Иначе - - имяБазы = Current_SQL_Base; - - Если Не ЗначениеЗаполнено( имяБазы ) Тогда - - имяБазы = "db111"; - - КонецЕсли; - - ДиалогОткрытияФайла.ПолноеИмяФайла = имяБазы + "." + РасширениеФайлаНастроек(); - - КонецЕсли; - - ДиалогОткрытияФайла.Фильтр = НСтр( "ru='Настройки базы'" ) + " (*." + РасширениеФайлаНастроек() + "|*." + РасширениеФайлаНастроек(); - ДиалогОткрытияФайла.МножественныйВыбор = Ложь; - ДиалогОткрытияФайла.Заголовок = НСтр( "ru='Выберите файл настройки'" ); - - ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("ИмяФайлаНастроекНачалоВыбораЗавершение", ЭтаФорма, Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла))); - -КонецПроцедуры - -&НаКлиенте -Процедура ИмяФайлаНастроекНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - ДиалогОткрытияФайла = ДополнительныеПараметры.ДиалогОткрытияФайла; - - Если (ВыбранныеФайлы <> Неопределено) Тогда - ИмяФайлаНастроек = ДиалогОткрытияФайла.ПолноеИмяФайла; - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ИмяФайлаНастроекПриИзменении(Элемент) - - Прочитать( Неопределено ); - -КонецПроцедуры - -&НаКлиенте -Процедура Script_RestoreНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - - ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие ); - - Если ЗначениеЗаполнено( ИмяФайлаНастроек ) Тогда - - ДиалогОткрытияФайла.ПолноеИмяФайла = Script_Restore; - - КонецЕсли; - - ДиалогОткрытияФайла.Фильтр = НСтр( "ru='Исходный файл SQL'" ) + " (*.sql)|*.sql"; - ДиалогОткрытияФайла.МножественныйВыбор = Ложь; - ДиалогОткрытияФайла.Заголовок = НСтр( "ru='Выберите файл со скриптом восстановления'" ); - - ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("ИмяФайлаНастроекНачалоВыбораЗавершение", ЭтаФорма, Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла))); - -КонецПроцедуры - -&НаКлиенте -Процедура Script_RestoreНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - ДиалогОткрытияФайла = ДополнительныеПараметры.ДиалогОткрытияФайла; - - Если (ВыбранныеФайлы <> Неопределено) Тогда - Script_Restore = ДиалогОткрытияФайла.ПолноеИмяФайла; - КонецЕсли; - -КонецПроцедуры - - - -&НаКлиенте -Процедура ЗагружатьИзБекапаПриИзменении(Элемент) - - Элементы.Группа_БазаПриемник_SQL.Доступность = ЗагружатьИзБекапа; - -КонецПроцедуры - -&НаКлиенте -Процедура ВыгружатьБекапПриИзменении(Элемент) - Элементы.Группа_БазаИсточник_SQL.Доступность = ВыгружатьБекап; -КонецПроцедуры - -&НаКлиенте -Процедура ПодключатьКХранилищуПриИзменении(Элемент) - Элементы.Группа_БазаПриемник.Доступность = ПодключатьКХранилищу; - Элементы.Группа_Хранилище.Доступность = ПодключатьКХранилищу; -КонецПроцедуры - - -#Область Прочее - -&НаКлиентеНаСервереБезКонтекста -Функция ПеременныеОкружения() - - ПеременныеОкружения = Новый Структура; - Попытка - - WshShell = Новый COMОбъект("WScript.Shell"); - WshSysEnv = WshShell.Environment("Process"); - - ПеременныеОкружения.Вставить("oscript" , WshSysEnv.Item("oscript")); - - Исключение - КонецПопытки; - - Возврат ПеременныеОкружения; - -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Процедура ПрочитатьПараметрыРекурсивно( Знач пПараметры, пПрочитенныеПараметры ) - - Для каждого цЭлемент Из пПараметры Цикл - - Если ТипЗнч( цЭлемент.Значение ) = Тип("Структура") - ИЛИ ТипЗнч( цЭлемент.Значение ) = Тип("Соответствие") Тогда - - ПрочитатьПараметрыРекурсивно( цЭлемент.Значение, пПрочитенныеПараметры ); - - Иначе - - пПрочитенныеПараметры.Вставить( цЭлемент.Ключ, цЭлемент.Значение ); - - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -&НаСервере -Процедура НастроитьВидимостьДоступность() - - Элементы.Группа_БазаПриемник_SQL.Доступность = ЗагружатьИзБекапа; - Элементы.Группа_БазаИсточник_SQL.Доступность = ВыгружатьБекап; - Элементы.Группа_БазаПриемник.Доступность = ПодключатьКХранилищу; - Элементы.Группа_Хранилище.Доступность = ПодключатьКХранилищу; - -КонецПроцедуры - - -#КонецОбласти - -Функция ТекущиеЗначения() - - текЗначения = Новый Структура; - - Для каждого цРеквизит Из ПолучитьРеквизиты() Цикл - - текЗначения.Вставить( цРеквизит.Имя, ЭтаФорма[цРеквизит.Имя] ); - - КонецЦикла; - - Возврат текЗначения; - -КонецФункции - - -&НаКлиенте -Процедура ТестОбработки(Команда) - - старЗначения = ТекущиеЗначения(); - - генератор = Новый ГенераторСлучайныхЧисел( ТекущаяУниверсальнаяДатаВМиллисекундах() ); - - тестовыеЗначения = Новый Структура("OSCRIPT,EXE1CV8,FileBackup,Script_Restore, - |Source_SQL_Server,Source_SQL_User,Source_SQL_Password,Source_SQL_Base, - |Current_SQL_Server,Current_SQL_User,Current_SQL_Password,Current_SQL_Base, - |База_СтрокаПодключения,База_Пользователь,База_Пароль, - |Хранилище_Адрес,Хранилище_Пользователь,Хранилище_Пароль"); - - Для каждого цЭлемент Из тестовыеЗначения Цикл - тестовыеЗначения.Вставить( цЭлемент.Ключ, Строка( генератор.СлучайноеЧисло() ) ); - КонецЦикла; - - тестовыеЗначения.Вставить( "ВыгружатьБекап", Истина ); - тестовыеЗначения.Вставить( "ЗагружатьИзБекапа", Истина ); - тестовыеЗначения.Вставить( "ПодключатьКХранилищу", Истина ); - - лИмяФайлаНастроек = ПолучитьИмяВременногоФайла( РасширениеФайлаНастроек() ); - - ИмяФайлаНастроек = лИмяФайлаНастроек; - - ЗаполнитьЗначенияСвойств( ЭтаФорма, тестовыеЗначения ); - - Записать( Неопределено ); - - ЗаполнитьЗначенияСвойств( ЭтаФорма, старЗначения,, "Объект" ); - ИмяФайлаНастроек = лИмяФайлаНастроек; - - Прочитать( Неопределено ); - - тестПрошел = Истина; - - Для каждого цЭлемент Из тестовыеЗначения Цикл - - Если Не цЭлемент.Значение = ЭтаФорма[цЭлемент.Ключ] Тогда - - Сообщение = Новый СообщениеПользователю(); - Сообщение.Текст = цЭлемент.Ключ + НСтр( "ru=': Различаются значения. Должно быть '" ) + цЭлемент.Значение; - Сообщение.Поле = цЭлемент.Ключ; - Сообщение.Сообщить(); - - тестПрошел = Ложь; - - КонецЕсли; - - КонецЦикла; - - Если тестПрошел Тогда - - ЗаполнитьЗначенияСвойств( ЭтаФорма, старЗначения,, "Объект" ); - - НачатьУдалениеФайлов(Новый ОписаниеОповещения("ТестОбработкиЗавершение", ЭтаФорма), лИмяФайлаНастроек ); - - ПоказатьОповещениеПользователя( НСтр( "ru='Тест прошел успешно'" ) ); - - КонецЕсли; - - НастроитьВидимостьДоступность(); - -КонецПроцедуры - -&НаКлиенте -Процедура ТестОбработкиЗавершение(ДополнительныеПараметры) Экспорт - -КонецПроцедуры - + + +&НаКлиентеНаСервереБезКонтекста +Функция РасширениеФайлаНастроек() + + Возврат "base_config"; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция КаталогПоиска() + + Возврат "\..\..\Configs\"; + +КонецФункции + + + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + НастроитьВидимостьДоступность(); + + ИспользуемоеИмяФайла = РеквизитФормыВЗначение( "Объект" ).ИспользуемоеИмяФайла; + + структ = ПеременныеОкружения(); + + Если структ.Свойство( "oscript" ) Тогда + + Элементы.OSCRIPT.СписокВыбора.Добавить( структ.oscript ); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + #Если Не ВебКлиент Тогда + + структ = ПеременныеОкружения(); + + Если структ.Свойство( "oscript" ) + И Элементы.OSCRIPT.СписокВыбора.НайтиПоЗначению( структ.oscript ) = Неопределено Тогда + + Элементы.OSCRIPT.СписокВыбора.Добавить( структ.oscript ); + + КонецЕсли; + + EXE1CV8 = КаталогПрограммы() + "1cv8.exe"; + + текФайл = Новый Файл( ИспользуемоеИмяФайла ); + каталогПоиска = Новый Файл( текФайл.Путь + КаталогПоиска() ); + + каталогПоиска.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтаФорма, Новый Структура("каталогПоиска", каталогПоиска.Путь))); + + #Иначе + + Отказ = Истина; + + ПоказатьПредупреждение(Новый ОписаниеОповещения("ПриОткрытииЗавершение_Отказ", ЭтаФорма), НСтр( "ru='Работа в веб-клиенте не поддерживается'" ) ); + + #КонецЕсли + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытииЗавершение_Отказ(ДополнительныеПараметры) Экспорт + + + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытииЗавершение(Существует, ДополнительныеПараметры) Экспорт + + Если Существует Тогда + + НачатьПоискФайлов(Новый ОписаниеОповещения("ПриОткрытииКаталогПоискаПроверен", ЭтаФорма), ДополнительныеПараметры.каталогПоиска , "*." + РасширениеФайлаНастроек(), Истина ); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытииКаталогПоискаПроверен(НайденныеФайлы, ДополнительныеПараметры) Экспорт + + Для каждого цНайденныйФайл Из НайденныеФайлы Цикл + + Элементы.ИмяФайлаНастроек.СписокВыбора.Добавить( цНайденныйФайл.ПолноеИмя ); + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + Если Не ЗагружатьИзБекапа Тогда + + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_Server" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_User" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_Password" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Current_SQL_Base" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Script_Restore" ) ); + + КонецЕсли; + + Если Не ВыгружатьБекап Тогда + + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_Server" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_User" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_Password" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Source_SQL_Base" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "FileBackup" ) ); + + КонецЕсли; + + Если Не ПодключатьКХранилищу Тогда + + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "База_СтрокаПодключения" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "База_Пользователь" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "База_Пароль" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Хранилище_Адрес" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Хранилище_Пользователь" ) ); + ПроверяемыеРеквизиты.Удалить( ПроверяемыеРеквизиты.Найти( "Хранилище_Пароль" ) ); + + КонецЕсли; + +КонецПроцедуры + + + +&НаКлиенте +Процедура Прочитать(Команда) + + Если Не ЗначениеЗаполнено( ИмяФайлаНастроек ) Тогда + Возврат; + КонецЕсли; + + #Если Не ВебКлиент Тогда + + чтениеJSON = Новый ЧтениеJSON; + + чтениеJSON.ОткрытьФайл(ИмяФайлаНастроек); + соотПараметры = ПрочитатьJSON( ЧтениеJSON, Истина ); + чтениеJSON.Закрыть(); + + прочитанныеПараметры = Новый Соответствие; + + ПрочитатьПараметрыРекурсивно( соотПараметры, прочитанныеПараметры ); + + OSCRIPT = прочитанныеПараметры.Получить( "OSCRIPT" ); + EXE1CV8 = прочитанныеПараметры.Получить( "EXE1CV8" ); + FileBackup = прочитанныеПараметры.Получить( "FileBackup" ); + Script_Restore = прочитанныеПараметры.Получить( "Script_Restore" ); + + ВыгружатьБекап = прочитанныеПараметры.Получить( "Source_SQL.UseBackup" ); + Source_SQL_Server = прочитанныеПараметры.Получить( "Source_SQL.Server" ); + Source_SQL_User = прочитанныеПараметры.Получить( "Source_SQL.User" ); + Source_SQL_Password = прочитанныеПараметры.Получить( "Source_SQL.Password" ); + Source_SQL_Base = прочитанныеПараметры.Получить( "Source_SQL.Base" ); + + ЗагружатьИзБекапа = прочитанныеПараметры.Получить( "Current_SQL.UseRestore" ); + Current_SQL_Server = прочитанныеПараметры.Получить( "Current_SQL.Server" ); + Current_SQL_User = прочитанныеПараметры.Получить( "Current_SQL.User" ); + Current_SQL_Password = прочитанныеПараметры.Получить( "Current_SQL.Password" ); + Current_SQL_Base = прочитанныеПараметры.Получить( "Current_SQL.Base" ); + + База_СтрокаПодключения = прочитанныеПараметры.Получить( "Current_Base.Connect" ); + База_Пользователь = прочитанныеПараметры.Получить( "Current_Base.User" ); + База_Пароль = прочитанныеПараметры.Получить( "Current_Base.Password" ); + + ПодключатьКХранилищу = прочитанныеПараметры.Получить( "Current_Repo.Blind" ); + Хранилище_Адрес = прочитанныеПараметры.Получить( "Current_Repo.Connect" ); + Хранилище_Пользователь = прочитанныеПараметры.Получить( "Current_Repo.User" ); + Хранилище_Пароль = прочитанныеПараметры.Получить( "Current_Repo.Password" ); + + НастроитьВидимостьДоступность(); + + #КонецЕсли + +КонецПроцедуры + + +&НаКлиенте +Процедура Записать(Команда) + + Если Не ПроверитьЗаполнение() Тогда + Возврат; + КонецЕсли; + + #Если Не ВебКлиент Тогда + + ЗаписьJSON = Новый ЗаписьJSON; + ЗаписьJSON.ОткрытьФайл( ИмяФайлаНастроек,,, Новый ПараметрыЗаписиJSON(, Символы.Таб )); + + соот = Новый Соответствие; + + общиеПараметры = Новый Соответствие; + общиеПараметры.Вставить( "OSCRIPT" , OSCRIPT ); + общиеПараметры.Вставить( "EXE1CV8" , EXE1CV8 ); + общиеПараметры.Вставить( "FileBackup" , FileBackup ); + общиеПараметры.Вставить( "Script_Restore", Script_Restore ); + + соот.Вставить( НСтр( "ru='Общие параметры'" ), общиеПараметры ); + + параметрыБазыИсточника = Новый Соответствие; + параметрыБазыИсточника.Вставить( "Source_SQL.UseBackup", ВыгружатьБекап ); + параметрыБазыИсточника.Вставить( "Source_SQL.Server", Source_SQL_Server ); + параметрыБазыИсточника.Вставить( "Source_SQL.User", Source_SQL_User ); + параметрыБазыИсточника.Вставить( "Source_SQL.Password", Source_SQL_Password ); + параметрыБазыИсточника.Вставить( "Source_SQL.Base", Source_SQL_Base ); + + + соот.Вставить( НСтр( "ru='Параметры базы-источника'" ), параметрыБазыИсточника ); + + параметрыБазыПриемника = Новый Соответствие; + параметрыБазыПриемника.Вставить( "Current_SQL.UseRestore", ЗагружатьИзБекапа ); + параметрыБазыПриемника.Вставить( "Current_SQL.Server", Current_SQL_Server ); + параметрыБазыПриемника.Вставить( "Current_SQL.User", Current_SQL_User ); + параметрыБазыПриемника.Вставить( "Current_SQL.Password", Current_SQL_Password ); + параметрыБазыПриемника.Вставить( "Current_SQL.Base", Current_SQL_Base ); + + параметрыБазыПриемника.Вставить( "Current_Base.Connect", База_СтрокаПодключения ); + параметрыБазыПриемника.Вставить( "Current_Base.User", База_Пользователь ); + параметрыБазыПриемника.Вставить( "Current_Base.Password", База_Пароль ); + + параметрыБазыПриемника.Вставить( "Current_Repo.Blind", ПодключатьКХранилищу ); + параметрыБазыПриемника.Вставить( "Current_Repo.Connect", Хранилище_Адрес ); + параметрыБазыПриемника.Вставить( "Current_Repo.User", Хранилище_Пользователь ); + параметрыБазыПриемника.Вставить( "Current_Repo.Password", Хранилище_Пароль ); + + соот.Вставить( НСтр( "ru='Параметры базы-приемника'" ), параметрыБазыПриемника ); + + ЗаписатьJSON( ЗаписьJSON, соот ); + + ЗаписьJSON.Закрыть(); + + #КонецЕсли + +КонецПроцедуры + + +&НаКлиенте +Процедура ИмяФайлаНастроекНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие ); + + Если ЗначениеЗаполнено( ИмяФайлаНастроек ) Тогда + + ДиалогОткрытияФайла.ПолноеИмяФайла = ИмяФайлаНастроек; + + Иначе + + имяБазы = Current_SQL_Base; + + Если Не ЗначениеЗаполнено( имяБазы ) Тогда + + имяБазы = "db111"; + + КонецЕсли; + + ДиалогОткрытияФайла.ПолноеИмяФайла = имяБазы + "." + РасширениеФайлаНастроек(); + + КонецЕсли; + + ДиалогОткрытияФайла.Фильтр = НСтр( "ru='Настройки базы'" ) + " (*." + РасширениеФайлаНастроек() + "|*." + РасширениеФайлаНастроек(); + ДиалогОткрытияФайла.МножественныйВыбор = Ложь; + ДиалогОткрытияФайла.Заголовок = НСтр( "ru='Выберите файл настройки'" ); + + ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("ИмяФайлаНастроекНачалоВыбораЗавершение", ЭтаФорма, Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла))); + +КонецПроцедуры + +&НаКлиенте +Процедура ИмяФайлаНастроекНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт + + ДиалогОткрытияФайла = ДополнительныеПараметры.ДиалогОткрытияФайла; + + Если (ВыбранныеФайлы <> Неопределено) Тогда + ИмяФайлаНастроек = ДиалогОткрытияФайла.ПолноеИмяФайла; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИмяФайлаНастроекПриИзменении(Элемент) + + Прочитать( Неопределено ); + +КонецПроцедуры + +&НаКлиенте +Процедура Script_RestoreНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие ); + + Если ЗначениеЗаполнено( ИмяФайлаНастроек ) Тогда + + ДиалогОткрытияФайла.ПолноеИмяФайла = Script_Restore; + + КонецЕсли; + + ДиалогОткрытияФайла.Фильтр = НСтр( "ru='Исходный файл SQL'" ) + " (*.sql)|*.sql"; + ДиалогОткрытияФайла.МножественныйВыбор = Ложь; + ДиалогОткрытияФайла.Заголовок = НСтр( "ru='Выберите файл со скриптом восстановления'" ); + + ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("ИмяФайлаНастроекНачалоВыбораЗавершение", ЭтаФорма, Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла))); + +КонецПроцедуры + +&НаКлиенте +Процедура Script_RestoreНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт + + ДиалогОткрытияФайла = ДополнительныеПараметры.ДиалогОткрытияФайла; + + Если (ВыбранныеФайлы <> Неопределено) Тогда + Script_Restore = ДиалогОткрытияФайла.ПолноеИмяФайла; + КонецЕсли; + +КонецПроцедуры + + + +&НаКлиенте +Процедура ЗагружатьИзБекапаПриИзменении(Элемент) + + Элементы.Группа_БазаПриемник_SQL.Доступность = ЗагружатьИзБекапа; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыгружатьБекапПриИзменении(Элемент) + Элементы.Группа_БазаИсточник_SQL.Доступность = ВыгружатьБекап; +КонецПроцедуры + +&НаКлиенте +Процедура ПодключатьКХранилищуПриИзменении(Элемент) + Элементы.Группа_БазаПриемник.Доступность = ПодключатьКХранилищу; + Элементы.Группа_Хранилище.Доступность = ПодключатьКХранилищу; +КонецПроцедуры + + +#Область Прочее + +&НаКлиентеНаСервереБезКонтекста +Функция ПеременныеОкружения() + + ПеременныеОкружения = Новый Структура; + Попытка + + WshShell = Новый COMОбъект("WScript.Shell"); + WshSysEnv = WshShell.Environment("Process"); + + ПеременныеОкружения.Вставить("oscript" , WshSysEnv.Item("oscript")); + + Исключение + КонецПопытки; + + Возврат ПеременныеОкружения; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Процедура ПрочитатьПараметрыРекурсивно( Знач пПараметры, пПрочитенныеПараметры ) + + Для каждого цЭлемент Из пПараметры Цикл + + Если ТипЗнч( цЭлемент.Значение ) = Тип("Структура") + ИЛИ ТипЗнч( цЭлемент.Значение ) = Тип("Соответствие") Тогда + + ПрочитатьПараметрыРекурсивно( цЭлемент.Значение, пПрочитенныеПараметры ); + + Иначе + + пПрочитенныеПараметры.Вставить( цЭлемент.Ключ, цЭлемент.Значение ); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура НастроитьВидимостьДоступность() + + Элементы.Группа_БазаПриемник_SQL.Доступность = ЗагружатьИзБекапа; + Элементы.Группа_БазаИсточник_SQL.Доступность = ВыгружатьБекап; + Элементы.Группа_БазаПриемник.Доступность = ПодключатьКХранилищу; + Элементы.Группа_Хранилище.Доступность = ПодключатьКХранилищу; + +КонецПроцедуры + + +#КонецОбласти + +Функция ТекущиеЗначения() + + текЗначения = Новый Структура; + + Для каждого цРеквизит Из ПолучитьРеквизиты() Цикл + + текЗначения.Вставить( цРеквизит.Имя, ЭтаФорма[цРеквизит.Имя] ); + + КонецЦикла; + + Возврат текЗначения; + +КонецФункции + + +&НаКлиенте +Процедура ТестОбработки(Команда) + + #Если Не ВебКлиент Тогда + + старЗначения = ТекущиеЗначения(); + + генератор = Новый ГенераторСлучайныхЧисел( ТекущаяУниверсальнаяДатаВМиллисекундах() ); + + тестовыеЗначения = Новый Структура("OSCRIPT,EXE1CV8,FileBackup,Script_Restore, + |Source_SQL_Server,Source_SQL_User,Source_SQL_Password,Source_SQL_Base, + |Current_SQL_Server,Current_SQL_User,Current_SQL_Password,Current_SQL_Base, + |База_СтрокаПодключения,База_Пользователь,База_Пароль, + |Хранилище_Адрес,Хранилище_Пользователь,Хранилище_Пароль"); + + Для каждого цЭлемент Из тестовыеЗначения Цикл + тестовыеЗначения.Вставить( цЭлемент.Ключ, Строка( генератор.СлучайноеЧисло() ) ); + КонецЦикла; + + тестовыеЗначения.Вставить( "ВыгружатьБекап", Истина ); + тестовыеЗначения.Вставить( "ЗагружатьИзБекапа", Истина ); + тестовыеЗначения.Вставить( "ПодключатьКХранилищу", Истина ); + + лИмяФайлаНастроек = ПолучитьИмяВременногоФайла( РасширениеФайлаНастроек() ); + + ИмяФайлаНастроек = лИмяФайлаНастроек; + + ЗаполнитьЗначенияСвойств( ЭтаФорма, тестовыеЗначения ); + + Записать( Неопределено ); + + ЗаполнитьЗначенияСвойств( ЭтаФорма, старЗначения,, "Объект" ); + ИмяФайлаНастроек = лИмяФайлаНастроек; + + Прочитать( Неопределено ); + + тестПрошел = Истина; + + Для каждого цЭлемент Из тестовыеЗначения Цикл + + Если Не цЭлемент.Значение = ЭтаФорма[цЭлемент.Ключ] Тогда + + Сообщение = Новый СообщениеПользователю(); + Сообщение.Текст = цЭлемент.Ключ + НСтр( "ru=': Различаются значения. Должно быть '" ) + цЭлемент.Значение; + Сообщение.Поле = цЭлемент.Ключ; + Сообщение.Сообщить(); + + тестПрошел = Ложь; + + КонецЕсли; + + КонецЦикла; + + Если тестПрошел Тогда + + ЗаполнитьЗначенияСвойств( ЭтаФорма, старЗначения,, "Объект" ); + + НачатьУдалениеФайлов(Новый ОписаниеОповещения("ТестОбработкиЗавершение", ЭтаФорма), лИмяФайлаНастроек ); + + ПоказатьОповещениеПользователя( НСтр( "ru='Тест прошел успешно'" ) ); + + КонецЕсли; + + НастроитьВидимостьДоступность(); + + #КонецЕсли + +КонецПроцедуры + +&НаКлиенте +Процедура ТестОбработкиЗавершение(ДополнительныеПараметры) Экспорт + +КонецПроцедуры +