From b64f3c8dda821127008a68a50b06c2eb878b1611 Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Fri, 24 Sep 2021 12:25:57 +0300 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D0=BD=D0=B5=D0=B5=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=20=D0=BF=D0=BE=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D0=B0=D0=BC=20description.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\270\320\267\320\276\320\2621\320\241.os" | 74 +++++++++++++++++-- 1 file changed, 69 insertions(+), 5 deletions(-) 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 be80770..607a845 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" @@ -14,6 +14,8 @@ Перем Данные; // Массив(Структура) - список конфигураций для обработки +Перем ЗагруженныеВерсии; // Соответствие - список найденных версий в каталоге загрузки + Перем ИмяПользователя; // Строка - имя пользователя сайта релизов 1С Перем ПарольПользователя; // Строка - пароль пользователя сайта релизов 1С @@ -21,11 +23,16 @@ Перем ФильтрВерсий; // Массив(Строка) - фильтр номеров версий Перем ФильтрВерсийНачинаяСДаты; // Дата - фильтр по начальной дате версии (включая) Перем ФильтрВерсийДоДаты; // Дата - фильтр по последней дате версии (включая) -Перем ФильтрДистрибутива; // Строка - фильтр заголовков ссылок на скачивание дистрибутива +Перем ФильтрДистрибутива; // Строка - фильтр заголовков ссылок на скачивание дистрибутива // если не указан, то будет выполнена проверка наличия ссылки // "Полный дистрибутив", затем "Дистрибутив обновления" Перем КаталогДляСохранения; // Строка - каталог для загрузки релизов 1С +Перем ЗагружатьСуществующие; // Булево - Истина - будут загружены все найденные релизы + // независимо от существующих в каталоге для загрузки + // Ложь - будут загружены только отсутствующие + // в каталоге для загрузки релизы + // (проверяются файлы description.json) Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный шаблон // конфигурации (содержит файл 1cv8.efd), // то он будет распакован @@ -126,13 +133,24 @@ |если не указан, то будет выполнена проверка наличия ссылки |""Полный дистрибутив"", затем ""Дистрибутив обновления"""); - ДобавитьОписаниеПараметра(Параметры, + ДобавитьОписаниеПараметра(Параметры, "КаталогДляСохранения", "Строка", Истина, "", "каталог для загрузки релизов 1С"); + ДобавитьОписаниеПараметра(Параметры, + "ЗагружатьСуществующие", + "Булево", + Ложь, + Ложь, + "Истина - будут загружены все найденные релизы + |независимо от существующих в каталоге для загрузки + |Ложь - будут загружены только отсутствующие + |в каталоге для загрузки релизы + |(проверяются файлы description.json)"); + ДобавитьОписаниеПараметра(Параметры, "РаспаковыватьEFD", "Булево", @@ -161,8 +179,8 @@ "Булево", Ложь, "", - "Истина - после рапаковки загруженный архив будет удален"); - + "Истина - после рапаковки загруженный архив будет удален"); + ДобавитьОписаниеПараметра(Параметры, "ПолучатьБетаВерсии", "Булево", @@ -246,6 +264,7 @@ УстановитьПараметрОбработкиДанныхИзСтруктуры("ПолучатьБетаВерсии" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрДистрибутива" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляСохранения" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ЗагружатьСуществующие" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляРаспаковкиEFD" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("ФайлыДляРаспаковкиEFD" , ПараметрыОбработки); @@ -363,6 +382,8 @@ Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя); КонецЕсли; + ЗаполнитьСписокЗагруженныхВерсий(); + Для Каждого ТекЭлемент Из Данные Цикл ЗаполнитьВерсии = Истина; @@ -374,7 +395,7 @@ ВерсииПриложения = Обозреватель.ПолучитьВерсииПриложения(ТекЭлемент.Путь, ФильтрВерсий, ФильтрВерсийНачинаяСДаты, - ФильтрВерсийДоДаты); + ФильтрВерсийДоДаты); Если ПолучатьБетаВерсии Тогда Для Каждого ТекБетаВерсия Из ТекЭлемент.БетаВерсии Цикл @@ -386,6 +407,15 @@ Для Каждого ТекВерсия Из ВерсииПриложения Цикл + Если НЕ ЗагружатьВерсию(ТекВерсия.Версия) Тогда + Лог.Информация("Версия ""%1"" от ""%2"" конфигурации ""%3"" уже существует в каталоге ""%4""", + ТекВерсия.Версия, + ТекВерсия.Дата, + ТекВерсия.Имя, + КаталогДляСохранения); + Продолжить; + КонецЕсли; + Если ЗаполнитьВерсии Тогда ТекВерсия.Вставить("Имя" , ТекЭлемент.Имя); ТекВерсия.Вставить("Идентификатор" , ТекЭлемент.Идентификатор); @@ -480,6 +510,13 @@ .ТСтрока() .ВОкружении("YARD_RELEASES_DOWNLOAD_PATH"); + Команда.Опция("de download-existing", Ложь, "Истина - будут загружены все найденные релизы + |независимо от существующих в каталоге для загрузки + |Ложь - будут загружены только отсутствующие + |в каталоге для загрузки релизы + |(проверяются файлы description.json)") + .Флаг(); + Команда.Опция("e extract", Ложь, "флаг распаковки загруженного архива") .Флаг(); @@ -530,6 +567,7 @@ УстановитьПараметрОбработкиДанных("ФильтрДистрибутива" , ВремФильтрДистрибутива); УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path")); + УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-path")); УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD", Команда.ЗначениеОпции("delete")); @@ -802,6 +840,32 @@ КонецПроцедуры // ЗаписатьОписаниеВерсииВФайл() +Процедура ЗаполнитьСписокЗагруженныхВерсий() + + ФайлыОписанийВерсий = НайтиФайлы(КаталогДляСохранения, "description.json", Истина); + + ЗагруженныеВерсии = Новый Соответствие(); + + Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл + + ОписаниеВерсии = Служебный.ОписаниеРелиза(ТекФайл.ПолноеИмя); + + ЗагруженныеВерсии.Вставить(ОписаниеВерсии.Версия, Истина); + + КонецЦикла; + +КонецПроцедуры // ЗаполнитьСписокЗагруженныхВерсий() + +Функция ЗагружатьВерсию(Версия) + + Если ЗагружатьСуществующие Тогда + Возврат Истина; + КонецЕсли; + + Возврат НЕ ЗагруженныеВерсии.Получить(Версия) = Истина; + +КонецФункции // ЗагружатьВерсию() + #КонецОбласти // СлужебныеПроцедурыИФункции #Область ОбработчикиСобытий From 05d7dde71ccfc25cc1dba03f934a30c083cd0942 Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Fri, 24 Sep 2021 12:28:05 +0300 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=20?= =?UTF-8?q?=D0=B4=D0=B0=D1=82=D1=8B=20=D0=B2=20=D1=81=D0=BE=D0=BE=D0=B1?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 607a845..8074b7a 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" @@ -410,7 +410,7 @@ Если НЕ ЗагружатьВерсию(ТекВерсия.Версия) Тогда Лог.Информация("Версия ""%1"" от ""%2"" конфигурации ""%3"" уже существует в каталоге ""%4""", ТекВерсия.Версия, - ТекВерсия.Дата, + Формат(ТекВерсия.Дата, "ДФ=dd.MM.yyyy; ДП=-"), ТекВерсия.Имя, КаталогДляСохранения); Продолжить; From 9f3f9774ed51ed348f470f7bbb09b15a2d6fdceb Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Fri, 24 Sep 2021 12:56:04 +0300 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC?= =?UTF-8?q?=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=B0=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=B6=D0=B0=D0=B5=D0=BC=D1=8B=D1=85=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B9=20=D0=B7=D0=B0=201=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\270\320\267\320\276\320\2621\320\241.os" | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) 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 8074b7a..328487e 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" @@ -33,6 +33,7 @@ // Ложь - будут загружены только отсутствующие // в каталоге для загрузки релизы // (проверяются файлы description.json) +Перем ОграничениеКоличества; // Число - ограничение количества загружаемых за 1 раз версий Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный шаблон // конфигурации (содержит файл 1cv8.efd), // то он будет распакован @@ -151,6 +152,13 @@ |в каталоге для загрузки релизы |(проверяются файлы description.json)"); + ДобавитьОписаниеПараметра(Параметры, + "ОграничениеКоличества", + "Число", + Ложь, + 0, + "ограничение количества загружаемых за 1 раз версий"); + ДобавитьОписаниеПараметра(Параметры, "РаспаковыватьEFD", "Булево", @@ -265,6 +273,7 @@ УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрДистрибутива" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляСохранения" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("ЗагружатьСуществующие" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ОграничениеКоличества" , ПараметрыОбработки, 0); УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляРаспаковкиEFD" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("ФайлыДляРаспаковкиEFD" , ПараметрыОбработки); @@ -384,6 +393,8 @@ ЗаполнитьСписокЗагруженныхВерсий(); + ОбработаноВерсий = 0; + Для Каждого ТекЭлемент Из Данные Цикл ЗаполнитьВерсии = Истина; @@ -408,7 +419,8 @@ Для Каждого ТекВерсия Из ВерсииПриложения Цикл Если НЕ ЗагружатьВерсию(ТекВерсия.Версия) Тогда - Лог.Информация("Версия ""%1"" от ""%2"" конфигурации ""%3"" уже существует в каталоге ""%4""", + Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" уже существует в каталоге ""%5""", + ТипЗнч(ЭтотОбъект), ТекВерсия.Версия, Формат(ТекВерсия.Дата, "ДФ=dd.MM.yyyy; ДП=-"), ТекВерсия.Имя, @@ -425,8 +437,19 @@ Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$")); КонецЕсли; + Если ОграничениеКоличества > 0 Тогда + Лог.Информация("[%1]: Загрузка версии %2 из %3", ТипЗнч(ЭтотОбъект), ОбработаноВерсий + 1, ОграничениеКоличества); + КонецЕсли; + ОбработатьВерсиюПриложения(ТекВерсия, Обозреватель); + ОбработаноВерсий = ОбработаноВерсий + 1; + + Если ОграничениеКоличества > 0 И ОбработаноВерсий >= ОграничениеКоличества Тогда + Лог.Информация("[%1]: Достигнут лимит загружаемых версий %2", ТипЗнч(ЭтотОбъект), ОграничениеКоличества); + Прервать; + КонецЕсли; + КонецЦикла; Если ЗаполнитьВерсии Тогда @@ -434,6 +457,11 @@ КонецЕсли; ПродолжениеОбработкиДанныхВызовМенеджера(ТекЭлемент); + + Если ОграничениеКоличества > 0 И ОбработаноВерсий >= ОграничениеКоличества Тогда + Прервать; + КонецЕсли; + КонецЦикла; ЗавершениеОбработкиДанныхВызовМенеджера(); @@ -517,6 +545,10 @@ |(проверяются файлы description.json)") .Флаг(); + Команда.Опция("dl download-limit", 0, "ограничение количества загружаемых за 1 раз версий") + .ТЧисло() + .ВОкружении("YARD_RELEASES_DOWNLOAD_LIMIT"); + Команда.Опция("e extract", Ложь, "флаг распаковки загруженного архива") .Флаг(); @@ -568,6 +600,7 @@ УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path")); УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); + УстановитьПараметрОбработкиДанных("ОграничениеКоличества" , Команда.ЗначениеОпции("download-limit")); УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-path")); УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD", Команда.ЗначениеОпции("delete")); From eeff7d2bd361806b6de685c020302f13fd83e0b3 Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Fri, 24 Sep 2021 12:59:29 +0300 Subject: [PATCH 4/7] =?UTF-8?q?docs:=20=D0=94=D0=BE=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=BE=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 01d2e1d..1926aca 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,8 @@ yard process --work-dir "c:\tmp" ".\examples\releases2templates.json" - **list** (l) - получение списка приложений и версий с портала 1С - _--app-filter_ - фильтр приложений по имени (регулярное выражение) - _--version-filter_ - фильтр версий по номеру (регулярное выражение) - - _--version-start-date_ - фильтр по начальной дате версии (включая) - - _--version-end-date_ - фильтр по последней дате версии (включая) + - _--version-start-date_ - фильтр по начальной дате версии (формат: dd.MM.yyyy, включая дату) + - _--version-end-date_ - фильтр по последней дате версии (формат: dd.MM.yyyy, включая дату) - _--output-file_ - путь к фалу (json) для сохранения списка приложений и версий #### Пример: @@ -76,9 +76,11 @@ yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека - **get** (g) - загрузка указанных версий, указанных приложений с портала 1С - _--app-filter_ - фильтр приложений по имени (регулярное выражение) - _--version-filter_ - фильтр версий по номеру (регулярное выражение) - - _--version-start-date_ - фильтр по начальной дате версии (включая) - - _--version-end-date_ - фильтр по последней дате версии (включая) + - _--version-start-date_ - фильтр по начальной дате версии (формат: dd.MM.yyyy, включая дату) + - _--version-end-date_ - фильтр по последней дате версии (формат: dd.MM.yyyy, включая дату) - _--path_ - каталог для загрузки релизов 1С + - _--download-existing_ - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы (description.json) + - _--download-limit_ - ограничение количества загружаемых версий за 1 запуск - _--extract_ - флаг распаковки загруженного архива - _--extract-path_ - каталог для распаковки загруженного архива - _--extract-files_ - список файлов для распаковки из архива дистрибутива, разделенный "|" @@ -127,7 +129,7 @@ yard build-all --path ".\tmp\tmplts\1c\AccountingCorp" --ibconnection "/SMyServe - _--git-branch_ - имя ветки git в которую будет выполняться выгрузка (по умолчанию: base1c) - _--git-author_ - имя автора коммита в git (по умолчанию: 1c) - _--git-author-email_ - почта автора коммита в git (по умолчанию: 1c@1c.ru) - - _--git-commit-date_ - дата коммита в git в формате POSIX (по умолчанию: <ТекущаяУниверсальнаяДата>) + - _--git-commit-date_ - дата коммита в git в формате POSIX (формат: yyyy-MM-dd hh:mm:ss, по умолчанию: <ТекущаяУниверсальнаяДата>) - _--git-commit-message_ - сообщение коммита в git - _--ibconnection_ - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ) From 343ad2c65bb543563444bbb040890a33375172c4 Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Wed, 29 Sep 2021 13:23:29 +0300 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20=D0=92=20=D0=B7=D0=B0=D0=B3=D1=80?= =?UTF-8?q?=D1=83=D0=B7=D1=87=D0=B8=D0=BA=D0=B5=20=D1=80=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=20--from-last-version=20(=D0=9D=D0=B0=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=D0=A1=D0=9F=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D0=B5?= =?UTF-8?q?=D0=B9=D0=92=D0=B5=D1=80=D1=81=D0=B8=D0=B8),=20=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B8=D0=B2=D0=B0=D1=8E=D1=89?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D1=83?= =?UTF-8?q?=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=D0=BC=D0=B8=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D1=88=D0=B5=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=D0=B4=D0=BD=D0=B5=D0=B9=20=D0=BD=D0=B0=D0=B9=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=B2=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B8=20(=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=D1=85=20descr?= =?UTF-8?q?iption.json);=20fix:=20=D0=9F=D0=BE=D0=B8=D1=81=D0=BA=20=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B5=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B9=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D1=81?= =?UTF-8?q?=20=D1=83=D1=87=D0=B5=D1=82=D0=BE=D0=BC=20=D0=B8=D0=B4=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B6=D0=B0=D0=B5=D0=BC?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- ...0\270\320\267\320\276\320\2621\320\241.os" | 97 +++++++++++++++---- 2 files changed, 80 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 1926aca..184f7b4 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,8 @@ yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека - _--version-start-date_ - фильтр по начальной дате версии (формат: dd.MM.yyyy, включая дату) - _--version-end-date_ - фильтр по последней дате версии (формат: dd.MM.yyyy, включая дату) - _--path_ - каталог для загрузки релизов 1С - - _--download-existing_ - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы (description.json) + - _--from-last-version_ - флаг загрузки версий с номером старше последней версии в каталоге для загрузки (проверяются файлы description.json) + - _--download-existing_ - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы description.json) - _--download-limit_ - ограничение количества загружаемых версий за 1 запуск - _--extract_ - флаг распаковки загруженного архива - _--extract-path_ - каталог для распаковки загруженного архива 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 328487e..dede6e1 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" @@ -28,6 +28,10 @@ // "Полный дистрибутив", затем "Дистрибутив обновления" Перем КаталогДляСохранения; // Строка - каталог для загрузки релизов 1С +Перем НачатьСПоследнейВерсии; // Булево - Истина - будут загружены релизы с версией + // старше последней найденной в каталоге для загрузки + // (проверяются файлы description.json) + // Ложь - будут загружены все релизы с учетом других настроек Перем ЗагружатьСуществующие; // Булево - Истина - будут загружены все найденные релизы // независимо от существующих в каталоге для загрузки // Ложь - будут загружены только отсутствующие @@ -141,6 +145,16 @@ "", "каталог для загрузки релизов 1С"); + ДобавитьОписаниеПараметра(Параметры, + "НачатьСПоследнейВерсии", + "Булево", + Ложь, + Ложь, + "Истина - будут загружены релизы с версией + |старше последней найденной в каталоге для загрузки + |(проверяются файлы description.json) + |Ложь - будут загружены все релизы с учетом других настроек"); + ДобавитьОписаниеПараметра(Параметры, "ЗагружатьСуществующие", "Булево", @@ -272,6 +286,7 @@ УстановитьПараметрОбработкиДанныхИзСтруктуры("ПолучатьБетаВерсии" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрДистрибутива" , ПараметрыОбработки); УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляСохранения" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("НачатьСПоследнейВерсии" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("ЗагружатьСуществующие" , ПараметрыОбработки, Ложь); УстановитьПараметрОбработкиДанныхИзСтруктуры("ОграничениеКоличества" , ПараметрыОбработки, 0); УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD" , ПараметрыОбработки, Ложь); @@ -391,8 +406,6 @@ Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя); КонецЕсли; - ЗаполнитьСписокЗагруженныхВерсий(); - ОбработаноВерсий = 0; Для Каждого ТекЭлемент Из Данные Цикл @@ -418,16 +431,6 @@ Для Каждого ТекВерсия Из ВерсииПриложения Цикл - Если НЕ ЗагружатьВерсию(ТекВерсия.Версия) Тогда - Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" уже существует в каталоге ""%5""", - ТипЗнч(ЭтотОбъект), - ТекВерсия.Версия, - Формат(ТекВерсия.Дата, "ДФ=dd.MM.yyyy; ДП=-"), - ТекВерсия.Имя, - КаталогДляСохранения); - Продолжить; - КонецЕсли; - Если ЗаполнитьВерсии Тогда ТекВерсия.Вставить("Имя" , ТекЭлемент.Имя); ТекВерсия.Вставить("Идентификатор" , ТекЭлемент.Идентификатор); @@ -437,6 +440,10 @@ Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$")); КонецЕсли; + Если НЕ ЗагружатьВерсию(ТекВерсия) Тогда + Продолжить; + КонецЕсли; + Если ОграничениеКоличества > 0 Тогда Лог.Информация("[%1]: Загрузка версии %2 из %3", ТипЗнч(ЭтотОбъект), ОбработаноВерсий + 1, ОграничениеКоличества); КонецЕсли; @@ -538,6 +545,12 @@ .ТСтрока() .ВОкружении("YARD_RELEASES_DOWNLOAD_PATH"); + Команда.Опция("flv from-last-version", Ложь, "Истина - будут загружены релизы с версией + |старше последней найденной в каталоге для загрузки + |(проверяются файлы description.json) + |Ложь - будут загружены все релизы с учетом других настроек") + .Флаг(); + Команда.Опция("de download-existing", Ложь, "Истина - будут загружены все найденные релизы |независимо от существующих в каталоге для загрузки |Ложь - будут загружены только отсутствующие @@ -599,6 +612,7 @@ УстановитьПараметрОбработкиДанных("ФильтрДистрибутива" , ВремФильтрДистрибутива); УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path")); + УстановитьПараметрОбработкиДанных("НачатьСПоследнейВерсии" , Команда.ЗначениеОпции("from-last-version")); УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); УстановитьПараметрОбработкиДанных("ОграничениеКоличества" , Команда.ЗначениеОпции("download-limit")); УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); @@ -873,29 +887,74 @@ КонецПроцедуры // ЗаписатьОписаниеВерсииВФайл() -Процедура ЗаполнитьСписокЗагруженныхВерсий() +Процедура ЗаполнитьСписокЗагруженныхВерсий(ИдентификаторПриложения) - ФайлыОписанийВерсий = НайтиФайлы(КаталогДляСохранения, "description.json", Истина); + Если НЕ ТипЗнч(ЗагруженныеВерсии) = Тип("Соответствие") Тогда + ЗагруженныеВерсии = Новый Соответствие(); + КонецЕсли; - ЗагруженныеВерсии = Новый Соответствие(); + ФайлыОписанийВерсий = НайтиФайлы(ОбъединитьПути(КаталогДляСохранения, ИдентификаторПриложения), + "description.json", + Истина); Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл + Если НЕ ТипЗнч(ЗагруженныеВерсии.Получить(ИдентификаторПриложения)) = Тип("Массив") Тогда + ЗагруженныеВерсии.Вставить(ИдентификаторПриложения, Новый Массив()); + КонецЕсли; + ОписаниеВерсии = Служебный.ОписаниеРелиза(ТекФайл.ПолноеИмя); - ЗагруженныеВерсии.Вставить(ОписаниеВерсии.Версия, Истина); + ЗагруженныеВерсии[ИдентификаторПриложения].Добавить(ОписаниеВерсии.Версия); КонецЦикла; + Служебный.СортироватьВерсии(ЗагруженныеВерсии[ИдентификаторПриложения]); + КонецПроцедуры // ЗаполнитьСписокЗагруженныхВерсий() -Функция ЗагружатьВерсию(Версия) +Функция ЗагружатьВерсию(ОписаниеВерсии) - Если ЗагружатьСуществующие Тогда + Если ЗагружатьСуществующие И НЕ НачатьСПоследнейВерсии Тогда Возврат Истина; КонецЕсли; - Возврат НЕ ЗагруженныеВерсии.Получить(Версия) = Истина; + Если ЗагруженныеВерсии = Неопределено Тогда + ЗаполнитьСписокЗагруженныхВерсий(ОписаниеВерсии.Идентификатор); + КонецЕсли; + + ЗагруженныеВерсииПриложения = ЗагруженныеВерсии.Получить(ОписаниеВерсии.Идентификатор); + Если ЗагруженныеВерсииПриложения = Неопределено Тогда + ЗаполнитьСписокЗагруженныхВерсий(ОписаниеВерсии.Идентификатор); + КонецЕсли; + + Если НачатьСПоследнейВерсии Тогда + ПоследняяВерсия = ЗагруженныеВерсииПриложения[ЗагруженныеВерсииПриложения.ВГраница()]; + Если Служебный.СравнитьВерсии(ОписаниеВерсии.Версия, ПоследняяВерсия) > 0 Тогда + Возврат Истина; + Иначе + Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" меньше или равна последней существующей версии ""%5"" в каталоге ""%6""", + ТипЗнч(ЭтотОбъект), + ОписаниеВерсии.Версия, + Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), + ОписаниеВерсии.Имя, + ПоследняяВерсия, + ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); + Возврат Ложь; + КонецЕсли; + КонецЕсли; + + Если ЗагруженныеВерсииПриложения.Найти(ОписаниеВерсии.Версия) = Неопределено Тогда + Возврат Истина; + Иначе + Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" уже существует в каталоге ""%5""", + ТипЗнч(ЭтотОбъект), + ОписаниеВерсии.Версия, + Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), + ОписаниеВерсии.Имя, + ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); + Возврат Ложь; + КонецЕсли; КонецФункции // ЗагружатьВерсию() From 48ffae99f8a6c5de2335c3e209b96a26086d730c Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Wed, 29 Sep 2021 15:52:06 +0300 Subject: [PATCH 6/7] =?UTF-8?q?fix:=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9,=20=D0=B5=D1=81=D0=BB?= =?UTF-8?q?=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B1=D1=8B=D0=BB=D0=BE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\273\320\270\320\267\320\276\320\2621\320\241.os" | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 dede6e1..c9fbad4 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" @@ -897,11 +897,11 @@ "description.json", Истина); - Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл + Если НЕ ТипЗнч(ЗагруженныеВерсии.Получить(ИдентификаторПриложения)) = Тип("Массив") Тогда + ЗагруженныеВерсии.Вставить(ИдентификаторПриложения, Новый Массив()); + КонецЕсли; - Если НЕ ТипЗнч(ЗагруженныеВерсии.Получить(ИдентификаторПриложения)) = Тип("Массив") Тогда - ЗагруженныеВерсии.Вставить(ИдентификаторПриложения, Новый Массив()); - КонецЕсли; + Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл ОписаниеВерсии = Служебный.ОписаниеРелиза(ТекФайл.ПолноеИмя); @@ -928,7 +928,7 @@ ЗаполнитьСписокЗагруженныхВерсий(ОписаниеВерсии.Идентификатор); КонецЕсли; - Если НачатьСПоследнейВерсии Тогда + Если НачатьСПоследнейВерсии И ЗначениеЗаполнено(ЗагруженныеВерсииПриложения) Тогда ПоследняяВерсия = ЗагруженныеВерсииПриложения[ЗагруженныеВерсииПриложения.ВГраница()]; Если Служебный.СравнитьВерсии(ОписаниеВерсии.Версия, ПоследняяВерсия) > 0 Тогда Возврат Истина; @@ -942,6 +942,8 @@ ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); Возврат Ложь; КонецЕсли; + Иначе + Возврат Истина; КонецЕсли; Если ЗагруженныеВерсииПриложения.Найти(ОписаниеВерсии.Версия) = Неопределено Тогда From 9e95e2dc1d2b974d2ef5102340c2dd2ae9fad8e2 Mon Sep 17 00:00:00 2001 From: Artem Kuznetsov Date: Wed, 13 Oct 2021 12:28:05 +0300 Subject: [PATCH 7/7] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packagedef | 2 +- ...\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packagedef b/packagedef index bd26275..a16c1c7 100644 --- a/packagedef +++ b/packagedef @@ -1,5 +1,5 @@ Описание.Имя("yard") - .Версия("1.3.0") + .Версия("1.4.0") .ВерсияСреды("1.4") .ЗависитОт("logos") .ЗависитОт("asserts") 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 e6b871c..a2df6af 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" @@ -162,7 +162,7 @@ // Функция Версия() Экспорт - Возврат "1.2.0"; + Возврат "1.4.0"; КонецФункции // Версия()