Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавил простой конструктор для формирования строки соединения #140

Merged
merged 9 commits into from
Mar 22, 2022
24 changes: 22 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,36 @@

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

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

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

ИЛИ

```bsl
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
ПараметрыСтрокиСоединения.Сервер = "someserver";
ПараметрыСтрокиСоединения.Порт = 2041;
ПараметрыСтрокиСоединения.ИмяБазы = "database";

Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
```

В более простой форме - для файловой базы можно указать через ключ ```/F```:

```bsl
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase","Admin", "passw0rd");
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase", "Admin", "passw0rd");
```

ИЛИ

```bsl
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
ПараметрыСтрокиСоединения.ПутьКФайлуБазы = "C:\1cdb\mydatabase";

Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
```

Далее, вы вызываете методы объекта "Конфигуратор", соответствующие командам конфигуратора. Все команды будут выполняться над заданной базой. Теперь, объект Конфигуратор настроен на некий *"контекст"* - информационную базу, с которой и будут производиться все операции.
Expand Down
50 changes: 49 additions & 1 deletion src/v8runner.os
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,13 @@
#Область ПрограммыйИнтерфейс

Процедура УстановитьКонтекст(Знач СтрокаСоединения, Знач Пользователь, Знач Пароль) Экспорт
мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения;

Если ТипЗнч(СтрокаСоединения) = Тип("Структура") Тогда
мКонтекстКоманды.КлючСоединенияСБазой = СформироватьСтрокуСоединения(СтрокаСоединения);
Иначе
мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения;
КОнецЕсли;

мКонтекстКоманды.ИмяПользователя = Пользователь;
мКонтекстКоманды.Пароль = Пароль;

Expand Down Expand Up @@ -2544,6 +2550,48 @@

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

Функция СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения) Экспорт

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

Если ПараметрыСтрокиСоединения.ПутьКФайлуБазы <> "" Тогда
СтрокаСоединения = СтрШаблон("/F""%1""", ПараметрыСтрокиСоединения.ПутьКФайлуБазы);
Иначе
СтрокаСоединения = СтрШаблон(
"/IBConnectionString""Srvr='%1:%2'; Ref='%3'""",
ПараметрыСтрокиСоединения.Сервер,
ПараметрыСтрокиСоединения.Порт,
ПараметрыСтрокиСоединения.ИмяБазы);
КонецЕсли;

Возврат СтрокаСоединения;

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

// возвращает параметры строки соединения с базой
//
// Возвращаемое значение:
// - Структура
// * Путь к файлу базы - строка - путь к базе в файловом варианте; если задан - остальные параметры игнорируются
// * Сервер - Строка
// * Порт - Строка
// * ИмяБазы - Строка
//
Функция ПараметрыСтрокиСоединения() Экспорт

ПараметрыСтрокиСоединения = Новый Структура;

ПараметрыСтрокиСоединения.Вставить("ПутьКФайлуБазы", "");
ПараметрыСтрокиСоединения.Вставить("Сервер", "");
ПараметрыСтрокиСоединения.Вставить("Порт", "");
ПараметрыСтрокиСоединения.Вставить("ИмяБазы", "");

Возврат ПараметрыСтрокиСоединения;

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

#КонецОбласти

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