-
Notifications
You must be signed in to change notification settings - Fork 60
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
#51 Добавлена процедура создания серверной ИБ #53
Conversation
src/v8runner.os
Outdated
Знач ИмяБазыВСписке = "", | ||
Знач ОшибкаЕслиСуществует = Ложь) Экспорт | ||
|
||
Лог.Отладка("Создание серверной ИБ """ + Сервер1С + "\" + ИмяИБ + """"); |
There was a problem hiding this comment.
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
|
||
Если НЕ ЗначениеЗаполнено(ИмяБД) Тогда | ||
ИмяБД = ИмяИБ; | ||
Лог.Информация("Не указано имя базы на сервере СУБД, будет использовано имя ИБ - """ + ИмяБД + """"); |
There was a problem hiding this comment.
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"); | ||
|
||
Лог.Отладка("Строка запуска: " + СтрокаЗапуска); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю юзать в формате СтрШаблон
There was a problem hiding this comment.
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С, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У метода очень много параметров, и часть по умолчанию, причем в разном порядке
Предлагаю добавить группировку.
Для данных СУБД сделаем один параметр НастройкаСУБД
- Структура с полями
Знач ТипСУБД = "MSSQLServer",
+ Знач СерверСУБД,
+ Знач ПользовательСУБД,
+ Знач ПарольСУБД = "",
+ Знач ИмяБД = "",
+ Знач СмещениеДат = "2000",
+ Знач СоздаватьБД = Ложь,
Также параметр-структура АвторизацияВКластере
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не надо указывать параметр по умолчанию перед обязательным параметров :(
@artbear: Поправил, по замечаниям |
src/v8runner.os
Outdated
// ПутьКШаблону - Строка - Путь к шаблону для создания информационной базы (*.cf; *.dt). | ||
// Если шаблон не указан, то будет создана пустая ИБ | ||
// ИмяБазыВСписке - Строка - Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется) | ||
// ОшибкаЕслиСуществует - Булево - Истина - Вызвать исключение если ИБ в кластере 1С существует (по умолчанию: Ложь) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ОшибкаЕслиСуществует
лучше перенести перед ПутьКШаблону
src/v8runner.os
Outdated
ПарольСУБД = ПараметрыСУБД.ПарольСУБД; | ||
КонецЕсли; | ||
|
||
ИмяБД = ""; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю дублирующийся код
ИмяБД = "";
+ Если ПараметрыСУБД.Свойство("ИмяБД") Тогда
+ ИмяБД = ПараметрыСУБД.ИмяБД;
+ КонецЕсли;
в отдельный метод
Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию)
тогда код станет простым и линейным и коротким
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@artbear: Прям в v8runner.os эту функцию сделать?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Да, это д.б. приватная, не экспортная функция
Рефакторинг процедуры создания серверной базы
@artbear: Поправлено. |
src/v8runner.os
Outdated
// Возвращаемое значение: | ||
// Произвольный - Значение параметра | ||
// | ||
Функция ПолучитьПараметр(Параметры, Имя, ЗначениеПоУмолчанию = Неопределено) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А почему ЗначениеПоУмолчанию = Неопределено
Это вызовет ошибку для кода
СерверСУБД = ПолучитьПараметр(ПараметрыСУБД, "СерверСУБД");
и дальнейшего СокрЛП(СерверСУБД)
т.к. СокрЛП(Неопределено)
выдает Неопределено
(только что проверил на всякий случай)
Предлагаю
- либо вообще убрать значение по умолчанию, как я сразу и предлагал
- либо заменить на ""
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@arkuznetsov Надеюсь, еще не устал от моих замечаний :)
Держись, совсем немного осталось до мержа :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Оно в принципе и должно выдавать ошибку для такого случая. А Неопределено - т.к. тип параметра произвольный.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Из кода не видно, что должна быть ошибка.
Значит, это неявное поведение.
Неявное поведение - это зло!
Значит, нужно как-то исправить :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А я с самого начала предложил исключить неявное поведение
вообще убрать значение по умолчанию, как я сразу и предлагал
There was a problem hiding this comment.
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С, | ||
ПараметрыСУБД, | ||
АвторизацияВКластере, | ||
Знач ОшибкаЕслиСуществует, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Забыл поставить значение по умолчанию (как в описании выше Ложь)
// Параметры - Структура - Структура, содержащая значения параметров | ||
// Имя - Строка - Имя параметра | ||
// ЗначениеПоУмолчанию - Произвольный - Значение параметра по умолчанию | ||
// (возвращается если в структуре параметров значение по указанному имени не найдено) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавить Если параметр не задан, то подставляется пустая строка
Поправлено описание процедуры ПолучитьПараметр
@artbear: Ушло. |
Добавлена процедура создания серверной ИБ