Skip to content

Commit faa0d37

Browse files
committed
Merge branch 'release/0.13.0'
2 parents 581474a + b9cf79c commit faa0d37

File tree

2 files changed

+143
-1
lines changed

2 files changed

+143
-1
lines changed

packagedef

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("v8runner")
3-
.Версия("0.12.0")
3+
.Версия("0.13.0")
44
.ВерсияСреды("1.0.17")
55
.ЗависитОт("asserts")
66
.ЗависитОт("fs")

src/v8runner.os

+142
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,125 @@
857857

858858
КонецПроцедуры
859859

860+
// Создание серверной информационной базы 1С
861+
//
862+
// Параметры:
863+
// ПараметрыБазы1С - Структура
864+
// Сервер1С - Строка - Адрес кластера серверов 1С ([<протокол>://]<адрес>[:<порт>])
865+
// ИмяИБ - Строка - Имя информационной базы на сервере 1С
866+
// РазрешитьРегЗадания - Булево - Истина - разрешить запуск рег. заданий (по умолчанию: Ложь)
867+
// ПараметрыСУБД - Структура
868+
// ТипСУБД - Строка - Тип сервера СУБД ("MSSQLServer" <по умолчанию>; "PostgreSQL"; "IBMDB2"; "OracleDatabase")
869+
// СерверСУБД - Строка - Адрес сервера СУБД
870+
// ПользовательСУБД - Строка - Пользователь сервера СУБД
871+
// ПарольСУБД - Строка - Пароль пользователя сервера СУБД
872+
// ИмяБД - Строка - Имя базы на сервере СУБД (если не указано будет использовано имя ИБ 1С)
873+
// СмещениеДат - Строка - Смещение дат на сервере MS SQL (0; 2000 <по умолчанию>)
874+
// СоздаватьБД - Булево - Истина - будет создана база на сервере СУБД в случае отсутствия (по умолчанию: Ложь)
875+
// АвторизацияВКластере - Структура
876+
// Имя - Строка - Имя администратора кластера 1С
877+
// Пароль - Строка - Пароль администратора кластера 1С
878+
// ОшибкаЕслиСуществует - Булево - Истина - Вызвать исключение если ИБ в кластере 1С существует (по умолчанию: Ложь)
879+
// ПутьКШаблону - Строка - Путь к шаблону для создания информационной базы (*.cf; *.dt).
880+
// Если шаблон не указан, то будет создана пустая ИБ
881+
// ИмяБазыВСписке - Строка - Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)
882+
//
883+
Процедура СоздатьСервернуюБазу(ПараметрыБазы1С,
884+
ПараметрыСУБД,
885+
АвторизацияВКластере,
886+
Знач ОшибкаЕслиСуществует = Ложь,
887+
Знач ПутьКШаблону = "",
888+
Знач ИмяБазыВСписке = "") Экспорт
889+
890+
Сервер1С = ПолучитьПараметр(ПараметрыБазы1С, "Сервер1С");
891+
ИмяИБ = ПолучитьПараметр(ПараметрыБазы1С, "ИмяИБ");
892+
893+
Лог.Отладка("Создание серверной ИБ ""%1\%2""", Сервер1С, ИмяИБ);
894+
895+
РазрешитьРегЗадания = ПолучитьПараметр(ПараметрыБазы1С, "РазрешитьРегЗадания", Ложь);
896+
897+
ТипСУБД = ПолучитьПараметр(ПараметрыСУБД, "ТипСУБД", "MSSQLServer");
898+
СерверСУБД = ПолучитьПараметр(ПараметрыСУБД, "СерверСУБД");
899+
ПользовательСУБД = ПолучитьПараметр(ПараметрыСУБД, "ПользовательСУБД");
900+
ПарольСУБД = ПолучитьПараметр(ПараметрыСУБД, "ПарольСУБД", "");
901+
902+
ИмяБД = ПолучитьПараметр(ПараметрыСУБД, "ИмяБД");
903+
Если НЕ ЗначениеЗаполнено(ИмяБД) Тогда
904+
ИмяБД = ИмяИБ;
905+
Лог.Информация("Не указано имя базы на сервере СУБД, будет использовано имя ИБ - ""%1""", ИмяБД);
906+
КонецЕсли;
907+
908+
СмещениеДат = ПолучитьПараметр(ПараметрыСУБД, "СмещениеДат", "2000");
909+
СоздаватьБД = ПолучитьПараметр(ПараметрыСУБД, "СоздаватьБД", Ложь);
910+
911+
АдминистраторКластера = ПолучитьПараметр(АвторизацияВКластере, "Имя", Ложь);
912+
ПарольКластера = ПолучитьПараметр(АвторизацияВКластере, "Пароль", Ложь);
913+
914+
СтрокаЗапуска = "Srvr=" + СокрЛП(Сервер1С)
915+
+ ";Ref=" + СокрЛП(ИмяИБ)
916+
+ ";DBMS=" + СокрЛП(ТипСУБД)
917+
+ ";DBSrvr=" + СокрЛП(СерверСУБД)
918+
+ ";DBUID=" + СокрЛП(ПользовательСУБД)
919+
+ ";DBPwd=" + СокрЛП(ПарольСУБД)
920+
+ ";DB=" + СокрЛП(ИмяБД)
921+
+ ";SQLYOffs=" + СокрЛП(СмещениеДат)
922+
+ ";CrSQLDB=" + ?(СоздаватьБД, "Y", "N")
923+
+ ";SchJobDn=" + ?(РазрешитьРегЗадания, "N", "Y");
924+
925+
Если НЕ ПустаяСтрока(АдминистраторКластера) Тогда
926+
СтрокаЗапуска = СтрокаЗапуска + ";SUsr=" + АдминистраторКластера;
927+
КонецЕсли;
928+
929+
Если НЕ ПустаяСтрока(ПарольКластера) Тогда
930+
СтрокаЗапуска = СтрокаЗапуска + ";SPwd=" + ПарольКластера;
931+
КонецЕсли;
932+
933+
ИмяФайлаРезультата = ПолучитьИмяВременногоФайла("out");
934+
935+
Лог.Отладка("Строка запуска: %1", СтрокаЗапуска);
936+
937+
ПараметрыЗапуска = Новый Массив;
938+
ПараметрыЗапуска.Добавить("CREATEINFOBASE");
939+
ПараметрыЗапуска.Добавить(ОбернутьВКавычки(СтрокаЗапуска));
940+
941+
Если мОчищатьФайлИнформации Тогда
942+
ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации()));
943+
Иначе
944+
ПараметрыЗапуска.Добавить("/Out " + ОбернутьВКавычки(ФайлИнформации()) + " -NoTruncate");
945+
КонецЕсли;
946+
947+
Если НЕ ПустаяСтрока(ИмяБазыВСписке) Тогда
948+
ПараметрыЗапуска.Добавить("/AddInList""" + ИмяБазыВСписке + """");
949+
КонецЕсли;
950+
Если НЕ ПустаяСтрока(ПутьКШаблону) Тогда
951+
ПараметрыЗапуска.Добавить("/UseTemplate""" + ПутьКШаблону + """");
952+
КонецЕсли;
953+
954+
Если НЕ ПустаяСтрока(мКонтекстКоманды.КодЯзыка) Тогда
955+
ПараметрыЗапуска.Добавить("/L" + мКонтекстКоманды.КодЯзыка);
956+
КонецЕсли;
957+
Если НЕ ПустаяСтрока(мКонтекстКоманды.КодЯзыкаСеанса) Тогда
958+
ПараметрыЗапуска.Добавить("/VL" + мКонтекстКоманды.КодЯзыкаСеанса);
959+
КонецЕсли;
960+
961+
СохранитьТекстФайлаИнформации();
962+
963+
КодВозврата = ЗапуститьИПодождать(ПараметрыЗапуска);
964+
965+
УстановитьВывод(ПрочитатьФайлИнформации());
966+
967+
Если КодВозврата = 0 Тогда
968+
Лог.Информация("Создана серверная ИБ ""%1\%2""", Сервер1С, ИмяИБ);
969+
Иначе
970+
Если ОшибкаЕслиСуществует
971+
ИЛИ СтрНайти(ВРег(ВыводКоманды()), ВРег("информационная база уже существует")) = 0 Тогда
972+
ВызватьИсключение "Ошибка создания ИБ: """ + ВыводКоманды() + """";
973+
КонецЕсли;
974+
Лог.Информация("Информационная база ""%1\%2"" уже существует.", Сервер1С, ИмяИБ);
975+
КонецЕсли;
976+
977+
КонецПроцедуры //СоздатьСервернуюБазу()
978+
860979
Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ) Экспорт
861980
ФайлВыгрузки = Новый Файл(ПутьВыгрузкиИБ);
862981
Ожидаем.Что(ФайлВыгрузки.Существует(), "Файл выгрузки <"+ПутьВыгрузкиИБ+"> существует, а это не так").ЭтоИстина();
@@ -1635,6 +1754,29 @@
16351754
КонецЕсли;
16361755
КонецФункции
16371756

1757+
// Пполучает значение параметра из структуры
1758+
//
1759+
// Параметры:
1760+
// Параметры - Структура - Структура, содержащая значения параметров
1761+
// Имя - Строка - Имя параметра
1762+
// ЗначениеПоУмолчанию - Произвольный - Значение параметра по умолчанию
1763+
// (возвращается если в структуре параметров значение по указанному имени не найдено)
1764+
// (по умолчанию "")
1765+
// Возвращаемое значение:
1766+
// Произвольный - Значение параметра
1767+
//
1768+
Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию = "")
1769+
1770+
ЗначениеПараметра = ЗначениеПоУмолчанию;
1771+
1772+
Если Параметры.Свойство(Имя) Тогда
1773+
ЗначениеПараметра = Параметры[Имя];
1774+
КонецЕсли;
1775+
1776+
Возврат ЗначениеПараметра;
1777+
1778+
КонецФункции //ПолучитьПараметр()
1779+
16381780
Процедура Инициализация()
16391781
СистемнаяИнформация = Новый СистемнаяИнформация;
16401782
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;

0 commit comments

Comments
 (0)