Skip to content

Commit

Permalink
Merge pull request #80 from Berckk/develop
Browse files Browse the repository at this point in the history
 #24  #78 Новые методы "ЗагрузитьРасширениеИзФайлов" и "ВыгрузитьРасширениеВФайлы"
  • Loading branch information
EvilBeaver authored Nov 20, 2018
2 parents e18dc0c + 9677783 commit 339cefd
Show file tree
Hide file tree
Showing 5 changed files with 153 additions and 6 deletions.
2 changes: 2 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@
- Функция ПутьКВременнойБазе()
- Процедура ЗагрузитьРасширениеИзФайла(Знач ПутьФайлРасширения, Знач ИмяРасширения, Знач ОбновитьКонфигурациюИБ = Ложь)
- Процедура ВыгрузитьРасширениеВФайл(Знач ПутьФайлРасширения, Знач ИмяРасширения)
- Процедура ЗагрузитьРасширениеИзФайлов(Знач КаталогЗагрузки, Знач ИмяРасширения = "–AllExtensions", Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина)
- Процедура ВыгрузитьРасширениеВФайлы(Знач КаталогВыгрузки, Знач ИмяРасширения = "–AllExtensions", Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "")

### Вспомогательные и настроечные функции

Expand Down
115 changes: 114 additions & 1 deletion src/v8runner.os
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,117 @@

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

// Загрузка расширения конфигурации из файлов
//
// Параметры:
// КаталогЗагрузки - Строка - Путь к каталогу, содержащий XML-файлы конфигурации;
// ИмяРасширения - Строка - Наименование расширения, если не указано то используется "–AllExtensions"
// (Каждый подкаталог в указанном каталоге считается расширением. Параметр несовместим с параметрами –files или -listFile.)
// ПутьКСпискуФайловЗагрузки - Строка - Указывает путь к файлу, в котором перечислены файлы, которые требуется загрузить. При запуске в режиме агента путь к загружаемым файлам должен быть относительным.
// Указываемый файл должен удовлетворять следующим требованиям:
// - Файл должен быть в кодировке UTF-8.
// - Имена файлов должны быть указаны через перенос (поддерживаются символы переноса \r\n ("следующая строка") и \r ("возврат каретки")).
// - Файл не должен содержать пустые строки между именами файлов.
// ( Реализовано в версиях 8.3.7.1759 и 8.3.8.1652. http://v8.1c.ru/o7/201507xml/index.htm)
// ФорматВыгрузки - РежимВыгрузкиКонфигурации - Используется для частичной загрузки (при передаче параметра ПутьКСпискуФайловЗагрузки).
// Указывает формат загрузки файлов. По умолчанию загрузка производится в иерархическом формате:
// ( Реализовано в версиях 8.3.7.1759 и 8.3.8.1652. http://v8.1c.ru/o7/201507xml/index.htm)
// ОбновитьФайлВерсий - Булево - указывает, что в конце загрузки в каталоге будет создан файл версий ConfigDumpInfo.xml,
// соответствующий загруженной конфигурации.
// (Реализовано начиная с версии 8.3.10)
// Если выполняется частичная загрузка (используется опция -files или -listFile), файл версий будет обновлен.
Процедура ЗагрузитьРасширениеИзФайлов(Знач КаталогЗагрузки, Знач ИмяРасширения = "–AllExtensions", Знач ПутьКСпискуФайловЗагрузки = "", Знач ФорматВыгрузки = "", Знач ОбновитьФайлВерсий = Истина) Экспорт

Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда
ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический;
КонецЕсли;

Параметры = СтандартныеПараметрыЗапускаКонфигуратора();
Параметры.Добавить(СтрШаблон("/LoadConfigFromFiles %1", ОбернутьВКавычки(КаталогЗагрузки)));

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

Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда
Если ОбновитьФайлВерсий Тогда
Параметры.Добавить("-updateConfigDumpInfo");
КонецЕсли;
КонецЕслИ;

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

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

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

// Загрузка расширения конфигурации из файлов
//
// Параметры:
// КаталогВыгрузки - Строка - Путь к каталогу, содержащий XML-файлы конфигурации;
// ИмяРасширения - Строка - Наименование расширения, если не указано то используется "–AllExtensions"
// (Каждый подкаталог в указанном каталоге считается расширением. Параметр несовместим с параметрами –files или -listFile.)
// ФорматВыгрузки - РежимВыгрузкиКонфигурации - Используется для частичной загрузки (при передаче параметра ПутьКСпискуФайловЗагрузки).
// Указывает формат загрузки файлов. По умолчанию загрузка производится в иерархическом формате:
// ( Реализовано в версиях 8.3.7.1759 и 8.3.8.1652. http://v8.1c.ru/o7/201507xml/index.htm)
// ТолькоИзмененные - Булево - указывает, что выгрузка будет обновлена (будут выгружены только файлы, версии которых отличаются от ранее выгруженных).
// Файл версий (ConfigDumpInfo.xml) будет получен из текущего каталога выгрузки.
// По завершении выгрузки файл версий обновляется
// ПутьКФайлуВерсийДляСравнения - Строка - Указывает путь к файлу, который будет использован для сравнения изменений.
// (Реализовано начиная с версии 8.3.10)
Процедура ВыгрузитьРасширениеВФайлы(Знач КаталогВыгрузки, Знач ИмяРасширения = "–AllExtensions", Знач ФорматВыгрузки = "", Знач ТолькоИзмененные = Ложь, Знач ПутьКФайлуВерсийДляСравнения = "") Экспорт

Если НЕ ЗначениеЗаполнено(ФорматВыгрузки) Тогда
ФорматВыгрузки = РежимВыгрузкиКонфигурации.Иерархический;
КонецЕсли;

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

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

Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда

Если ТолькоИзмененные Тогда

Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда

Параметры.Добавить("-update");

Параметры.Добавить("-force");

Если ЗначениеЗаполнено(ПутьКФайлуВерсийДляСравнения) Тогда

Параметры.Добавить(СтрШаблон("-configDumpInfoForChanges %1", ОбернутьВКавычки(ПутьКФайлуВерсийДляСравнения)));

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЕслИ;

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

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

Процедура ЗагрузитьКонфигурациюИзФайла(Знач ПутьФайлКонфигурации, Знач ОбновитьКонфигурациюИБ = Ложь) Экспорт

ФайлКонфигурации = Новый Файл(ПутьФайлКонфигурации);
Expand Down Expand Up @@ -1589,7 +1700,9 @@
Если Не ПустаяСтрока(мКонтекстКоманды.Пароль) Тогда
ПараметрыЗапуска.Добавить("/P" + ОбернутьВКавычки(мКонтекстКоманды.Пароль));
КонецЕсли;
ПараметрыЗапуска.Добавить("/WA+");
Если ПустаяСтрока(мКонтекстКоманды.ИмяПользователя) Тогда
ПараметрыЗапуска.Добавить("/WA+");
КонецЕсли;
Если Не ПустаяСтрока(мКонтекстКоманды.КлючРазрешенияЗапуска) Тогда
ПараметрыЗапуска.Добавить("/UC" + ОбернутьВКавычки(мКонтекстКоманды.КлючРазрешенияЗапуска));
КонецЕсли;
Expand Down
Binary file added tests/fixtures/0.9/1Cv8.cfe
Binary file not shown.
Binary file added tests/fixtures/1.0/1Cv8.cfe
Binary file not shown.
42 changes: 37 additions & 5 deletions tests/v8runner8310-tests.os
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@

ВремСписокТестов.Добавить("ТестДолжен_ЗагрузитьКонфигурациюИзФайлов");


ВремСписокТестов.Добавить("ТестДолжен_ВыгрузитьРасширениеВФайлы");
ВремСписокТестов.Добавить("ТестДолжен_ВыгрузитьИзмененияРасширенияВФайл");

ВремСписокТестов.Добавить("ТестДолжен_ВыгрузитьРасширениеВФайлыОтносительноФайлаВерсий");
ВремСписокТестов.Добавить("ТестДолжен_ВыгрузитьИзмененияРасширенияВФайлОтносительноФайлаВерсий");

ВремСписокТестов.Добавить("ТестДолжен_ЗагрузитьРасширениеИзФайлов");


СписокТестов = Новый Массив;
Для каждого ИмяТеста Из ВремСписокТестов Цикл
СписокТестов.Добавить(ИмяТеста + СуффиксКТестам);
Expand All @@ -62,7 +72,24 @@

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

Процедура ПодготовитьВременнуюВыгрузку()
Процедура ТестДолжен_ВыгрузитьРасширениеВФайлы() Экспорт

ИмяРасширения = "Расширение1";
ПодготовитьВременнуюВыгрузку(ИмяРасширения);

ВыгрузитьКонфигурациюВФайлы("1.0", мВременнаяВыгрузка, ИмяРасширения);

ФайлВерсииКонфигурации = Новый Файл(ОбъединитьПути(мВременнаяВыгрузка, "ConfigDumpInfo.xml"));

МассивФайловВыгрузки = НайтиФайлы(мВременнаяВыгрузка,"*", Истина);

Утверждения.ПроверитьРавенство(6, МассивФайловВыгрузки.Количество(), "Неверное количество файлов выгрузки. Ожидали число слева, а получили другое число выгруженных файлов");
Утверждения.ПроверитьИстину(ФайлВерсииКонфигурации.Существует(), "Файл версии кофигурации должен существовать");

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


Процедура ПодготовитьВременнуюВыгрузку(Знач ИмяРасширения = "")

Если ЗначениеЗаполнено(мВременнаяВыгрузка) Тогда
Возврат;
Expand All @@ -74,19 +101,24 @@

КаталогВыгрузки = ОбъединитьПути(ВременныйКаталог, "v8r_TempDitr");

ВыгрузитьКонфигурациюВФайлы("0.9", КаталогВыгрузки);
ВыгрузитьКонфигурациюВФайлы("0.9", КаталогВыгрузки,ИмяРасширения);

мВременнаяВыгрузка = КаталогВыгрузки;

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

Процедура ВыгрузитьКонфигурациюВФайлы(Знач Версия, Знач КаталогВыгрузки)
Процедура ВыгрузитьКонфигурациюВФайлы(Знач Версия, Знач КаталогВыгрузки, Знач ИмяРасширения = "")

ПутьФайлКонфигурации = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", Версия, "1Cv8.cf");

УправлениеКонфигуратором.ЗагрузитьКонфигурациюИзФайла(ПутьФайлКонфигурации);

УправлениеКонфигуратором.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки);
Если ПустаяСтрока(ИмяРасширения) Тогда
УправлениеКонфигуратором.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки);
Иначе
ПутьФайлКонфигурацииРасширения = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", Версия, "1Cv8.cfe");
УправлениеКонфигуратором.ЗагрузитьРасширениеИзФайла(ПутьФайлКонфигурацииРасширения,ИмяРасширения);
УправлениеКонфигуратором.ВыгрузитьРасширениеВФайлы(КаталогВыгрузки, ИмяРасширения);
КонецЕсли;

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

Expand Down

0 comments on commit 339cefd

Please sign in to comment.