From bf7e47051a20d867ad5fc733d5f11cda80117533 Mon Sep 17 00:00:00 2001 From: Anton Stepanov Date: Tue, 31 Jan 2017 17:46:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=87=D0=B5=D0=BB=20=D0=B2=D0=B5=D0=B1?= =?UTF-8?q?=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82.=20=D0=A2=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=B5=D0=B5,=20=D1=87=D1=82=D0=BE=D0=B1=D1=8B=20=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=20=D0=BD=D0=B5=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=D0=BE=D1=81=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_ПодготовкаНастроекДляБазы.epf | Bin 11558 -> 11699 bytes .../_ПодготовкаНастроекДляБазы.xml | 58 +- .../_ПодготовкаНастроекДляБазы/Forms/Форма.xml | 42 +- .../_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form.xml | 1640 ++++++++--------- .../_ПодготовкаНастроекДляБазы/Forms/Форма/Ext/Form/Module.bsl | 943 +++++----- 5 files changed, 1356 insertions(+), 1327 deletions(-) diff --git a/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.epf b/epf/ИзменениеНастроек/_ПодготовкаНастроекДляБазы.epf index 2b761c975db9d77b86124738c253eadd5ccf65e2..184ffa7571fec57ce83b36ac609d0d6980fd94b2 100644 GIT binary patch delta 7739 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 - - - - - 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='Тест прошел успешно'" ) ); + + КонецЕсли; + + НастроитьВидимостьДоступность(); + + #КонецЕсли + +КонецПроцедуры + +&НаКлиенте +Процедура ТестОбработкиЗавершение(ДополнительныеПараметры) Экспорт + +КонецПроцедуры +