Skip to content

Commit cd3859c

Browse files
artbearnixel2007Голованов СергейEvilBeaverzeltyr
authored
v1.9.0 - Поддержка параллельной загрузки из dt, ПроверкаКонфигурации и т.д. (#144)
* Выравниваю master и develop, вливая master (#138) * накидал функцию * вынес допустимые ключи в отдельную функцию Co-authored-by: Nikita Gryzlov <[email protected]> Co-authored-by: Голованов Сергей <[email protected]> Co-authored-by: Andrei Ovsiankin <[email protected]> * Добавлена логика формирования строки соединения Сделано для упрощения понимания * Доработан алгоритм формирования строки соединения из параметров Дополнен файл описания Оптимизированы алгоритмы формирования строки Поправлены тесты под новую логику * Исправлены опечатки * oscript_modules в гитигнор * Добавление подключения к хранилищу * Параметр количества заданий загрузки из dt (#142) * Параметр количества заданий загрузки dt * Для JobsCount платформа с 8.3.19 * Опечатка добавленного параметра Co-authored-by: Nikita Gryzlov <[email protected]> Co-authored-by: Голованов Сергей <[email protected]> Co-authored-by: Andrei Ovsiankin <[email protected]> Co-authored-by: Vdovenko Sergey <[email protected]> Co-authored-by: 8095tores <[email protected]> Co-authored-by: Boris Sinitsyn <[email protected]>
1 parent 3e5e1fc commit cd3859c

File tree

4 files changed

+427
-281
lines changed

4 files changed

+427
-281
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ test-reports/*
22
*.ospx
33
tests.xml
44
.scannerwork/
5+
oscript_modules/

readme.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,36 @@
1919

2020
Каждая команда конфигуратора может выполняться только для конкретной информационной базы. База, для которой выполняется команда называется контекстом команды.
2121

22-
Контекст указывается в формате **параметра командной строки конфигуратора** - так, как в Конфигураторе задается нужная информационная база. Например, для формата строки соединения:
22+
Контекст указывается в формате **параметра командной строки конфигуратора** (так, как в Конфигураторе задается нужная информационная база) или в виде специальной структуры. Например, для формата строки соединения:
2323

2424
```bsl
2525
Конфигуратор.УстановитьКонтекст("/IBConnectionString""Srvr=someserver:2041; Ref='database'""","Admin", "passw0rd");
2626
```
2727

28+
ИЛИ
29+
30+
```bsl
31+
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
32+
ПараметрыСтрокиСоединения.Сервер = "someserver";
33+
ПараметрыСтрокиСоединения.Порт = 2041;
34+
ПараметрыСтрокиСоединения.ИмяБазы = "database";
35+
36+
Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
37+
```
38+
2839
В более простой форме - для файловой базы можно указать через ключ ```/F```:
2940

3041
```bsl
31-
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase","Admin", "passw0rd");
42+
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase", "Admin", "passw0rd");
43+
```
44+
45+
ИЛИ
46+
47+
```bsl
48+
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
49+
ПараметрыСтрокиСоединения.ПутьКФайлуБазы = "C:\1cdb\mydatabase";
50+
51+
Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
3252
```
3353

3454
Далее, вы вызываете методы объекта "Конфигуратор", соответствующие командам конфигуратора. Все команды будут выполняться над заданной базой. Теперь, объект Конфигуратор настроен на некий *"контекст"* - информационную базу, с которой и будут производиться все операции.

src/v8runner.os

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@
3434
#Область ПрограммыйИнтерфейс
3535

3636
Процедура УстановитьКонтекст(Знач СтрокаСоединения, Знач Пользователь, Знач Пароль) Экспорт
37-
мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения;
37+
38+
Если ТипЗнч(СтрокаСоединения) = Тип("Структура") Тогда
39+
мКонтекстКоманды.КлючСоединенияСБазой = СформироватьСтрокуСоединения(СтрокаСоединения);
40+
Иначе
41+
мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения;
42+
КОнецЕсли;
43+
3844
мКонтекстКоманды.ИмяПользователя = Пользователь;
3945
мКонтекстКоманды.Пароль = Пароль;
4046

@@ -917,7 +923,8 @@
917923
Знач ФайлНастроек,
918924
Знач ПоставитьНаПоддержку = Неопределено,
919925
Знач ВключитьВОбъединениеОбъектыПоНеразрешеннымСсылкам = Неопределено,
920-
Знач Принудительно = Ложь) Экспорт
926+
Знач Принудительно = Ложь,
927+
Знач ПараметрыХранилища = Неопределено) Экспорт
921928

922929
Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
923930
Параметры.Добавить("/MergeCfg " + ОбернутьВКавычки(ФайлКонфигурации));
@@ -939,6 +946,15 @@
939946
Параметры.Добавить("-force");
940947
КонецЕсли;
941948

949+
Если НЕ ПараметрыХранилища = Неопределено Тогда
950+
Параметры.Добавить("/ConfigurationRepositoryF """ + ПараметрыХранилища.СтрокаПодключенияХранилище + """");
951+
Параметры.Добавить("/ConfigurationRepositoryN """ + ПараметрыХранилища.ПользовательХранилища + """");
952+
953+
Если ЗначениеЗаполнено(ПараметрыХранилища.ПарольХранилища) Тогда
954+
Параметры.Добавить("/ConfigurationRepositoryP """ + ПараметрыХранилища.ПарольХранилища + """");
955+
КонецЕсли;
956+
КонецЕсли;
957+
942958
ВыполнитьКоманду(Параметры);
943959

944960
КонецПроцедуры
@@ -1300,14 +1316,20 @@
13001316

13011317
КонецПроцедуры // СоздатьСервернуюБазу()
13021318

1303-
Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ) Экспорт
1319+
Процедура ЗагрузитьИнформационнуюБазу(ПутьВыгрузкиИБ,
1320+
Знач КоличествоЗаданий = 0) Экспорт
1321+
13041322
ФайлВыгрузки = Новый Файл(ПутьВыгрузкиИБ);
13051323
Ожидаем.Что(ФайлВыгрузки.Существует(), "Файл выгрузки <"+ПутьВыгрузкиИБ +"> существует, а это не так").ЭтоИстина();
13061324

13071325
ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора();
13081326

13091327
ПараметрыЗапуска.Добавить("/RestoreIB " + ОбернутьВКавычки(ПутьВыгрузкиИБ));
13101328

1329+
Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.19") Тогда
1330+
ПараметрыЗапуска.Добавить(СтрШаблон("-JobsCount %1", КоличествоЗаданий));
1331+
КонецЕсли;
1332+
13111333
ВыполнитьКоманду(ПараметрыЗапуска);
13121334
КонецПроцедуры
13131335

@@ -2544,6 +2566,48 @@
25442566

25452567
КонецФункции
25462568

2569+
Функция СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения) Экспорт
2570+
2571+
Если ТипЗнч(ПараметрыСтрокиСоединения) <> Тип("Структура") Тогда
2572+
Возврат ПараметрыСтрокиСоединения;
2573+
КонецЕсли;
2574+
2575+
Если ПараметрыСтрокиСоединения.ПутьКФайлуБазы <> "" Тогда
2576+
СтрокаСоединения = СтрШаблон("/F""%1""", ПараметрыСтрокиСоединения.ПутьКФайлуБазы);
2577+
Иначе
2578+
СтрокаСоединения = СтрШаблон(
2579+
"/IBConnectionString""Srvr='%1:%2'; Ref='%3'""",
2580+
ПараметрыСтрокиСоединения.Сервер,
2581+
ПараметрыСтрокиСоединения.Порт,
2582+
ПараметрыСтрокиСоединения.ИмяБазы);
2583+
КонецЕсли;
2584+
2585+
Возврат СтрокаСоединения;
2586+
2587+
КонецФункции
2588+
2589+
// возвращает параметры строки соединения с базой
2590+
//
2591+
// Возвращаемое значение:
2592+
// - Структура
2593+
// * Путь к файлу базы - строка - путь к базе в файловом варианте; если задан - остальные параметры игнорируются
2594+
// * Сервер - Строка
2595+
// * Порт - Строка
2596+
// * ИмяБазы - Строка
2597+
//
2598+
Функция ПараметрыСтрокиСоединения() Экспорт
2599+
2600+
ПараметрыСтрокиСоединения = Новый Структура;
2601+
2602+
ПараметрыСтрокиСоединения.Вставить("ПутьКФайлуБазы", "");
2603+
ПараметрыСтрокиСоединения.Вставить("Сервер", "");
2604+
ПараметрыСтрокиСоединения.Вставить("Порт", "");
2605+
ПараметрыСтрокиСоединения.Вставить("ИмяБазы", "");
2606+
2607+
Возврат ПараметрыСтрокиСоединения;
2608+
2609+
КонецФункции
2610+
25472611
#КонецОбласти
25482612

25492613
Лог = Логирование.ПолучитьЛог("oscript.lib.v8runner");

0 commit comments

Comments
 (0)