You've already forked oScript-Examples
mirror of
https://github.com/Stepa86/oScript-Examples.git
synced 2026-04-23 19:31:06 +02:00
Учел вебклиент. Точнее, чтобы там не открывалось
This commit is contained in:
Binary file not shown.
@@ -1,30 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
|
||||
<ExternalDataProcessor uuid="f86c2db8-7dd5-483b-b7ad-4b1b04e44978">
|
||||
<InternalInfo>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
|
||||
<xr:ObjectId>bbaa2ac9-df25-4069-92c7-acb62d30223c</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:GeneratedType name="ExternalDataProcessorObject._ПодготовкаНастроекДляБазы" category="Object">
|
||||
<xr:TypeId>9b4f828a-21ea-44d4-af40-1b1b9d0f05c9</xr:TypeId>
|
||||
<xr:ValueId>8b230d66-2ee4-4753-919c-4c17d05370a3</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>_ПодготовкаНастроекДляБазы</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Подготовка настроек для базы</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<DefaultForm>ExternalDataProcessor._ПодготовкаНастроекДляБазы.Form.Форма</DefaultForm>
|
||||
<AuxiliaryForm/>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Form>Форма</Form>
|
||||
</ChildObjects>
|
||||
</ExternalDataProcessor>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
|
||||
<ExternalDataProcessor uuid="f86c2db8-7dd5-483b-b7ad-4b1b04e44978">
|
||||
<InternalInfo>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
|
||||
<xr:ObjectId>bbaa2ac9-df25-4069-92c7-acb62d30223c</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:GeneratedType name="ExternalDataProcessorObject._ПодготовкаНастроекДляБазы" category="Object">
|
||||
<xr:TypeId>9b4f828a-21ea-44d4-af40-1b1b9d0f05c9</xr:TypeId>
|
||||
<xr:ValueId>8b230d66-2ee4-4753-919c-4c17d05370a3</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>_ПодготовкаНастроекДляБазы</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Подготовка настроек для базы</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<DefaultForm>ExternalDataProcessor._ПодготовкаНастроекДляБазы.Form.Форма</DefaultForm>
|
||||
<AuxiliaryForm/>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Form>Форма</Form>
|
||||
</ChildObjects>
|
||||
</ExternalDataProcessor>
|
||||
</MetaDataObject>
|
||||
@@ -1,22 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
|
||||
<Form uuid="573192f4-b840-4d6b-a045-202127ad7c74">
|
||||
<Properties>
|
||||
<Name>Форма</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Форма</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<FormType>Managed</FormType>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<UsePurposes>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
|
||||
</UsePurposes>
|
||||
<ExtendedPresentation/>
|
||||
</Properties>
|
||||
</Form>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
|
||||
<Form uuid="573192f4-b840-4d6b-a045-202127ad7c74">
|
||||
<Properties>
|
||||
<Name>Форма</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Форма</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<FormType>Managed</FormType>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<UsePurposes>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
|
||||
</UsePurposes>
|
||||
<ExtendedPresentation/>
|
||||
</Properties>
|
||||
</Form>
|
||||
</MetaDataObject>
|
||||
File diff suppressed because it is too large
Load Diff
+486
-457
@@ -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='Тест прошел успешно'" ) );
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастроитьВидимостьДоступность();
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТестОбработкиЗавершение(ДополнительныеПараметры) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
Reference in New Issue
Block a user