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

#51 Добавлена процедура создания серверной ИБ #53

Merged
merged 9 commits into from
Nov 30, 2017

Conversation

arkuznetsov
Copy link
Contributor

Добавлена процедура создания серверной ИБ

src/v8runner.os Outdated
Знач ИмяБазыВСписке = "",
Знач ОшибкаЕслиСуществует = Ложь) Экспорт

Лог.Отладка("Создание серверной ИБ """ + Сервер1С + "\" + ИмяИБ + """");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю юзать в формате СтрШаблон
Лог.Отладка("Создание серверной ИБ ""%1\%2""", Сервер1С, ИмяИБ);

src/v8runner.os Outdated

Если НЕ ЗначениеЗаполнено(ИмяБД) Тогда
ИмяБД = ИмяИБ;
Лог.Информация("Не указано имя базы на сервере СУБД, будет использовано имя ИБ - """ + ИмяБД + """");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю юзать в формате СтрШаблон

src/v8runner.os Outdated

ИмяФайлаРезультата = ПолучитьИмяВременногоФайла("out");

Лог.Отладка("Строка запуска: " + СтрокаЗапуска);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю юзать в формате СтрШаблон

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну и так далее в формате СтрШаблон

src/v8runner.os Outdated
@@ -857,6 +857,94 @@

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

Процедура СоздатьСервернуюБазу(Знач Сервер1С,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У метода очень много параметров, и часть по умолчанию, причем в разном порядке
Предлагаю добавить группировку.
Для данных СУБД сделаем один параметр НастройкаСУБД - Структура с полями

Знач ТипСУБД = "MSSQLServer",
 +	Знач СерверСУБД,
 +	Знач ПользовательСУБД,
 +	Знач ПарольСУБД = "",
 +	Знач ИмяБД = "",
 +	Знач СмещениеДат = "2000",
 +	Знач СоздаватьБД = Ложь,

Также параметр-структура АвторизацияВКластере

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pumbaEO Посмотри, плиз, на код создания серверной ИБ.
ты недавно аналогичный код добавлял.

src/v8runner.os Outdated
@@ -857,6 +857,94 @@

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

Процедура СоздатьСервернуюБазу(Знач Сервер1С,
Знач ИмяИБ,
Знач ТипСУБД = "MSSQLServer",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не надо указывать параметр по умолчанию перед обязательным параметров :(

@arkuznetsov
Copy link
Contributor Author

arkuznetsov commented Nov 29, 2017

@artbear: Поправил, по замечаниям

src/v8runner.os Outdated
// ПутьКШаблону - Строка - Путь к шаблону для создания информационной базы (*.cf; *.dt).
// Если шаблон не указан, то будет создана пустая ИБ
// ИмяБазыВСписке - Строка - Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)
// ОшибкаЕслиСуществует - Булево - Истина - Вызвать исключение если ИБ в кластере 1С существует (по умолчанию: Ложь)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ОшибкаЕслиСуществует лучше перенести перед ПутьКШаблону

src/v8runner.os Outdated
ПарольСУБД = ПараметрыСУБД.ПарольСУБД;
КонецЕсли;

ИмяБД = "";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю дублирующийся код

ИмяБД				= "";
 +	Если ПараметрыСУБД.Свойство("ИмяБД") Тогда
 +		ИмяБД			= ПараметрыСУБД.ИмяБД;
 +	КонецЕсли;

в отдельный метод
Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию)

тогда код станет простым и линейным и коротким

Copy link
Contributor Author

@arkuznetsov arkuznetsov Nov 29, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@artbear: Прям в v8runner.os эту функцию сделать?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, это д.б. приватная, не экспортная функция

Рефакторинг процедуры создания серверной базы
@arkuznetsov
Copy link
Contributor Author

@artbear: Поправлено.

src/v8runner.os Outdated
// Возвращаемое значение:
// Произвольный - Значение параметра
//
Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию = Неопределено)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему ЗначениеПоУмолчанию = Неопределено
Это вызовет ошибку для кода
СерверСУБД = ПолучитьПараметр(ПараметрыСУБД, "СерверСУБД");
и дальнейшего СокрЛП(СерверСУБД)
т.к. СокрЛП(Неопределено) выдает Неопределено (только что проверил на всякий случай)

Предлагаю

  • либо вообще убрать значение по умолчанию, как я сразу и предлагал
  • либо заменить на ""

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arkuznetsov Надеюсь, еще не устал от моих замечаний :)

Держись, совсем немного осталось до мержа :)

Copy link
Contributor Author

@arkuznetsov arkuznetsov Nov 29, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Оно в принципе и должно выдавать ошибку для такого случая. А Неопределено - т.к. тип параметра произвольный.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Из кода не видно, что должна быть ошибка.
Значит, это неявное поведение.
Неявное поведение - это зло!
Значит, нужно как-то исправить :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А я с самого начала предложил исключить неявное поведение

вообще убрать значение по умолчанию, как я сразу и предлагал

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@artbear: Поменял значение по умолчанию. Но странно что СокрЛП(Неопределено) выдает неопределено, в 1С вроде как строка "Неопределено" на выходе.

src/v8runner.os Outdated
Процедура СоздатьСервернуюБазу(ПараметрыБазы1С,
ПараметрыСУБД,
АвторизацияВКластере,
Знач ОшибкаЕслиСуществует,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Забыл поставить значение по умолчанию (как в описании выше Ложь)

// Параметры - Структура - Структура, содержащая значения параметров
// Имя - Строка - Имя параметра
// ЗначениеПоУмолчанию - Произвольный - Значение параметра по умолчанию
// (возвращается если в структуре параметров значение по указанному имени не найдено)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавить Если параметр не задан, то подставляется пустая строка

Поправлено описание процедуры ПолучитьПараметр
@arkuznetsov
Copy link
Contributor Author

@artbear: Ушло.

@nixel2007 nixel2007 self-requested a review November 30, 2017 09:20
@nixel2007 nixel2007 merged commit c714331 into oscript-library:develop Nov 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants