Skip to content

Commit 581474a

Browse files
committed
Merge branch 'release/0.12.0'
2 parents b55a7c4 + 77a8c88 commit 581474a

File tree

3 files changed

+145
-31
lines changed

3 files changed

+145
-31
lines changed

packagedef

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11

22
Описание.Имя("v8runner")
3-
.Версия("0.11.2")
3+
.Версия("0.12.0")
44
.ВерсияСреды("1.0.17")
55
.ЗависитОт("asserts")
66
.ЗависитОт("fs")
7-
.ЗависитОт("logos")
7+
.ЗависитОт("logos", "0.6.2")
88
.ЗависитОт("tempfiles")
99
.ЗависитОт("1testrunner")
1010
.ЗависитОт("strings", "0.4.1")
11-
.ЗависитОт("1commands")
11+
.ЗависитОт("1commands", "1.3.0")
1212
.ВключитьФайл("src")
1313
.ВключитьФайл("tests")
1414
.ВключитьФайл("lib.config")

src/v8runner.os

Lines changed: 141 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
2-
///////////////////////////////////////////////////////////////////////////////////
1+
///////////////////////////////////////////////////////////////////////////////////
32
// УПРАВЛЕНИЕ ЗАПУСКОМ КОМАНД 1С:Предприятия 8
43
//
54

@@ -15,6 +14,7 @@
1514
Перем мПутьКПлатформе1С;
1615
Перем ЭтоWindows Экспорт;
1716
Перем мВерсияПлатформы;
17+
Перем мИсключениеПриОшибкеВыполненияКоманды;
1818

1919
Перем Лог;
2020
Перем мИмяФайлаИнформации;
@@ -883,7 +883,41 @@
883883

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

886-
Процедура ВыполнитьКоманду(Знач Параметры) Экспорт
886+
// Выгрузка внешней обработки или отчета в файл
887+
//
888+
// Параметры:
889+
// ПутьККаталогуВыгрузки - Строка - Путь к каталогу, в который нужно выполнить выгрузку внешнего отчета или обработки
890+
// ПутьКВнешнейОбработкеИлиОтчету - Строка - Путь к файлу внешнего отчета или обработки
891+
// Формат - РежимВыгрузкиКонфигурации - Формат выгрузки. По умолчанию используется "Hierarchical"
892+
//
893+
Процедура ВыгрузитьВнешниеОтчетыИлиОбработкиВФайлы(Знач ПутьККаталогуВыгрузки,
894+
Знач ПутьКВнешнейОбработкеИлиОтчету,
895+
Знач Формат = "") Экспорт
896+
897+
Если НЕ ЗначениеЗаполнено(Формат) Тогда
898+
Формат = РежимВыгрузкиКонфигурации.Иерархический;
899+
КонецЕсли;
900+
901+
Файл = Новый Файл(ПутьККаталогуВыгрузки);
902+
КаталогВыгрузки = Файл.ПолноеИмя;
903+
904+
ОбеспечитьКаталог(КаталогВыгрузки);
905+
906+
Файл = Новый Файл(ПутьКВнешнейОбработкеИлиОтчету);
907+
ПутьКВнешнейОбработкеИлиОтчету = Файл.ПолноеИмя;
908+
909+
ПараметрыЗапуска = СтандартныеПараметрыЗапускаКонфигуратора();
910+
ПараметрыЗапуска.Добавить("/DumpExternalDataProcessorOrReportToFiles");
911+
ПараметрыЗапуска.Добавить(ОбернутьВКавычки(КаталогВыгрузки));
912+
ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКВнешнейОбработкеИлиОтчету));
913+
ПараметрыЗапуска.Добавить("-Format");
914+
ПараметрыЗапуска.Добавить(Формат);
915+
916+
ВыполнитьКоманду(ПараметрыЗапуска);
917+
918+
КонецПроцедуры
919+
920+
Функция ВыполнитьКоманду(Знач Параметры) Экспорт
887921

888922
ПроверитьВозможностьВыполненияКоманды();
889923

@@ -893,14 +927,16 @@
893927

894928
УстановитьВывод(ПрочитатьФайлИнформации());
895929

896-
Если КодВозврата <> 0 Тогда
930+
Если КодВозврата <> 0 и мИсключениеПриОшибкеВыполненияКоманды Тогда
897931
Лог.Ошибка("Получен ненулевой код возврата "+КодВозврата+". Выполнение скрипта остановлено!");
898932
ВызватьИсключение ВыводКоманды();
899933
Иначе
900934
Лог.Отладка("Код возврата равен 0");
901935
КонецЕсли;
902936

903-
КонецПроцедуры
937+
Возврат КодВозврата;
938+
939+
КонецФункции
904940

905941
Функция ПолучитьПараметрыЗапуска() Экспорт
906942
Возврат СтандартныеПараметрыЗапускаКонфигуратора();
@@ -1204,7 +1240,7 @@
12041240
// УстановитьПризнакОжиданияВыполненияПрограммы
12051241
//
12061242
// Параметры:
1207-
// НовыйПризнак - <Булево> - <описание параметра>
1243+
// НовыйПризнак - <Булево> - Новое значение признака
12081244
//
12091245
// Возвращаемое значение:
12101246
// <Булево> - прежнее значение признака
@@ -1214,10 +1250,35 @@
12141250
Ожидаем.Что(НовыйПризнак = Ложь или НовыйПризнак = Истина,
12151251
"Параметр признак ожидания выполнения программы 1С должен быть или Истина или Ложь, а это не так").ЭтоИстина();
12161252

1253+
СтарыйПризнак = мПризнакОжиданияВыполненияПрограммы;
12171254
мПризнакОжиданияВыполненияПрограммы = НовыйПризнак;
12181255

1256+
Возврат СтарыйПризнак;
1257+
12191258
КонецФункции // УстановитьРежимОжиданияВыполненияПрограммы() Экспорт
12201259

1260+
// ИсключениеПриОшибкеВыполненияКоманды
1261+
//
1262+
// Параметры:
1263+
// НовоеЗначение - <Булево> - Новое значение флага "ИсключениеПриОшибкеВыполненияКоманды"
1264+
// если не указано, то возвращается текущее значение
1265+
//
1266+
// Возвращаемое значение:
1267+
// <Булево> - значение признака
1268+
//
1269+
Функция ИсключениеПриОшибкеВыполненияКоманды(НовоеЗначение = Неопределено) Экспорт
1270+
1271+
Ожидаем.Что(НовоеЗначение = Ложь или НовоеЗначение = Истина или НовоеЗначение = Неопределено,
1272+
"Параметр ""Исключение при ошибке выполнения команды"" должен быть или Истина, Ложь или Неопределено, а это не так").ЭтоИстина();
1273+
1274+
Если НЕ НовоеЗначение = Неопределено Тогда
1275+
мИсключениеПриОшибкеВыполненияКоманды = НовоеЗначение;
1276+
КонецЕсли;
1277+
1278+
Возврат мИсключениеПриОшибкеВыполненияКоманды;
1279+
1280+
КонецФункции // ИсключениеПриОшибкеВыполненияКоманды() Экспорт
1281+
12211282
Функция СобратьВозможныеКаталогиУстановкиПлатформыWindows()
12221283

12231284
СИ = Новый СистемнаяИнформация;
@@ -1372,17 +1433,29 @@
13721433
Приложение = ОбернутьВКавычки(ПутьКПлатформе1С());
13731434
Лог.Отладка(Приложение + СтрокаДляЛога);
13741435

1375-
Если ЭтоWindows = Ложь Тогда
1376-
СтрокаЗапуска = "sh -c '"+Приложение + СтрокаЗапуска + "'";
1377-
Иначе
1378-
СтрокаЗапуска = Приложение + СтрокаЗапуска;
1379-
КонецЕсли;
13801436
Если мОбработчикОжиданияПроцессаGUI = Неопределено Тогда
1381-
ЗапуститьПриложение(СтрокаЗапуска, , мПризнакОжиданияВыполненияПрограммы, КодВозврата);
1437+
Команда = Новый Команда;
1438+
1439+
Команда.УстановитьКоманду(Приложение);
1440+
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
1441+
Команда.ДобавитьЛогВыводаКоманды("oscript.lib.v8runner");
1442+
Команда.ДобавитьПараметры(Параметры);
1443+
Команда.УстановитьИсполнениеЧерезКомандыСистемы(Ложь);
1444+
Команда.ПоказыватьВыводНемедленно(Ложь);
1445+
КодВозврата = Команда.Исполнить();
1446+
13821447
Иначе
1448+
1449+
Если ЭтоWindows = Ложь Тогда
1450+
СтрокаЗапуска = "sh -c '"+Приложение + СтрокаЗапуска + "'";
1451+
Иначе
1452+
СтрокаЗапуска = Приложение + СтрокаЗапуска;
1453+
КонецЕсли;
1454+
13831455
ЗапуститьПроцессGUI(СтрокаЗапуска, КодВозврата);
13841456
КонецЕсли;
13851457
Лог.Отладка("Получен код возврата %1", КодВозврата);
1458+
13861459
Возврат КодВозврата;
13871460

13881461
КонецФункции
@@ -1582,6 +1655,7 @@
15821655
мОчищатьФайлИнформации = Истина;
15831656
мФайлИнформацииВнешний = Ложь;
15841657
мПризнакОжиданияВыполненияПрограммы = Истина;
1658+
мИсключениеПриОшибкеВыполненияКоманды = Истина;
15851659

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

@@ -1597,26 +1671,61 @@
15971671
КонецФункции
15981672

15991673

1600-
Процедура ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="") Экспорт
1601-
1602-
ПараметрыСвязиСБазой = СтандартныеПараметрыЗапускаКонфигуратора();
1603-
1604-
ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+"""");
1605-
ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryN """+ПользовательХранилища+"""");
1674+
// Метод устарел (используйте ЗагрузитьКонфигурациюИзХранилища())
1675+
// Выполняет загрузку конфигурации из хранилища конфигурации определенной версии, если задана, иначе получает последнюю версию.
1676+
//
1677+
// Параметры:
1678+
// СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации
1679+
// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации
1680+
// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации
1681+
// НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия.
1682+
//
1683+
Процедура ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="", Знач НомерВерсииХранилища = 0) Экспорт
16061684

1607-
Если Не ПустаяСтрока(ПарольХранилища) Тогда
1608-
ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryP """+ПарольХранилища+"""");
1609-
КонецЕсли;
1685+
Сообщить("ВНИМАНИЕ: метод ""ПолучитьИзмененияКонфигурацииБазыДанныхИзХранилища()"" УСТАРЕЛ и скоро будет удален. Вместо него используйте метод ""ЗагрузитьКонфигурациюИзХранилища()""!"
1686+
, СтатусСообщения.Внимание);
1687+
1688+
ЗагрузитьКонфигурациюИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища);
16101689

1611-
ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryUpdateCfg");
1612-
ПараметрыСвязиСБазой.Добавить("-force");
1690+
КонецПроцедуры
1691+
1692+
// Выполняет загрузку конфигурации из хранилища конфигурации определенной версии, если задана, иначе получает последнюю версию.
1693+
//
1694+
// Параметры:
1695+
// СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации
1696+
// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации
1697+
// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации
1698+
// НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия.
1699+
//
1700+
Процедура ЗагрузитьКонфигурациюИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="", Знач НомерВерсииХранилища = 0) Экспорт
1701+
1702+
ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища);
16131703

16141704
ВыполнитьКоманду(ПараметрыСвязиСБазой);
16151705

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

1618-
Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища="") Экспорт
1708+
// Выполняет загрузку конфигурации из хранилища конфигурации определенной версии, при этом обновляет базу данных
1709+
// Это необходимо, например, при последующем создании файла поставки, без обновления файл не будет создан.
1710+
//
1711+
// Параметры:
1712+
// СтрокаСоединения - Строка - Строка соединения с хранилищем конфигурации
1713+
// ПользовательХранилища - строка - Пользователь для подключения к хранилищю конфигурации
1714+
// ПарольХранилища - Строка - Пароль пользователь для подключения к хранилищю конфигурации
1715+
// НомерВерсии - Число - Номер версии в истории в хранилище конфигурации, если 0 или меньше, то берется последняя версия.
1716+
//
1717+
Процедура ОбновитьКонфигурациюБазыДанныхИзХранилища(Знач СтрокаСоединения, Знач ПользовательХранилища, Знач ПарольХранилища="", Знач НомерВерсииХранилища = 0) Экспорт
1718+
1719+
ПараметрыСвязиСБазой = СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища);
1720+
1721+
ПараметрыСвязиСБазой.Добавить("/UpdateDBCfg");
1722+
1723+
ВыполнитьКоманду(ПараметрыСвязиСБазой);
1724+
1725+
КонецПроцедуры
16191726

1727+
Функция СформироватьПараметрыСвязиСБазойДляПолучениеВерсииКонфигурацииИзХранилища(СтрокаСоединения, ПользовательХранилища, ПарольХранилища, НомерВерсииХранилища)
1728+
16201729
ПараметрыСвязиСБазой = СтандартныеПараметрыЗапускаКонфигуратора();
16211730

16221731
ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryF """+СтрокаСоединения+"""");
@@ -1627,12 +1736,16 @@
16271736
КонецЕсли;
16281737

16291738
ПараметрыСвязиСБазой.Добавить("/ConfigurationRepositoryUpdateCfg");
1739+
// ВАЖНО!!!! Флаг <-v> должен быть обязательно после команды ConfigurationRepositoryUpdateCfg
1740+
// Если это нарушить то всегда получается последняя версия конфигурации
1741+
Если НомерВерсииХранилища > 0 Тогда
1742+
ПараметрыСвязиСБазой.Добавить("-v " + НомерВерсииХранилища);
1743+
КонецЕсли;
16301744
ПараметрыСвязиСБазой.Добавить("-force");
16311745

1632-
ПараметрыСвязиСБазой.Добавить("/UpdateDBCfg");
1746+
Возврат ПараметрыСвязиСБазой;
16331747

1634-
ВыполнитьКоманду(ПараметрыСвязиСБазой);
1635-
КонецПроцедуры
1748+
КонецФункции
16361749

16371750
Функция ВариантОбработкиНесуществующихСсылок() Экспорт
16381751

@@ -1830,4 +1943,5 @@
18301943
// Инициализация
18311944

18321945
Лог = Логирование.ПолучитьЛог("oscript.lib.v8runner");
1946+
18331947
Инициализация();

tests/v8runner8310-tests.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282

8383
Процедура ВыгрузитьКонфигурациюВФайлы(Знач Версия, Знач КаталогВыгрузки)
8484

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

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

0 commit comments

Comments
 (0)