Skip to content

Commit c8de94c

Browse files
committed
Доработан алгоритм формирования строки соединения из параметров
Дополнен файл описания Оптимизированы алгоритмы формирования строки Поправлены тесты под новую логику
1 parent 0175dfc commit c8de94c

File tree

3 files changed

+326
-316
lines changed

3 files changed

+326
-316
lines changed

readme.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,38 @@
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
3142
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase","Admin", "passw0rd");
3243
```
3344

45+
ИЛИ
46+
47+
```bsl
48+
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
49+
ПараметрыСтрокиСоединения.ПутьКБазе = "C:\1cdb\mydatabase";
50+
51+
Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
52+
```
53+
3454
Далее, вы вызываете методы объекта "Конфигуратор", соответствующие командам конфигуратора. Все команды будут выполняться над заданной базой. Теперь, объект Конфигуратор настроен на некий *"контекст"* - информационную базу, с которой и будут производиться все операции.
3555

3656
### Временный контекст

src/v8runner.os

Lines changed: 15 additions & 25 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

@@ -2547,11 +2553,11 @@
25472553
Функция СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения) Экспорт
25482554

25492555
Если ТипЗнч(ПараметрыСтрокиСоединения) <> Тип("Структура") Тогда
2550-
Возврат "";
2556+
Возврат ПараметрыСтрокиСоединения;
25512557
КонецЕсли;
25522558

2553-
Если ПараметрыСтрокиСоединения.Свойство("ЭтоФайловыйВариант") Тогда
2554-
СтрокаСоединения = СтрШаблон("/F""%1""", ПараметрыСтрокиСоединения.ПутьКБазе);
2559+
Если ПараметрыСтрокиСоединения.ПутьКФайлуБазы <> "" Тогда
2560+
СтрокаСоединения = СтрШаблон("/F""%1""", ПараметрыСтрокиСоединения.ПутьКФайлуБазы);
25552561
Иначе
25562562
СтрокаСоединения = СтрШаблон(
25572563
"/IBConnectionString""Srvr='%1:%2'; Ref='%3'""",
@@ -2564,36 +2570,20 @@
25642570

25652571
КонецФункции
25662572

2567-
// возвращает параметры строки соединения с файловой базой
2568-
//
2569-
// Возвращаемое значение:
2570-
// - Структура
2571-
// * ПутьКБазе - Строка
2572-
// * ЭтоФайловыйВариант - Строка - служебный ключ, что это параметры файловой базы
2573-
//
2574-
Функция ПараметрыСтрокиСоединения_ФайловыйВариант() Экспорт
2575-
2576-
ПараметрыСтрокиСоединения = Новый Структура;
2577-
2578-
ПараметрыСтрокиСоединения.Вставить("ПутьКбазе", "");
2579-
ПараметрыСтрокиСоединения.Вставить("ЭтоФайловыйВариант", Истина);
2580-
2581-
Возврат ПараметрыСтрокиСоединения;
2582-
2583-
КонецФункции
2584-
2585-
// возвращает параметры строки соединения с базой на сервере
2573+
// возвращает параметры строки соединения с базой
25862574
//
25872575
// Возвращаемое значение:
25882576
// - Структура
2577+
// * Путь к файлу базы - строка - путь к базе в файловом варианте; если задан - остальные параметры игнорируются
25892578
// * Сервер - Строка
25902579
// * Порт - Строка
25912580
// * ИмяБазы - Строка
25922581
//
2593-
Функция ПараметрыСтрокиСоединения_СерверныйВариант() Экспорт
2582+
Функция ПараметрыСтрокиСоединения() Экспорт
25942583

25952584
ПараметрыСтрокиСоединения = Новый Структура;
2596-
2585+
2586+
ПараметрыСтрокиСоединения.Вставить("ПутьКФайлуБазы", "");
25972587
ПараметрыСтрокиСоединения.Вставить("Сервер", "");
25982588
ПараметрыСтрокиСоединения.Вставить("Порт", "");
25992589
ПараметрыСтрокиСоединения.Вставить("ИмяБазы", "");

0 commit comments

Comments
 (0)