Skip to content

Добавить возможность загрузки и выгрузки в файлы конфигурации расширения  #78

Closed
@uasy

Description

@uasy

Есть расширение применяемое на разных проектах (конфигурациях). Код расширения ведется в Гите в самостоятельном репозитарии. Обновление основных конфигураций идет через скрипты, обновление расширений, пока, остается в полу-ручном режиме.

Предлагаю добавить в методы ВыгрузитьКонфигурациюВФайл и ЗагрузитьКонфигурациюИзФайлов объекта v8runner параметр указывающий расширение для Загрузки и Выгрузки.

Мне видится так:

Процедура ВыгрузитьКонфигурациюВФайл(Знач ФайлКонфигурации, Знач ИмяРасширения) Экспорт
	
	Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
	Параметры.Добавить("/DumpCfg """ + ФайлКонфигурации + """");

	Если ЗначениеЗаполнено(ИмяРасширения) Тогда
		Параметры.Добавить(СтрШаблон("-Extension %1", ИмяРасширения));
	КонецЕсли;

	ВыполнитьКоманду(Параметры);
	
КонецПроцедуры

Процедура ЗагрузитьКонфигурациюИзФайлов(Знач КаталогЗагрузки, Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина, Знач ИмяРасширения = "") Экспорт
	
	Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда
		ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический;
	КонецЕсли;
	
	Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
	Параметры.Добавить(СтрШаблон("/LoadConfigFromFiles %1", ОбернутьВКавычки(КаталогЗагрузки)));
	
	Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда

		Если ОбновитьФайлВерсий Тогда

			Параметры.Добавить("-updateConfigDumpInfo");
   		
		КонецЕсли;

		Если ЗначениеЗаполнено(ИмяРасширения) Тогда
			Параметры.Добавить(СтрШаблон("-Extension %1", ИмяРасширения));
		КонецЕсли;
		
		Если ЗначениеЗаполнено(ПутьКСпискуФайловЗагрузки) Тогда
			
			Параметры.Добавить(СтрШаблон("-listFile %1", ОбернутьВКавычки(ПутьКСпискуФайловЗагрузки)));
			Параметры.Добавить(СтрШаблон("-format %1", ФорматВыгрузки));
   
		КонецЕсли;

	КонецЕслИ;
	
	
	ВыполнитьКоманду(Параметры);
	
КонецПроцедуры

используем следующий код для преобразования xml->cf

#использовать fs
#использовать 1commands
#использовать gitrunner 
#использовать v8runner

Перем путь_к_ИБ;

Процедура ОбновитьРепозитарий(путь_к_файлам_конфигурации, ветка)
	ГитРепозиторий = Новый ГитРепозиторий();
	ГитРепозиторий.УстановитьРабочийКаталог(путь_к_файлам_конфигурации);

	ГитРепозиторий.ПерейтиВВетку(ветка);
	ГитРепозиторий.Получить();

	ГитРепозиторий.ОбновитьПодмодули(Истина, Истина);
КонецПроцедуры

Процедура СоздатьФайлКонфигурации(путь_к_файлам_конфигурации, файл_конфигурации)
	УправлениеКонфигуратором = Новый УправлениеКонфигуратором();
	УправлениеКонфигуратором.СоздатьФайловуюБазу(путь_к_ИБ);
	Сообщить(УправлениеКонфигуратором.ВыводКоманды());

	// контекст может быть и не задан, тогда работа выполняется в базе, созданной в каталоге временных файлов
	УправлениеКонфигуратором.УстановитьКонтекст("/F" + путь_к_ИБ, "", "");	
	УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайлов(путь_к_файлам_конфигурации,,,Ложь,"Сов_ОбменныйФормат");
	Сообщить(УправлениеКонфигуратором.ВыводКоманды());

	УправлениеКонфигуратором.ВыгрузитьКонфигурациюВФайл(файл_конфигурации,"Сов_ОбменныйФормат");
	Сообщить(УправлениеКонфигуратором.ВыводКоманды());
КонецПроцедуры

путь_к_ИБ = "C:\Base\upd";

ОбновитьРепозитарий("C:\repo\sov_exchange", "dev");
СоздатьФайлКонфигурации("C:\repo\sov_exchange", "C:\repo\sov_exchange.dev.cfe");

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions