You've already forked oScript-Examples
mirror of
https://github.com/Stepa86/oScript-Examples.git
synced 2026-06-18 17:25:16 +02:00
+Начало разработки скрипта по копированию базы. Уже умеет читать файл параметров
This commit is contained in:
@@ -0,0 +1 @@
|
||||
*.base_config
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
#Использовать cmdline
|
||||
#Использовать 1commands
|
||||
#Использовать logos
|
||||
#Использовать json
|
||||
|
||||
|
||||
Перем фЛог;
|
||||
|
||||
// Получить имя лога продукта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - имя лога продукта
|
||||
//
|
||||
Функция ИмяЛога() Экспорт
|
||||
Возврат "oscript.app.CopyBase";
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТекстИзФайла( Знач пИмяФайла )
|
||||
|
||||
файлОбмена = Новый Файл(пИмяФайла);
|
||||
Данные = "";
|
||||
Если файлОбмена.Существует() Тогда
|
||||
чтениеТекста = Новый ЧтениеТекста(пИмяФайла, КодировкаТекста.UTF8);
|
||||
данные = чтениеТекста.Прочитать();
|
||||
чтениеТекста.Закрыть();
|
||||
Иначе
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
возврат данные;
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПараметры( Знач пАргументы )
|
||||
|
||||
Парсер = Новый ПарсерАргументовКоманднойСтроки();
|
||||
|
||||
Парсер.ДобавитьПараметр("ПутьКФайлу");
|
||||
|
||||
Параметры = Парсер.Разобрать(пАргументы);
|
||||
|
||||
Если Не Параметры.Количество() = 1 Тогда
|
||||
|
||||
Сообщить("Должен быть передан 1 параметр - файл настроек.");
|
||||
Сообщить("Например,");
|
||||
Сообщить("oscript CopyBase.os g:\git\oScript-Examples\Configs\db111.base_config");
|
||||
|
||||
ЗавершитьРаботу(1);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
текстНастроек = ПолучитьТекстИзФайла(Параметры["ПутьКФайлу"]);
|
||||
Если текстНастроек = Ложь Тогда
|
||||
|
||||
Сообщить("Переданный файл не найден или не является файлом настроек.");
|
||||
Сообщить("Для создания файла воспользуйтесь обработкой _ПодготовкаНастроекДляБазы.epf");
|
||||
|
||||
ЗавершитьРаботу(1);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЧтениеJSON = Новый ПарсерJSON;
|
||||
параметрыИзФайла = ЧтениеJSON.ПрочитатьJSON(текстНастроек,,,Истина);
|
||||
|
||||
прочитанныеПараметры = Новый Соответствие;
|
||||
|
||||
ПрочитатьПараметрыРекурсивно( параметрыИзФайла, прочитанныеПараметры );
|
||||
|
||||
Для каждого цЭлемент Из прочитанныеПараметры Цикл
|
||||
|
||||
фЛог.Отладка( "Прочитан параметр " + цЭлемент.Ключ + ": " + цЭлемент.Значение );
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат прочитанныеПараметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПрочитатьПараметрыРекурсивно( Знач пПараметры, пПрочитенныеПараметры )
|
||||
|
||||
Для каждого цЭлемент Из пПараметры Цикл
|
||||
|
||||
Если ТипЗнч( цЭлемент.Значение ) = Тип("Структура")
|
||||
ИЛИ ТипЗнч( цЭлемент.Значение ) = Тип("Соответствие") Тогда
|
||||
|
||||
ПрочитатьПараметрыРекурсивно( цЭлемент.Значение, пПрочитенныеПараметры );
|
||||
|
||||
Иначе
|
||||
|
||||
пПрочитенныеПараметры.Вставить( цЭлемент.Ключ, цЭлемент.Значение );
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьКоманду(Знач пАргументы)
|
||||
|
||||
параметры = ПолучитьПараметры( пАргументы );
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
фЛог = Логирование.ПолучитьЛог(ИмяЛога());
|
||||
//фЛог.УстановитьУровень(УровниЛога.Предупреждение);
|
||||
фЛог.УстановитьУровень(УровниЛога.Отладка);
|
||||
|
||||
ВыполнитьКоманду(АргументыКоманднойСтроки);
|
||||
Reference in New Issue
Block a user