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

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

Closed
uasy opened this issue Nov 9, 2018 · 8 comments

Comments

@uasy
Copy link

uasy commented Nov 9, 2018

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

Предлагаю добавить в методы ВыгрузитьКонфигурациюВФайл и ЗагрузитьКонфигурациюИзФайлов объекта 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");
@EvilBeaver
Copy link
Member

Предлагаю иной способ решения. Отдельный метод "ВыгрузитьРасширениеВФайл" с одним параметром "имя раширения".

И встречный метод "ЗагрузитьРасширениеИзФайла".

@nixel2007 @artbear приглашаю обсудить.

@Berckk
Copy link
Contributor

Berckk commented Nov 14, 2018

В ветке develop уже есть методы "ЗагрузитьРасширениеИзФайла" и "ВыгрузитьРасширениеВФайл". В данном случае скорее подойдет "ВыгрузитьРасширениеВФайлы" и "ЗагрузитьРасширениеИзФайлов"

@nixel2007
Copy link
Member

Так из файла (cfe) или из файлов (россыпь хмл и бсл)?

@EvilBeaver
Copy link
Member

Ок, предлагаю данное тогда закрыть, а новое задание под новые методы создать.

Если я правильно понял, то нужны методы загрузки из файлов bsl. Поскольку "ИзФайла" уже есть.

@uasy
Copy link
Author

uasy commented Nov 15, 2018

Нужно из xml-файлов загрузить Расширение и выгрузить обратно cfe-файл.
Поэтому по смыслу правильнее добавить "ЗагрузитьРасширениеИзФайлов" ("ВыгрузитьРасширениеВФайлы"), с учетом того что, надеюсь, "ВыгрузитьРасширениеВФайл"("ЗагрузитьРасширениеИзФайла") уже реализовано.

@EvilBeaver
Copy link
Member

Ок, в такой формулировке принято. Ждем смельчака, который сможет написать 16 строк кода

@artbear
Copy link
Member

artbear commented Nov 16, 2018

с учетом того что, надеюсь, "ВыгрузитьРасширениеВФайл"("ЗагрузитьРасширениеИзФайла") уже реализовано.

@uasy вот зачем я старался, искал для тебя строки кода v8runner, где указаны соответствующие методы, в соседнем/первом ишузе, если ты так и не посмотрел ? :(

Berckk added a commit to Berckk/v8runner that referenced this issue Nov 19, 2018
Berckk added a commit to Berckk/v8runner that referenced this issue Nov 19, 2018
Berckk added a commit to Berckk/v8runner that referenced this issue Nov 19, 2018
Berckk added a commit to Berckk/v8runner that referenced this issue Nov 19, 2018
Berckk added a commit to Berckk/v8runner that referenced this issue Nov 20, 2018
Berckk added a commit to Berckk/v8runner that referenced this issue Nov 20, 2018
EvilBeaver added a commit that referenced this issue Nov 20, 2018
 #24  #78 Новые методы "ЗагрузитьРасширениеИзФайлов" и "ВыгрузитьРасширениеВФайлы"
@uasy
Copy link
Author

uasy commented Nov 26, 2018

с учетом того что, надеюсь, "ВыгрузитьРасширениеВФайл"("ЗагрузитьРасширениеИзФайла") уже реализовано.

@uasy вот зачем я старался, искал для тебя строки кода v8runner, где указаны соответствующие методы, в соседнем/первом ишузе, если ты так и не посмотрел ? :(

@artbear я посмотрел и последовал совету написать сюда. Также посмотрел у себя исходники библиотеки и не нашел этих функций, и тоже спросил как их обновлять из Git или штатно -update. За старания спасибо, но мне нужен результат, а не то что я увидел в коде в Git. Мне казалось, что либо я предлагаю решение, либо кто-то из команды разработки. Я свое решение предложил, @EvilBeaver предложил более правильную формулировку, я с ней согласился.

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

No branches or pull requests

5 participants