diff --git a/README.md b/README.md index 9d7c872..30a3534 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека - _--version-filter_ - фильтр версий по номеру (регулярное выражение) - _--version-start-date_ - фильтр по начальной дате версии (формат: dd.MM.yyyy, включая дату) - _--version-end-date_ - фильтр по последней дате версии (формат: dd.MM.yyyy, включая дату) + - _--distr-filter_ - фильтр заголовков ссылок на скачивание дистрибутива если не указан, то будет выполнена проверка наличия ссылки ""Полный дистрибутив"", затем ""Дистрибутив обновления"" - _--path_ - каталог для загрузки релизов 1С - _--from-last-version_ - флаг загрузки версий с номером старше последней версии в каталоге для загрузки (проверяются файлы `description.json`) - _--last-version-description_ - путь к файлу `description.json` с описанием последней загруженной версией @@ -245,11 +246,18 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm - **ФильтрВерсий** - Фильтр номеров версий - **ФильтрВерсийНачинаяСДаты** - Фильтр по начальной дате версии (включая) - **ФильтрВерсийДоДаты** - Фильтр по последней дате версии (включая) +- **ФильтрДистрибутива** - фильтр заголовков ссылок на скачивание дистрибутива если не указан, то будет выполнена проверка наличия ссылки "Полный дистрибутив", затем "Дистрибутив обновления" +- **ПолучатьБетаВерсии** - Истина - будут получены ознакомительные версии - **КаталогДляСохранения** - каталог для загрузки релизов 1С +- **НачатьСПоследнейВерсии** - Истина - будут загружены релизы с версией старше последней найденной в каталоге для загрузки (проверяются файлы description.json) Ложь - будут загружены все релизы с учетом других настроек +- **ОписаниеПоследнейВерсии** - путь к файлу description.json с описанием последней загруженной версии Ложь - будут загружены все релизы с учетом других настроек +- **ЗагружатьСуществующие** - Истина - будут загружены все найденные релизы независимо от существующих в каталоге для загрузки Ложь - будут загружены только отсутствующие в каталоге для загрузки релизы (проверяются файлы description.json) +- **ОграничениеКоличества** - ограничение количества загружаемых за 1 раз версий - **РаспаковыватьEFD** - Истина - если загруженный архив содержит упакованный шаблонконфигурации (содержит файл 1cv8.efd), то он будет распакован - **КаталогДляРаспаковкиEFD** - каталог для распаковки шаблона конфигурации - **КаталогВАрхивеДляРаспаковкиEFD** - регулярное выражение, отбора каталогов в архиве EFD для распаковки - **ФайлыДляРаспаковкиEFD** - список файлов для распаковки из архива EFD дистрибутива конфигурации, если не указан, то распаковываются все файлы +- **РаспаковыватьСуществующие** - Истина - будут распакованы все найденные дистрибутивы независимо от существующих в каталоге для распаковки Ложь - будут оаспакованы только отсутствующие в каталоге для распаковки дистрибутивы (проверяются файлы description.json) - **УдалитьПослеРаспаковкиEFD** - Истина - после рапаковки загруженный архив будет удален ### РаспаковщикРелизов1С.os @@ -265,6 +273,22 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm - **КаталогДляРаспаковкиEFD** - каталог для распаковки шаблона конфигурации - **КаталогВАрхивеДляРаспаковкиEFD** - регулярное выражение, отбора каталогов в архиве EFD для распаковки - **ФайлыДляРаспаковкиEFD** - список файлов для распаковки из архива EFD дистрибутива конфигурации, если не указан, то распаковываются все файлы +- **РаспаковыватьСуществующие** - Истина - будут распакованы все найденные дистрибутивы независимо от существующих в каталоге для распаковки Ложь - будут оаспакованы только отсутствующие в каталоге для распаковки дистрибутивы (проверяются файлы description.json) + +### РаспаковщикКаталогаРелизов1С.os + +Выполняет распаковку файлов шаблона конфигурации 1С из EFD-файла дистрибутива. + +#### Параметры + +- **Приложение_Имя** - имя конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива) +- **Приложение_Ид** - идентификатор конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива) +- **Приложение_Версия** - версия конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива) +- **ПутьКДистрибутиву** - путь к дистрибутиву конфигурации 1С +- **КаталогДляРаспаковкиEFD** - каталог для распаковки шаблона конфигурации +- **КаталогВАрхивеДляРаспаковкиEFD** - регулярное выражение, отбора каталогов в архиве EFD для распаковки +- **ФайлыДляРаспаковкиEFD** - список файлов для распаковки из архива EFD дистрибутива конфигурации, если не указан, то распаковываются все файлы +- **РаспаковыватьСуществующие** - Истина - будут распакованы все найденные дистрибутивы независимо от существующих в каталоге для распаковки Ложь - будут оаспакованы только отсутствующие в каталоге для распаковки дистрибутивы (проверяются файлы description.json) ### СборщикКонфигураций1С.os diff --git a/examples/ARAutomation25_2git.json b/examples/ARAutomation25_2git.json new file mode 100644 index 0000000..07086a3 --- /dev/null +++ b/examples/ARAutomation25_2git.json @@ -0,0 +1,40 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["Комплексная автоматизация, редакция 2"], + "ФильтрВерсий" : ["2\\.5.*"], + "ФильтрВерсийНачинаяСДаты" : "2022-03-25T00:00:00" + }, + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "ИдОбработчика":"ЗагрузчикКА_2_5", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "$workDir\\tmp\\distr", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "$workDir\\tmp\\tmplts", + "ФайлыДляРаспаковкиEFD" : "1Cv8.cf", + "УдалитьПослеРаспаковкиEFD" : false + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "ИдОбработчика":"ВыгрузкаДО", + "Параметры":{ + "ПутьККаталогуКонфигураций" : "$workDir\\tmp\\tmplts\\ARAutomation20", + "РепозитарийГит" : "d:\\tmp\\ARAutomation20", + "ИмяВеткиГит" : "release_1C", + "КонвертироватьВФорматЕДТ" : false, + "ВерсияЕДТ" : "2021.3.1", + "СнятьСПоддержки" : true, + "ОтносительныйПуть" : "ARAutomation" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/examples/CPM31_2git.json b/examples/CPM31_2git.json new file mode 100644 index 0000000..aa75b29 --- /dev/null +++ b/examples/CPM31_2git.json @@ -0,0 +1,41 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["1С:Управление холдингом 3.1"], + "ФильтрВерсий" : ["3\\.1\\.*"], + "ФильтрВерсийНачинаяСДаты" : "2022-01-01T00:00:00" + }, + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[efd]", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]", + "ФайлыДляРаспаковкиEFD" : [], + "УдалитьПослеРаспаковкиEFD" : false, + "ОписаниеПоследнейВерсии" : "$workDir\\description.json", + "НачатьСПоследнейВерсии" : true, + "ОграничениеКоличества" : 1, + "ЗагружатьСуществующие" : false + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "Параметры":{ + "ВерсияПлатформы" : "8.3.20", + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\corporateperformancemanagement31", + "ИмяФайлаКонфигурации" : "1cv8.cf", + "РепозитарийГит" : "$workDir", + "КонвертироватьВФорматЕДТ" : false, + "СнятьСПоддержки" : false + } + } + ] + } + ] +} diff --git a/examples/CPM32_2git.json b/examples/CPM32_2git.json new file mode 100644 index 0000000..52ed779 --- /dev/null +++ b/examples/CPM32_2git.json @@ -0,0 +1,41 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["1С:Управление холдингом 3.2"], + "ФильтрВерсий" : ["3\\.2\\.*"], + "ФильтрВерсийНачинаяСДаты" : "2022-01-01T00:00:00" + }, + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[efd]", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]", + "ФайлыДляРаспаковкиEFD" : [], + "УдалитьПослеРаспаковкиEFD" : false, + "ОписаниеПоследнейВерсии" : "$workDir\\description.json", + "НачатьСПоследнейВерсии" : true, + //"ОграничениеКоличества" : 1, + "ЗагружатьСуществующие" : false + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "Параметры":{ + "ВерсияПлатформы" : "8.3.20", + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\CorporatePerformanceManagement32", + "ИмяФайлаКонфигурации" : "1cv8.cf", + "РепозитарийГит" : "$workDir", + "КонвертироватьВФорматЕДТ" : false, + "СнятьСПоддержки" : false + } + } + ] + } + ] +} diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..0deaeb0 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,87 @@ +# Примеры файлов настройки загрузки + +Примеры по загрузке, распаковке и выгрузке каталога конфигурации в Гит с сайта релизов 1С. + +## Библиотека стандартных подсистем, редакция 3.1 ("1.3.*") + +https://releases.1c.ru/project/SSL31 + +[_Только загрузка_ (ssl31.json)](./ssl312.json) + +[_Загрузка, выгрузка в GIT_ (ssl31_2git.json)](./ssl31_2git.json) + +## Бухгалтерия предприятия, редакция 3.0 ("3.0.*") + +https://releases.1c.ru/project/Accounting30 + +[_Загрузка, сборка CF, выгрузка в GIT_ (accounting30_2git.json)](./accounting30_2git.json) + +## Бухгалтерия предприятия КОРП, редакция 3.0 ("3.0.*") + +https://releases.1c.ru/project/AccountingCorp30 + +[_Загрузка, сборка CF, выгрузка в GIT_ (accountingCorp30_2git.json)](./accountingCorp30_2git.json) + +## 1С:Управление холдингом 3.1 ("3.1.*") + +_Загрузка, сборка CF, выгрузка в GIT_ + +https://releases.1c.ru/project/CorporatePerformanceManagement31 + +[_Загрузка, выгрузка в GIT_ (CPM31_2git.json)](./CPM31_2git.json) + +## 1С:Управление холдингом 3.2 ("3.2.*") -Новинка 2022 + +https://releases.1c.ru/project/CorporatePerformanceManagement32 + +[_Загрузка, выгрузка в GIT_ (CPM32_2git.json)](./CPM32_2git.json) + +## Управление производственным предприятием, редакция 1.3 ("1.3.*") + +https://releases.1c.ru/project/Enterprise13 + +[_Загрузка, сборка CF, выгрузка в GIT_ (enterprise13_2git.json)](./enterprise13_2git.json) + +## 1С:Аналитика + +https://releases.1c.ru/project/Analytics + +[_Только загрузка_ (analytics.json)](./analytics.json) + +## Документооборот КОРП, редакция 2.1 ("2.1.*") + +https://releases.1c.ru/project/DocMngCorp + +[_Загрузка, выгрузка в GIT_ (docflowCorp21_2git.json)](./docflowCorp21_2git.json) + +## Управление торговлей, редакция 11 ("11.4.*") + +https://releases.1c.ru/project/Trade110 + +[_Загрузка, выгрузка в GIT_ (trade114_2git.json)](./trade114_2git.json) + +## Комплексная автоматизация, редакция 2 ("2.5.*") + +https://releases.1c.ru/project/ARAutomation + +[_Загрузка, выгрузка в GIT_ (ARAutomation25_2git.json)](./ARAutomation25_2git.json) + +************************************************************************ + +[YARD](https://github.com/ArKuznetsov/yard) может использоваться для загрузки Платформ и др.: + +Ожидаются примеры: + +1C:Enterprise Development Tools : DevelopmentTools10 + +1С:Сервер взаимодействия : CollaborationSystem + +Корпоративный инструментальный пакет 8 : ETP + +Мобильная платформа 1С:Предприятия: mobile + +Система проектирования прикладных решений: Modeling + +Технологическая платформа 8.3: Platform83 + +************************************************************************ diff --git a/examples/accounting30_2git.json b/examples/accounting30_2git.json new file mode 100644 index 0000000..c12dc86 --- /dev/null +++ b/examples/accounting30_2git.json @@ -0,0 +1,51 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["Бухгалтерия предприятия, редакция 3.0"], + "ФильтрВерсий" : ["3\\.0\\.*"], + "ФильтрВерсийНачинаяСДаты" : "2021-08-20T00:00:00" + }, + + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[efd]", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]", + "ФайлыДляРаспаковкиEFD" : [], + "УдалитьПослеРаспаковкиEFD" : false, + "ОписаниеПоследнейВерсии" : "$workDir\\description.json", + "НачатьСПоследнейВерсии" : true, + "ОграничениеКоличества" : 3, + "ЗагружатьСуществующие" : false + }, + + "Обработчики":[ + { + "ИмяОбработки":"СборщикКонфигураций1СВКаталоге", + "Параметры":{ + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\Accounting30" + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "Параметры":{ + "ВерсияПлатформы" : "8.3.20", + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\Accounting30", + "ИмяФайлаКонфигурации" : "1cv8.cf", + "РепозитарийГит" : "$workDir", + "КонвертироватьВФорматЕДТ" : false, + "СнятьСПоддержки" : false + } + } + ] + } + ] + } + ] +} diff --git a/examples/accountingCorp30_2git.json b/examples/accountingCorp30_2git.json new file mode 100644 index 0000000..9a4c978 --- /dev/null +++ b/examples/accountingCorp30_2git.json @@ -0,0 +1,51 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["Бухгалтерия предприятия КОРП, редакция 3.0"], + "ФильтрВерсий" : ["3\\.0\\.*"], + "ФильтрВерсийНачинаяСДаты" : "2021-09-01T00:00:00" + }, + + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[efd]", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]", + "ФайлыДляРаспаковкиEFD" : [], + "УдалитьПослеРаспаковкиEFD" : false, + "ОписаниеПоследнейВерсии" : "$workDir\\description.json", + "НачатьСПоследнейВерсии" : true, + "ОграничениеКоличества" : 3, + "ЗагружатьСуществующие" : false + }, + + "Обработчики":[ + { + "ИмяОбработки":"СборщикКонфигураций1СВКаталоге", + "Параметры":{ + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\AccountingCorp30" + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "Параметры":{ + "ВерсияПлатформы" : "8.3.20", + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\AccountingCorp30", + "ИмяФайлаКонфигурации" : "1cv8.cf", + "РепозитарийГит" : "$workDir", + "КонвертироватьВФорматЕДТ" : false, + "СнятьСПоддержки" : false + } + } + ] + } + ] + } + ] +} diff --git a/examples/analytics.json b/examples/analytics.json new file mode 100644 index 0000000..78cb0d2 --- /dev/null +++ b/examples/analytics.json @@ -0,0 +1,29 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["1С:Аналитика"], + "ФильтрВерсийНачинаяСДаты" : "2022-01-01T00:00:00" + }, + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "ИдОбработчика":"1С:Аналитика", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ИмяПриложения": "1С:Аналитика", + "ФильтрДистрибутива" : "1С:Аналитика. Версия 1.* Дистрибутив \\(zip\\)", + "КаталогДляСохранения" : "\\\\ПутьДоСетевойПапки\\Аналитика\\[efd]", + "РаспаковыватьEFD" : false, + "ФайлыДляРаспаковкиEFD" : [], + "УдалитьПослеРаспаковкиEFD" : false, + "ОписаниеПоследнейВерсии" : "$workDir\\description.json", + "НачатьСПоследнейВерсии" : true, + "ОграничениеКоличества" : 2, + "ЗагружатьСуществующие" : false + } + } + ] +} diff --git a/examples/docflow2git.json b/examples/docflowCorp21_2git.json similarity index 100% rename from examples/docflow2git.json rename to examples/docflowCorp21_2git.json diff --git a/examples/enterprise13_2git.json b/examples/enterprise13_2git.json new file mode 100644 index 0000000..8fbeacb --- /dev/null +++ b/examples/enterprise13_2git.json @@ -0,0 +1,51 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["Управление производственным предприятием, редакция 1.3"], + "ФильтрВерсий" : ["1\\.3\\.*"], + "ФильтрВерсийНачинаяСДаты" : "2021-10-10T00:00:00" + }, + + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[efd]", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]", + "ФайлыДляРаспаковкиEFD" : [], + "УдалитьПослеРаспаковкиEFD" : false, + "ОписаниеПоследнейВерсии" : "$workDir\\description.json", + "НачатьСПоследнейВерсии" : true, + //"ОграничениеКоличества" : 3, + "ЗагружатьСуществующие" : false + }, + + "Обработчики":[ + { + "ИмяОбработки":"СборщикКонфигураций1СВКаталоге", + "Параметры":{ + "ПутьККаталогуКонфигураций" : "\\\\ПутьДоСетевойПапки\\Конфигурации\\[Distr]\\Enterprise13" + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "Параметры":{ + "ВерсияПлатформы" : "8.3.20", + "ПутьККаталогуКонфигураций" : "\\\\1C80\\Конфигурации\\[Distr]\\Enterprise13", + "ИмяФайлаКонфигурации" : "1cv8.cf", + "РепозитарийГит" : "$workDir", + "КонвертироватьВФорматЕДТ" : false, + "СнятьСПоддержки" : false + } + } + ] + } + ] + } + ] +} diff --git a/examples/releases2templates.json b/examples/ssl312.json similarity index 88% rename from examples/releases2templates.json rename to examples/ssl312.json index 84a5b20..6baa580 100644 --- a/examples/releases2templates.json +++ b/examples/ssl312.json @@ -2,7 +2,7 @@ "ИмяОбработки":"СписокРелизов1С", "Параметры":{ "ИмяПользователя" : "user", - "ПарольПользователя" : "password", + "ПарольПользователя" : "P@ssw0rd", "ФильтрПриложений" : ["Библиотека стандартных подсистем.*3\\.1"], "ФильтрВерсий" : ["3\\.1\\.2.*"], "ФильтрВерсийНачинаяСДаты" : "2020-01-01T00:00:00", @@ -15,7 +15,7 @@ "Параметры":{ "args": ["-p", "", "-e", "--ep", ""], "ИмяПользователя" : "user", - "ПарольПользователя" : "password", + "ПарольПользователя" : "P@ssw0rd", "КаталогДляСохранения" : "$workDir\\tmp\\distr", "РаспаковыватьEFD" : true, "КаталогДляРаспаковкиEFD" : "$workDir\\tmp\\tmplts" diff --git a/examples/ssl31_2git.json b/examples/ssl31_2git.json new file mode 100644 index 0000000..b5729a1 --- /dev/null +++ b/examples/ssl31_2git.json @@ -0,0 +1,40 @@ +{ + "ИмяОбработки":"СписокРелизов1С", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "ФильтрПриложений" : ["1С:Библиотека стандартных подсистем, редакция 3\\.1"], + "ФильтрВерсий" : ["3\\.1.*"], + "ФильтрВерсийНачинаяСДаты" : "2022-03-25T00:00:00" + }, + "Обработчики":[ + { + "ИмяОбработки":"ЗагрузчикРелизов1С", + "ИдОбработчика":"ЗагрузчикБСП_3_1", + "Параметры":{ + "ИмяПользователя" : "user", + "ПарольПользователя" : "P@ssw0rd", + "КаталогДляСохранения" : "$workDir\\tmp\\distr", + "РаспаковыватьEFD" : true, + "КаталогДляРаспаковкиEFD" : "$workDir\\tmp\\tmplts", + "ФайлыДляРаспаковкиEFD" : "1Cv8.cf", + "УдалитьПослеРаспаковкиEFD" : false + }, + "Обработчики":[ + { + "ИмяОбработки":"ВыгрузкаКаталогаКонфигурацииВГит", + "ИдОбработчика":"ВыгрузкаДО", + "Параметры":{ + "ПутьККаталогуКонфигураций" : "$workDir\\tmp\\tmplts\\SSL31", + "РепозитарийГит" : "d:\\tmp\\SSL31", + "ИмяВеткиГит" : "release_1C", + "КонвертироватьВФорматЕДТ" : false, + "ВерсияЕДТ" : "2021.3.1", + "СнятьСПоддержки" : true, + "ОтносительныйПуть" : "SSL" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/examples/trade112git.json b/examples/trade114_2git.json similarity index 100% rename from examples/trade112git.json rename to examples/trade114_2git.json diff --git a/packagedef b/packagedef index 5b03517..4577ee6 100644 --- a/packagedef +++ b/packagedef @@ -1,5 +1,5 @@ Описание.Имя("yard") - .Версия("1.8.0") + .Версия("1.9.0") .ВерсияСреды("1.6") .ЗависитОт("logos") .ЗависитОт("asserts") @@ -13,6 +13,7 @@ .РазработкаЗависитОт("1testrunner") .РазработкаЗависитОт("1bdd") .ВключитьФайл("src") + .ВключитьФайл("examples") .ВключитьФайл("lib.config") .ВключитьФайл("README.md") .ВключитьФайл("LICENSE") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index cbc32aa..a1f8aed 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -408,13 +408,19 @@ Если ТипЗнч(Значение) = Тип("Массив") Тогда ФильтрПриложений = Значение; Иначе - ФильтрПриложений = СтрРазделить(Значение, "|"); + ФильтрПриложений = СтрРазделить(Значение, "|", Ложь); КонецЕсли; ИначеЕсли ВРег(ИмяПараметра) = "ФИЛЬТРВЕРСИЙ" Тогда Если ТипЗнч(Значение) = Тип("Массив") Тогда ФильтрВерсий = Значение; Иначе - ФильтрВерсий = СтрРазделить(Значение, "|"); + ФильтрВерсий = СтрРазделить(Значение, "|", Ложь); + КонецЕсли; + ИначеЕсли ВРег(ИмяПараметра) = "ФИЛЬТРДИСТРИБУТИВА" Тогда + Если ТипЗнч(Значение) = Тип("Массив") Тогда + ФильтрДистрибутива = Значение; + Иначе + ФильтрДистрибутива = СтрРазделить(Значение, "|", Ложь); КонецЕсли; ИначеЕсли ВРег(ИмяПараметра) = "КАТАЛОГДЛЯСОХРАНЕНИЯ" Тогда ВремФайл = Новый Файл(Значение); @@ -679,16 +685,16 @@ Служебный.УбратьКавычки(ВремФильтрДистрибутива); УстановитьПараметрОбработкиДанных("ФильтрДистрибутива" , ВремФильтрДистрибутива); - УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path")); - УстановитьПараметрОбработкиДанных("НачатьСПоследнейВерсии" , Команда.ЗначениеОпции("from-last-version")); - УстановитьПараметрОбработкиДанных("ОписаниеПоследнейВерсии" , Команда.ЗначениеОпции("last-version-description")); - УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); - УстановитьПараметрОбработкиДанных("ОграничениеКоличества" , Команда.ЗначениеОпции("download-limit")); - УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); - УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-path")); - УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD" , Команда.ЗначениеОпции("delete")); - УстановитьПараметрОбработкиДанных("ПолучатьБетаВерсии" , Команда.ЗначениеОпции("get-beta-versions")); - УстановитьПараметрОбработкиДанных("КаталогВАрхивеДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-dir")); + УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path")); + УстановитьПараметрОбработкиДанных("НачатьСПоследнейВерсии" , Команда.ЗначениеОпции("from-last-version")); + УстановитьПараметрОбработкиДанных("ОписаниеПоследнейВерсии" , Команда.ЗначениеОпции("last-version-description")); + УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); + УстановитьПараметрОбработкиДанных("ОграничениеКоличества" , Команда.ЗначениеОпции("download-limit")); + УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); + УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-path")); + УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD" , Команда.ЗначениеОпции("delete")); + УстановитьПараметрОбработкиДанных("ПолучатьБетаВерсии" , Команда.ЗначениеОпции("get-beta-versions")); + УстановитьПараметрОбработкиДанных("КаталогВАрхивеДляРаспаковкиEFD", Команда.ЗначениеОпции("extract-dir")); ВремФайлы = СтрРазделить(Команда.ЗначениеОпции("extract-files"), "|", Ложь); УстановитьПараметрОбработкиДанных("ФайлыДляРаспаковкиEFD" , ВремФайлы); @@ -832,7 +838,7 @@ // *Дата - Дата - дата версии приложения // *ПолныйДистрибутив - Булево - версия содержит полный дистрибутив // *ДистрибутивОбновления - Булево - версия содержит дистрибутив обновления -// *ВерсииДляОбновления - Массив(Строка) - массив номеров версий, для которых преднозначено обновление +// *ВерсииДляОбновления - Массив из Строка - массив номеров версий, для которых преднозначено обновление // Обозреватель - Объект - экземпляр класса "Обозреватель1С" // // Возвращаемое значение: @@ -928,7 +934,8 @@ РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Версия" , ОписаниеВерсии.Версия); РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("ПутьКДистрибутиву" , ФайлАрхива.Путь); РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , КаталогДляРаспаковкиEFD); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("КаталогВАрхивеДляРаспаковкиEFD", КаталогВАрхивеДляРаспаковкиEFD); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("КаталогВАрхивеДляРаспаковкиEFD", + КаталогВАрхивеДляРаспаковкиEFD); РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("ФайлыДляРаспаковкиEFD" , ФайлыДляРаспаковкиEFD); РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("РаспаковыватьСуществующие" , РаспаковыватьСуществующие); РаспаковщикРелиза.ОбработатьДанные(); @@ -948,14 +955,14 @@ // Процедура - записывает описание версии в файл JSON // // Параметры: -// ОписаниеВерсии - Структура - описание версии приложения -// *Идентификатор - Строка - идентификатор приложения -// *Имя - Строка - имя приложения -// *Версия - Строка - номер версии приложения -// *Дата - Дата - дата версии приложения -// *ВидДистрибутива - Строка - вид дистрибутива "Полный"/"Обновление" -// *ВерсииДляОбновления - Массив(Строка) - массив номеров версий, для которых преднозначено обновление -// Путь - Строка - путь к каталогу, в котором будет сохранен файл описания версии +// ОписаниеВерсии - Структура - описание версии приложения +// *Идентификатор - Строка - идентификатор приложения +// *Имя - Строка - имя приложения +// *Версия - Строка - номер версии приложения +// *Дата - Дата - дата версии приложения +// *ВидДистрибутива - Строка - вид дистрибутива "Полный"/"Обновление" +// *ВерсииДляОбновления - Массив из Строка - массив номеров версий, для которых преднозначено обновление +// Путь - Строка - путь к каталогу, в котором будет сохранен файл описания версии // Процедура ЗаписатьОписаниеВерсииВФайл(Знач ОписаниеВерсии, Знач Путь) @@ -1035,7 +1042,8 @@ Если Служебный.СравнитьВерсии(ОписаниеВерсии.Версия, ПоследняяВерсия) > 0 Тогда Возврат Истина; Иначе - Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" меньше или равна последней существующей версии ""%5"" в каталоге ""%6""", + Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" + | меньше или равна последней существующей версии ""%5"" в каталоге ""%6""", ТипЗнч(ЭтотОбъект), ОписаниеВерсии.Версия, Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" index 1ee3a4d..2ba8052 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\2601\320\241.os" @@ -29,17 +29,17 @@ // Функция - получает список версий приложения с сайта 1С // // Параметры: -// Фильтр - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) для поиска нужных приложений по имени -// ФильтрВерсий - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) для поиска нужных версий по номеру +// Фильтр - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка для поиска нужных приложений по имени +// ФильтрВерсий - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка для поиска нужных версий по номеру // НачальнаяДата - Дата - фильтр по начальной дате версии (включая) // КонечнаяДата - Дата - фильтр по последней дате версии (включая) // ПолучатьБетаВерсии - Булево - Истина - будут получены ознакомительные версии // Ложь - будут получены только релизные версии // // Возвращаемое значение: -// Массив(Структура) - массив описаний ссылок для загрузки +// Массив из Структура - массив описаний ссылок для загрузки // * Имя - Строка - имя приложения // * Путь - Строка - относительный путь к странице приложения // * Идентификатор - Строка - идентификатор приложения @@ -113,13 +113,13 @@ // // Параметры: // АдресРесурса - Строка - расположение страницы версий на сервере -// Фильтр - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) для поиска нужных версий по номеру +// Фильтр - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка для поиска нужных версий по номеру // НачальнаяДата - Дата - фильтр по начальной дате версии (включая) // КонечнаяДата - Дата - фильтр по последней дате версии (включая) // // Возвращаемое значение: -// Массив(Структура) - массив описаний ссылок для загрузки +// Массив из Структура - массив описаний ссылок для загрузки // * Версия - Строка - номер версии // * Дата - Дата - дата версии // * Путь - Строка - относительный путь к странице версии @@ -149,8 +149,9 @@ Продолжить; КонецЕсли; - Если (ЗначениеЗаполнено(НачальнаяДата) И ТекДатаВерсии < НачальнаяДата) - ИЛИ (ЗначениеЗаполнено(КонечнаяДата) И ТекДатаВерсии > КонечнаяДата) Тогда + ВерсияНеСоответствуетФильтруДат = ((ЗначениеЗаполнено(НачальнаяДата) И ТекДатаВерсии < НачальнаяДата) + ИЛИ (ЗначениеЗаполнено(КонечнаяДата) И ТекДатаВерсии > КонечнаяДата)); + Если ВерсияНеСоответствуетФильтруДат Тогда Продолжить; КонецЕсли; @@ -176,14 +177,14 @@ // Функция - получает список ознакомительных версий приложения с сайта 1С // // Параметры: -// АдресРесурса - Строка - расположение страницы версий на сервере -// Фильтр - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) для поиска нужных версий по номеру +// СтрокаКонфигурации - Строка - текст строки описания приложения/конфигурации +// Фильтр - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка для поиска нужных версий по номеру // НачальнаяДата - Дата - фильтр по начальной дате версии (включая) // КонечнаяДата - Дата - фильтр по последней дате версии (включая) // // Возвращаемое значение: -// Массив(Структура) - массив описаний ссылок для загрузки +// Массив из Структура - массив описаний ссылок для загрузки // * Версия - Строка - номер версии // * Дата - Дата - дата версии // * Путь - Строка - относительный путь к странице версии @@ -222,8 +223,9 @@ Продолжить; КонецЕсли; - Если (ЗначениеЗаполнено(НачальнаяДата) И ТекДатаВерсии < НачальнаяДата) - ИЛИ (ЗначениеЗаполнено(КонечнаяДата) И ТекДатаВерсии > КонечнаяДата) Тогда + ВерсияНеСоответствуетФильтруДат = ((ЗначениеЗаполнено(НачальнаяДата) И ТекДатаВерсии < НачальнаяДата) + ИЛИ (ЗначениеЗаполнено(КонечнаяДата) И ТекДатаВерсии > КонечнаяДата)); + Если ВерсияНеСоответствуетФильтруДат Тогда Продолжить; КонецЕсли; @@ -245,8 +247,8 @@ // // Параметры: // АдресРесурса - Строка - расположение страницы загрузок на сервере -// Фильтр - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) для поиска ссылки на загрузку по заголовку +// Фильтр - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка для поиска ссылки на загрузку по заголовку // // Возвращаемое значение: // Булево - Истина - есть ссылки, удовлетворяющие фильтру; @@ -264,15 +266,15 @@ // // Параметры: // АдресРесурса - Строка - расположение страницы загрузок на сервере -// Фильтр - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) для поиска ссылки на загрузку по заголовку +// Фильтр - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка для поиска ссылки на загрузку по заголовку // // Возвращаемое значение: -// Массив(Структура) - массив описаний ссылок для загрузки -// * Имя - Строка - заголовок ссылки -// * Путь - Строка - относительный путь на сайте 1С -// * ПутьДляЗагрузки - Строка - путь для скачивания файла -// * ИмяФайла - Строка - имя загружаемого файла +// Массив из Структура - массив описаний ссылок для загрузки +// * Имя - Строка - заголовок ссылки +// * Путь - Строка - относительный путь на сайте 1С +// * ПутьДляЗагрузки - Строка - путь для скачивания файла +// * ИмяФайла - Строка - имя загружаемого файла // Функция ПолучитьСсылкиДляЗагрузки(Знач АдресРесурса = "", Знач Фильтр = Неопределено) Экспорт @@ -302,7 +304,7 @@ СовпаденияДляЗагрузки = Служебный.НайтиСовпаденияВТексте(СтраницаЗагрузки, ПараметрыПриложения.ШаблонПоискаСсылкиДляЗагрузки()); - + Если СовпаденияДляЗагрузки.Количество() = 0 Тогда Продолжить; КонецЕсли; @@ -328,7 +330,7 @@ // ПутьКФайлуДляСохранения - Строка - путь к файлу для сохранения // Процедура ЗагрузитьФайл(АдресИсточника, Знач ПутьКФайлуДляСохранения) Экспорт - + СтруктураАдреса = СтруктураURI(АдресИсточника); Сервер = СтрШаблон("%1://%2", СтруктураАдреса.Схема, СтруктураАдреса.Хост); @@ -341,12 +343,12 @@ Запрос = ЗапросКСайту(АдресИсточника); Запрос.Заголовки.Вставить("Cookie", ИдСеансаЗагрузки); - Лог.Отладка("Загрузка файла: Начало загрузки файла по адресу ""%1/%2""", Сервер, АдресИсточника); - + Лог.Отладка("Загрузка файла: Начало загрузки файла по адресу ""%1""", АдресИсточника); + Ответ = Соединение.Получить(Запрос, ПутьКФайлуДляСохранения); Лог.Отладка("Загрузка файла: Загружен файл ""%1""", ПутьКФайлуДляСохранения); - + КонецПроцедуры // ЗагрузитьФайл() // Функция - выполняет авторизацию на сайте 1С и возвращает идентификатор сеанса @@ -384,7 +386,7 @@ НовыйИдСеанса = Сред(НовыйИдСеанса, Найти(НовыйИдСеанса, "SESSION=")); НовыйИдСеанса = Лев(НовыйИдСеанса, Найти(НовыйИдСеанса, ";") - 1); - Лог.Отладка("Авторизация: Получен ответ от ресурса ""%1/%2"", переадресация -> ""%3""", + Лог.Отладка("Авторизация: Получен ответ от ресурса ""%1%2"", переадресация -> ""%3""", Сервер, ЗапросПолучение.АдресРесурса, ПолучитьЗначениеЗаголовка("location", ОтветПереадресация.Заголовки)); @@ -399,13 +401,13 @@ ТелоОтвета = ОтветРегистрация.ПолучитьТелоКакСтроку(); СтрокаРегистрации = ПолучитьСтрокуРегистрации(ТелоОтвета, ИмяПользователя, ПарольПользователя); - Лог.Отладка("Авторизация: Получена строка регистрации от ресурса ""%1/%2"": ""%3""", + Лог.Отладка("Авторизация: Получена строка регистрации от ресурса ""%1%2"": ""%3""", ПараметрыПриложения.СервисАвторизации(), ЗапросПолучение.АдресРесурса, СтрокаРегистрации); // Запрос 3 - выполнение регистрации - ЗапросОбработка = ЗапросКСайту("/login"); + ЗапросОбработка = ЗапросКСайту(ПараметрыПриложения.СтраницаАвторизации()); ЗапросОбработка.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); ЗапросОбработка.Заголовки.Вставить("Cookie", НовыйИдСеанса + "; i18next=ru-RU"); ЗапросОбработка.УстановитьТелоИзСтроки(СтрокаРегистрации); @@ -426,7 +428,7 @@ КодПереадресации, СообщениеОбОшибке); - Лог.Отладка("Авторизация: Получен ответ от ресурса ""%1/%2"", переадресация -> ""%3""", + Лог.Отладка("Авторизация: Получен ответ от ресурса ""%1%2"", переадресация -> ""%3""", ПараметрыПриложения.СервисАвторизации(), ЗапросОбработка.АдресРесурса, ПолучитьЗначениеЗаголовка("location", ОтветПроверка.Заголовки)); @@ -437,7 +439,7 @@ СоединениеЦелевое.Получить(ЗапросПолучение); - Лог.Отладка("Авторизация: Получен ответ от ресурса ""%1/%2"", ID сеанса: ""%3""", + Лог.Отладка("Авторизация: Получен ответ от ресурса ""%1%2"", ID сеанса: ""%3""", Сервер, ЗапросПолучение.АдресРесурса, НовыйИдСеанса); @@ -478,7 +480,6 @@ // Параметры: // Сервер - Строка - адрес сервера // АдресРесурса - Строка - расположение ресурса на сервере -// ИдСеанса - Строка - идентификатор текущего сеанса // АвтоматическоеПеренаправление - Булево - Истина - будет выполняться автоматическое перенаправление // при соответствующем ответе сервера // Ложь - перенаправление выполняться не будет @@ -496,7 +497,7 @@ Ответ = Соединение.Получить(Запрос); - Лог.Отладка("Получена страница сайта ""%1/%2""", Сервер, АдресРесурса); + Лог.Отладка("Получена страница сайта ""%1%2""", Сервер, АдресРесурса); Возврат Ответ.ПолучитьТелоКакСтроку(); @@ -548,6 +549,7 @@ КонецЕсли; ОписаниеФайла.ПолноеИмя = Совпадения[0].Группы[1].Значение; + ОписаниеФайла.ПолноеИмя = СтрЗаменить(ОписаниеФайла.ПолноеИмя, "%5c", "\"); ОписаниеФайла.ЧастиПути = СтрРазделить(ОписаниеФайла.ПолноеИмя, "\"); @@ -567,8 +569,8 @@ // // Параметры: // Значение - Строка - проверяемая строка -// Фильтр - Строка, - регулярное выражение или массив регулярных выражений -// Массив(Строка) +// Фильтр - Строка - регулярное выражение или массив регулярных выражений +// Массив из Строка // // Возвращаемое значение: // Булево - Истина - строка соответствует фильтру @@ -706,12 +708,12 @@ // Процедура - сортирует массив описаний версий по датам версий // // Параметры: -// ОписанияВерсий - Массив(Структура) - массив описаний версий для сортировки +// ОписанияВерсий - Массив из Структура - массив описаний версий для сортировки // * Версия - Строка - номер версии // * Дата - Дата - дата версии // * Путь - Строка - относительный путь к странице версии // * ВерсииДляОбновления - Массив - список версий для обновления -// Порядок - Строка - принимает значение "ВОЗР" или "УБЫВ" +// Порядок - Строка - принимает значение "ВОЗР" или "УБЫВ" // Процедура СортироватьОписанияВерсийПоДате(ОписанияВерсий, Порядок = "ВОЗР") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index 5b223f2..a97873c 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -230,7 +230,7 @@ Если ТипЗнч(Значение) = Тип("Массив") Тогда ФайлыДляРаспаковкиEFD = Значение; Иначе - ФайлыДляРаспаковкиEFD = СтрРазделить(Значение, "|"); + ФайлыДляРаспаковкиEFD = СтрРазделить(Значение, "|", Ложь); КонецЕсли; ИначеЕсли ВРег(ИмяПараметра) = "ПУТЬККАТАЛОГУДИСТРИБУТИВОВ" Тогда ВремФайл = Новый Файл(Значение); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index a423ad3..f45ee2a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\321\201\320\277\320\260\320\272\320\276\320\262\321\211\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -257,7 +257,7 @@ Если ТипЗнч(Значение) = Тип("Массив") Тогда ФайлыДляРаспаковкиEFD = Значение; Иначе - ФайлыДляРаспаковкиEFD = СтрРазделить(Значение, "|"); + ФайлыДляРаспаковкиEFD = СтрРазделить(Значение, "|", Ложь); КонецЕсли; ИначеЕсли ВРег(ИмяПараметра) = "ПУТЬКДИСТРИБУТИВУ" Тогда ВремФайл = Новый Файл(Значение); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index f6c7bb5..79fb713 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -260,13 +260,13 @@ Если ТипЗнч(Значение) = Тип("Массив") Тогда ФильтрПриложений = Значение; Иначе - ФильтрПриложений = СтрРазделить(Значение, "|"); + ФильтрПриложений = СтрРазделить(Значение, "|", Ложь); КонецЕсли; ИначеЕсли ВРег(ИмяПараметра) = "ФИЛЬТРВЕРСИЙ" Тогда Если ТипЗнч(Значение) = Тип("Массив") Тогда ФильтрВерсий = Значение; Иначе - ФильтрВерсий = СтрРазделить(Значение, "|"); + ФильтрВерсий = СтрРазделить(Значение, "|", Ложь); КонецЕсли; ИначеЕсли ВРег(ИмяПараметра) = "ПУТЬКФАЙЛУДЛЯСОХРАНЕНИЯ" Тогда ВремФайл = Новый Файл(Значение); diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" index f724ff4..a6961d9 100644 --- "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" @@ -3,5 +3,6 @@ СтандартнаяОбработка = Ложь; ДобавитьМакет(ОбъединитьПути(Путь, "Перечисления.json"), "/Макеты/Перечисления"); + ДобавитьМакет(ОбъединитьПути(Путь, "РесурсыПриложения.json"), "/Макеты/РесурсыПриложения"); КонецПроцедуры \ No newline at end of file diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" new file mode 100644 index 0000000..d470773 --- /dev/null +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\240\320\265\321\201\321\203\321\200\321\201\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.json" @@ -0,0 +1,17 @@ +{ + "СервисАвторизации" : "https://login.1c.ru", + "СтраницаАвторизации" : "/login", + "СервисРелизов" : "https://releases.1c.ru", + "СтраницаСпискаРелизов" : "/total", + "ШаблонСтрокиРегистрации" : "inviteCode=&username=%1&password=%2&execution=%3&_eventId=submit&geolocation=&submit=Войти&rememberMe=on", + "ШаблонПоискаСтрокиРегистрации" : ".*?<\\/tr>", + "ШаблонПоискаКонфигураций" : "(.*)<\/a>.*.*?.*?(\\d(?:\\d|\\.)*)", + "ШаблонПоискаКолонокБетаВерсий" : ".*?<\\/td>(.*?)(.*?)<\\/td>", + "ШаблонПоискаСсылокБетаВерсий" : "(.*?)<\\/a>", + "ШаблонПоискаДатБетаВерсий" : "(\\d\\d\\.\\d\\d\\.\\d\\d)+", + "ШаблонПоискаВерсий" : "\\s*\\s*(.*)\\s*<\\/a>(\\s|.)*?\\s*(.*)\\s*<\\/td>(\\s|.)*?(?:\\s*(?:.*)\\s*<\\/td>(?:\\s|.)*?)?\\s*(.*)\\s*<\\/td>", + "ШаблонПоискаАдресаСтраницыЗагрузки" : "
\\s*\\s*(.*)\\s*<\\/a>(\\s|.)*?<\/div>", + "ШаблонПоискаСсылкиДляЗагрузки" : "
(\\s|.)*?\\s*Скачать дистрибутив\\s*<\\/a>(\\s|.)*?<\\/div>", + "ШаблонПоискаПутиКФайлуВАдресе" : "\\?.*path=(.+)(?:\\z|&)" +} \ No newline at end of file diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index b927e8c..43926d2 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -16,6 +16,7 @@ Перем СохрКаталогПриложения; // Строка - текущий каталог приложения Перем ЭтоПриложениеEXE; // Булево - Истина - выполняется скомпилированный скрипт Перем ЭтоWindows; // Булево - Истина - скрипт выполняется в среде Windows +Перем ЗначенияРесурсов; // Структура - именованные ресурсы приложения #Область ПрограммныйИнтерфейс @@ -26,7 +27,7 @@ // Функция СервисАвторизации() Экспорт - Возврат "https://login.1c.ru"; + Возврат ЗначениеРесурса("СервисАвторизации"); КонецФункции // СервисАвторизации() @@ -37,7 +38,7 @@ // Функция СервисРелизов() Экспорт - Возврат "https://releases.1c.ru"; + Возврат ЗначениеРесурса("СервисРелизов"); КонецФункции // СервисРелизов() @@ -48,10 +49,21 @@ // Функция СтраницаСпискаРелизов() Экспорт - Возврат "total"; + Возврат ЗначениеРесурса("СтраницаСпискаРелизов"); КонецФункции // СтраницаСпискаРелизов() +// Функция - возвращает относительный адрес страницы авторизации +// +// Возвращаемое значение: +// Строка - относительный адрес страницы авторизации +// +Функция СтраницаАвторизации() Экспорт + + Возврат ЗначениеРесурса("СтраницаАвторизации"); + +КонецФункции // СтраницаАвторизации() + // Функция - возвращает шаблон строки регистрации // // Возвращаемое значение: @@ -59,8 +71,7 @@ // Функция ШаблонСтрокиРегистрации() Экспорт - Возврат "inviteCode=&username=%1&password=%2&execution=%3" - + "&_eventId=submit&geolocation=&submit=Войти&rememberMe=on"; + Возврат ЗначениеРесурса("ШаблонСтрокиРегистрации"); КонецФункции // ШаблонСтрокиРегистрации() @@ -71,8 +82,7 @@ // Функция ШаблонПоискаСтрокиРегистрации() Экспорт - Возврат "" - + ".*?<\/tr>"; + Возврат ЗначениеРесурса("ШаблонПоискаСтрокКонфигураций"); КонецФункции // ШаблонПоискаСтрокКонфигураций() @@ -94,10 +104,7 @@ // Функция ШаблонПоискаКонфигураций() Экспорт - Возврат "(.*)<\/a>.*" - + "" - + ".*" - + "?.*?(\d(?:\d|\.)*)"; + Возврат ЗначениеРесурса("ШаблонПоискаКонфигураций"); КонецФункции // ШаблонПоискаКонфигураций() @@ -108,8 +115,7 @@ // Функция ШаблонПоискаКолонокБетаВерсий() Экспорт - Возврат ".*?<\/td>(.*?)" - + "(.*?)<\/td>"; + Возврат ЗначениеРесурса("ШаблонПоискаКолонокБетаВерсий"); КонецФункции // ШаблонПоискаКолонокБетаВерсий() @@ -120,7 +126,7 @@ // Функция ШаблонПоискаСсылокБетаВерсий() Экспорт - Возврат "(.*?)<\/a>"; + Возврат ЗначениеРесурса("ШаблонПоискаСсылокБетаВерсий"); КонецФункции // ШаблонПоискаСсылокБетаВерсий() @@ -131,7 +137,7 @@ // Функция ШаблонПоискаДатБетаВерсий() Экспорт - Возврат "(\d\d\.\d\d\.\d\d)+"; + Возврат ЗначениеРесурса("ШаблонПоискаДатБетаВерсий"); КонецФункции // ШаблонПоискаДатБетаВерсий() @@ -142,10 +148,7 @@ // Функция ШаблонПоискаВерсий() Экспорт - Возврат "\s*\s*(.*)\s*<\/a>(\s|.)*?" - + "\s*(.*)\s*<\/td>(\s|.)*?" - + "(?:\s*(?:.*)\s*<\/td>(?:\s|.)*?)?" - + "\s*(.*)\s*<\/td>"; + Возврат ЗначениеРесурса("ШаблонПоискаВерсий"); КонецФункции // ШаблонПоискаВерсий() @@ -156,7 +159,7 @@ // Функция ШаблонПоискаАдресаСтраницыЗагрузки() Экспорт - Возврат "
\s*\s*(.*)\s*<\/a>(\s|.)*?<\/div>"; + Возврат ЗначениеРесурса("ШаблонПоискаАдресаСтраницыЗагрузки"); КонецФункции // ШаблонПоискаАдресаСтраницыЗагрузки() @@ -167,8 +170,7 @@ // Функция ШаблонПоискаСсылкиДляЗагрузки() Экспорт - Возврат "
(\s|.)*?\s*" - + "Скачать дистрибутив\s*<\/a>(\s|.)*?<\/div>"; + Возврат ЗначениеРесурса("ШаблонПоискаСсылкиДляЗагрузки"); КонецФункции // ШаблонПоискаСсылкиДляЗагрузки() @@ -179,21 +181,13 @@ // Функция ШаблонПоискаПутиКФайлуВАдресе() Экспорт - Возврат "\?.*path=(.+)(?:\z|&)"; + Возврат ЗначениеРесурса("ШаблонПоискаПутиКФайлуВАдресе"); КонецФункции // ШаблонПоискаПутиКФайлуВАдресе() -Процедура Инициализация(Знач Параметры = Неопределено) - - ОбщиеПараметры = Новый Структура(); - - Если ТипЗнч(Параметры) = Тип("Структура") Тогда - Для Каждого ТекПараметр Из Параметры Цикл - ОбщиеПараметры.Добавить(ТекПараметр.Ключ, ТекПараметр.Значение); - КонецЦикла; - КонецЕсли; +#КонецОбласти // ПрограммныйИнтерфейс -КонецПроцедуры // Инициализация() +#Область СлужебныйПрограммныйИнтерфейс // Функция - проверяет, что скрипт выполняется в среде Windows // @@ -260,7 +254,7 @@ // Процедура - включает режим отладки // // Параметры: -// Булево - Истина - включить режим отладки +// РежимОтладки - Булево - Истина - включить режим отладки // Процедура УстановитьРежимОтладки(Знач РежимОтладки) Экспорт @@ -327,10 +321,53 @@ // Функция Версия() Экспорт - Возврат "1.8.0"; + Возврат "1.9.0"; КонецФункции // Версия() -#КонецОбласти // ПрограммныйИнтерфейс +#КонецОбласти // СлужебныйПрограммныйИнтерфейс + +#Область СлужебныеПроцедурыИФункции + +// Функция - возвращает значение указанного ресурса приложения +// +// Параметры: +// ИмяРесурса - Строка - имя ресурса для получения значения +// +// Возвращаемое значение: +// Строка - значение ресурса приложения +// +Функция ЗначениеРесурса(ИмяРесурса) + + Если НЕ ТипЗнч(ЗначенияРесурсов) = Тип("Структура") Тогда + ПутьКМакету = ПолучитьМакет("/Макеты/РесурсыПриложения"); + + Чтение = Новый ЧтениеJSON(); + Чтение.ОткрытьФайл(ПутьКМакету, КодировкаТекста.UTF8); + + ЗначенияРесурсов = ПрочитатьJSON(Чтение, Ложь); + КонецЕсли; + + Если НЕ ЗначенияРесурсов.Свойство(ИмяРесурса) Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат ЗначенияРесурсов[ИмяРесурса]; + +КонецФункции // ЗначениеРесурса() + +Процедура Инициализация(Знач Параметры = Неопределено) + + ОбщиеПараметры = Новый Структура(); + + Если ТипЗнч(Параметры) = Тип("Структура") Тогда + Для Каждого ТекПараметр Из Параметры Цикл + ОбщиеПараметры.Добавить(ТекПараметр.Ключ, ТекПараметр.Значение); + КонецЦикла; + КонецЕсли; + +КонецПроцедуры // Инициализация() + +#КонецОбласти // СлужебныеПроцедурыИФункции Инициализация();