Skip to content

Commit

Permalink
Merge pull request #140 from zeltyr/develop
Browse files Browse the repository at this point in the history
Добавил простой конструктор для формирования строки соединения
  • Loading branch information
EvilBeaver authored Mar 22, 2022
2 parents cff189c + 4ac7811 commit 50a05dd
Show file tree
Hide file tree
Showing 3 changed files with 408 additions and 279 deletions.
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

0 comments on commit 50a05dd

Please sign in to comment.