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 33334e4..858bcf9 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" @@ -7,66 +7,66 @@ // Codebase: https://github.com/ArKuznetsov/yard/ // ---------------------------------------------------------- -Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик -Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером -Перем ПараметрыОбработки; // Структура - параметры обработки -Перем Лог; // Объект - объект записи лога приложения +Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик +Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером +Перем ПараметрыОбработки; // Структура - параметры обработки +Перем Лог; // Объект - объект записи лога приложения -Перем Данные; // Массив(Структура) - список конфигураций для обработки +Перем Данные; // Массив(Структура) - список конфигураций для обработки -Перем ЗагруженныеВерсии; // Соответствие - список найденных версий в каталоге загрузки +Перем ЗагруженныеВерсии; // Соответствие - список найденных версий в каталоге загрузки -Перем ИмяПользователя; // Строка - имя пользователя сайта релизов 1С -Перем ПарольПользователя; // Строка - пароль пользователя сайта релизов 1С -Перем ВремяОжиданияОтвета; // Число - время ожидания ответа от внешнего ресурса (HTTP) в секундах +Перем ИмяПользователя; // Строка - имя пользователя сайта релизов 1С +Перем ПарольПользователя; // Строка - пароль пользователя сайта релизов 1С +Перем ВремяОжиданияОтвета; // Число - время ожидания ответа от внешнего ресурса (HTTP) в секундах -Перем ИмяПриложения; // Строка - имя приложения для записи в файл описания +Перем ИмяПриложения; // Строка - имя приложения для записи в файл описания -Перем ФильтрПриложений; // Массив(Строка) - фильтр имен приложений -Перем ФильтрВерсий; // Массив(Строка) - фильтр номеров версий +Перем ФильтрПриложений; // Массив(Строка) - фильтр имен приложений +Перем ФильтрВерсий; // Массив(Строка) - фильтр номеров версий Перем ФильтрВерсийНачинаяСДаты; // Дата - фильтр по начальной дате версии (включая) -Перем ФильтрВерсийДоДаты; // Дата - фильтр по последней дате версии (включая) -Перем ФильтрДистрибутива; // Строка - фильтр заголовков ссылок на скачивание дистрибутива -// если не указан, то будет выполнена проверка наличия ссылки -// "Полный дистрибутив", затем "Дистрибутив обновления" -Перем ПолучатьБетаВерсии; // Булево - Истина - будут получены ознакомительные версии - -Перем КаталогДляСохранения; // Строка - каталог для загрузки релизов 1С -Перем НачатьСПоследнейВерсии; // Булево - Истина - будут загружены релизы с версией -// старше последней найденной в каталоге для загрузки -// (проверяются файлы description.json) -// Ложь - будут загружены все релизы с учетом других настроек -Перем ОписаниеПоследнейВерсии; // Строка - путь к файлу description.json -// с описанием последней загруженной версии -// Ложь - будут загружены все релизы с учетом других настроек -Перем ЗагружатьСуществующие; // Булево - Истина - будут загружены все найденные релизы -// независимо от существующих в каталоге для загрузки -// Ложь - будут загружены только отсутствующие -// в каталоге для загрузки релизы -// (проверяются файлы description.json) -Перем ОграничениеКоличества; // Число - ограничение количества загружаемых за 1 раз версий -Перем ТолькоСкачать; // Булево - только скачать дистрибутив с сайта -Перем СкачиватьНовоеВВерсии; // Булево - скачивать "Новое в версии" с сайта - -Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный -// шаблон конфигурации (содержит файл 1cv8.efd), -// то он будет распакован -Перем КаталогДляРаспаковкиEFD; // Строка - каталог для распаковки шаблона конфигурации -Перем КаталогВАрхивеДляРаспаковкиEFD; // Строка - регулярное выражение, отбора каталогов -// в архиве EFD для распаковки -Перем ФайлыДляРаспаковкиEFD; // Массив(Строка) - список файлов для распаковки из архива EFD дистрибутива -// конфигурации, если не указан, то распаковываются все файлы -Перем РаспаковыватьСуществующие; // Булево - Истина - будут распакованы все найденные дистрибутивы -// независимо от существующих в каталоге для распаковки -// Ложь - будут оаспакованы только отсутствующие -// в каталоге для распаковки дистрибутивы -// (проверяются файлы description.json) -Перем УдалитьПослеРаспаковкиEFD; // Булево - Истина - после рапаковки загруженный архив будет удален +Перем ФильтрВерсийДоДаты; // Дата - фильтр по последней дате версии (включая) +Перем ФильтрДистрибутива; // Строка - фильтр заголовков ссылок на скачивание дистрибутива + // если не указан, то будет выполнена проверка наличия ссылки + // "Полный дистрибутив", затем "Дистрибутив обновления" +Перем ПолучатьБетаВерсии; // Булево - Истина - будут получены ознакомительные версии + +Перем КаталогДляСохранения; // Строка - каталог для загрузки релизов 1С +Перем НачатьСПоследнейВерсии; // Булево - Истина - будут загружены релизы с версией + // старше последней найденной в каталоге для загрузки + // (проверяются файлы description.json) + // Ложь - будут загружены все релизы с учетом других настроек +Перем ОписаниеПоследнейВерсии; // Строка - путь к файлу description.json + // с описанием последней загруженной версии + // Ложь - будут загружены все релизы с учетом других настроек +Перем ЗагружатьСуществующие; // Булево - Истина - будут загружены все найденные релизы + // независимо от существующих в каталоге для загрузки + // Ложь - будут загружены только отсутствующие + // в каталоге для загрузки релизы + // (проверяются файлы description.json) +Перем ОграничениеКоличества; // Число - ограничение количества загружаемых за 1 раз версий +Перем ТолькоСкачать; // Булево - только скачать дистрибутив с сайта +Перем СкачиватьНовоеВВерсии; // Булево - скачивать "Новое в версии" с сайта + +Перем РаспаковыватьEFD; // Булево - Истина - если загруженный архив содержит упакованный + // шаблон конфигурации (содержит файл 1cv8.efd), + // то он будет распакован +Перем КаталогДляРаспаковкиEFD; // Строка - каталог для распаковки шаблона конфигурации +Перем КаталогВАрхивеДляРаспаковкиEFD; // Строка - регулярное выражение, отбора каталогов + // в архиве EFD для распаковки +Перем ФайлыДляРаспаковкиEFD; // Массив(Строка) - список файлов для распаковки из архива EFD дистрибутива + // конфигурации, если не указан, то распаковываются все файлы +Перем РаспаковыватьСуществующие; // Булево - Истина - будут распакованы все найденные дистрибутивы + // независимо от существующих в каталоге для распаковки + // Ложь - будут оаспакованы только отсутствующие + // в каталоге для распаковки дистрибутивы + // (проверяются файлы description.json) +Перем УдалитьПослеРаспаковкиEFD; // Булево - Истина - после рапаковки загруженный архив будет удален #Область ПрограммныйИнтерфейс // Функция - признак возможности обработки, принимать входящие данные -// +// // Возвращаемое значение: // Булево - Истина - обработка может принимать входящие данные для обработки; // Ложь - обработка не принимает входящие данные; @@ -78,7 +78,7 @@ КонецФункции // ПринимаетДанные() // Функция - признак возможности обработки, возвращать обработанные данные -// +// // Возвращаемое значение: // Булево - Истина - обработка может возвращать обработанные данные; // Ложь - обработка не возвращает данные; @@ -90,7 +90,7 @@ КонецФункции // ВозвращаетДанные() // Функция - возвращает список параметров обработки -// +// // Возвращаемое значение: // Структура - структура входящих параметров обработки // *Тип - Строка - тип параметра @@ -99,194 +99,194 @@ // *Описание - Строка - описание параметра // Функция ОписаниеПараметров() Экспорт - + Параметры = Новый Структура(); - + ДобавитьОписаниеПараметра(Параметры, - "ИмяПользователя", - "Строка", - Истина, - "", - "Имя пользователя сайта релизов 1С"); - + "ИмяПользователя", + "Строка", + Истина, + "", + "Имя пользователя сайта релизов 1С"); + ДобавитьОписаниеПараметра(Параметры, - "ПарольПользователя", - "Строка", - Истина, - "", - "Пароль пользователя сайта релизов 1С"); - + "ПарольПользователя", + "Строка", + Истина, + "", + "Пароль пользователя сайта релизов 1С"); + ДобавитьОписаниеПараметра(Параметры, - "ВремяОжиданияОтвета", - "Число", - Ложь, - 20, - "Время ожидания ответа от внешнего ресурса"); - + "ВремяОжиданияОтвета", + "Число", + Ложь, + 20, + "Время ожидания ответа от внешнего ресурса"); + ДобавитьОписаниеПараметра(Параметры, - "ИмяПриложения", - "Строка", - Ложь, - "", - "Имя приложения для записи в файл описания"); - + "ИмяПриложения", + "Строка", + Ложь, + "", + "Имя приложения для записи в файл описания"); + ДобавитьОписаниеПараметра(Параметры, - "ФильтрПриложений", - "Массив", - Ложь, - "", - "Фильтр имен приложений"); - + "ФильтрПриложений", + "Массив", + Ложь, + "", + "Фильтр имен приложений"); + ДобавитьОписаниеПараметра(Параметры, - "ФильтрВерсий", - "Массив", - Ложь, - "", - "Фильтр номеров версий"); - + "ФильтрВерсий", + "Массив", + Ложь, + "", + "Фильтр номеров версий"); + ДобавитьОписаниеПараметра(Параметры, - "ФильтрВерсийНачинаяСДаты", - "Дата", - Ложь, - "", - "Фильтр по начальной дате версии (включая)"); - + "ФильтрВерсийНачинаяСДаты", + "Дата", + Ложь, + "", + "Фильтр по начальной дате версии (включая)"); + ДобавитьОписаниеПараметра(Параметры, - "ФильтрВерсийДоДаты", - "Дата", - Ложь, - "", - "Фильтр по последней дате версии (включая)"); - + "ФильтрВерсийДоДаты", + "Дата", + Ложь, + "", + "Фильтр по последней дате версии (включая)"); + ДобавитьОписаниеПараметра(Параметры, - "ФильтрДистрибутива", - "Строка", - Ложь, - "", - "Фильтр заголовков ссылок на скачивание дистрибутива - |если не указан, то будет выполнена проверка наличия ссылки - |""Полный дистрибутив"", затем ""Дистрибутив обновления"""); - + "ФильтрДистрибутива", + "Строка", + Ложь, + "", + "Фильтр заголовков ссылок на скачивание дистрибутива + |если не указан, то будет выполнена проверка наличия ссылки + |""Полный дистрибутив"", затем ""Дистрибутив обновления"""); + ДобавитьОписаниеПараметра(Параметры, - "КаталогДляСохранения", - "Строка", - Истина, - "", - "каталог для загрузки релизов 1С"); - + "КаталогДляСохранения", + "Строка", + Истина, + "", + "каталог для загрузки релизов 1С"); + ДобавитьОписаниеПараметра(Параметры, - "НачатьСПоследнейВерсии", - "Булево", - Ложь, - Ложь, - "Истина - будут загружены релизы с версией - |старше последней найденной в каталоге для загрузки - |(проверяются файлы description.json) - |Ложь - будут загружены все релизы с учетом других настроек"); - + "НачатьСПоследнейВерсии", + "Булево", + Ложь, + Ложь, + "Истина - будут загружены релизы с версией + |старше последней найденной в каталоге для загрузки + |(проверяются файлы description.json) + |Ложь - будут загружены все релизы с учетом других настроек"); + ДобавитьОписаниеПараметра(Параметры, - "ОписаниеПоследнейВерсии", - "Строка", - Ложь, - "", - "путь к файлу description.json - |с описанием последней загруженной версии"); - + "ОписаниеПоследнейВерсии", + "Строка", + Ложь, + "", + "путь к файлу description.json + |с описанием последней загруженной версии"); + ДобавитьОписаниеПараметра(Параметры, - "ЗагружатьСуществующие", - "Булево", - Ложь, - Ложь, - "Истина - будут загружены все найденные релизы - |независимо от существующих в каталоге для загрузки - |Ложь - будут загружены только отсутствующие - |в каталоге для загрузки релизы - |(проверяются файлы description.json)"); - + "ЗагружатьСуществующие", + "Булево", + Ложь, + Ложь, + "Истина - будут загружены все найденные релизы + |независимо от существующих в каталоге для загрузки + |Ложь - будут загружены только отсутствующие + |в каталоге для загрузки релизы + |(проверяются файлы description.json)"); + ДобавитьОписаниеПараметра(Параметры, - "ОграничениеКоличества", - "Число", - Ложь, - 0, - "ограничение количества загружаемых за 1 раз версий"); - + "ОграничениеКоличества", + "Число", + Ложь, + 0, + "ограничение количества загружаемых за 1 раз версий"); + ДобавитьОписаниеПараметра(Параметры, - "ТолькоСкачать", - "Булево", - Ложь, - Ложь, - "Истина - только скачать дистрибутив с сайта"); + "ТолькоСкачать", + "Булево", + Ложь, + Ложь, + "Истина - только скачать дистрибутив с сайта"); ДобавитьОписаниеПараметра(Параметры, - "СкачиватьНовоеВВерсии", - "Булево", - Ложь, - Ложь, - "Истина - Скачать ""Новое в версии"" с сайта"); - + "СкачиватьНовоеВВерсии", + "Булево", + Ложь, + Ложь, + "Истина - Скачать ""Новое в версии"" с сайта"); + ДобавитьОписаниеПараметра(Параметры, - "РаспаковыватьEFD", - "Булево", - Ложь, - Ложь, - "Истина - если загруженный архив содержит упакованный шаблон - |конфигурации (содержит файл 1cv8.efd), то он будет распакован"); - + "РаспаковыватьEFD", + "Булево", + Ложь, + Ложь, + "Истина - если загруженный архив содержит упакованный шаблон + |конфигурации (содержит файл 1cv8.efd), то он будет распакован"); + ДобавитьОписаниеПараметра(Параметры, - "КаталогДляРаспаковкиEFD", - "Строка", - Ложь, - "", - "каталог для распаковки шаблона конфигурации"); - + "КаталогДляРаспаковкиEFD", + "Строка", + Ложь, + "", + "каталог для распаковки шаблона конфигурации"); + ДобавитьОписаниеПараметра(Параметры, - "КаталогВАрхивеДляРаспаковкиEFD", - "Строка", - Ложь, - "", - "регулярное выражение, отбора каталогов - |в архиве EFD для распаковки"); - + "КаталогВАрхивеДляРаспаковкиEFD", + "Строка", + Ложь, + "", + "регулярное выражение, отбора каталогов + |в архиве EFD для распаковки"); + ДобавитьОписаниеПараметра(Параметры, - "ФайлыДляРаспаковкиEFD", - "Массив", - Ложь, - "", - "список файлов для распаковки из архива EFD дистрибутива конфигурации, - |если не указан, то распаковываются все файлы"); - + "ФайлыДляРаспаковкиEFD", + "Массив", + Ложь, + "", + "список файлов для распаковки из архива EFD дистрибутива конфигурации, + |если не указан, то распаковываются все файлы"); + ДобавитьОписаниеПараметра(Параметры, - "РаспаковыватьСуществующие", - "Булево", - Ложь, - Ложь, - "Истина - будут распакованы все найденные дистрибутивы - |независимо от существующих в каталоге для распаковки - |Ложь - будут оаспакованы только отсутствующие - |в каталоге для распаковки дистрибутивы - |(проверяются файлы description.json)"); - + "РаспаковыватьСуществующие", + "Булево", + Ложь, + Ложь, + "Истина - будут распакованы все найденные дистрибутивы + |независимо от существующих в каталоге для распаковки + |Ложь - будут оаспакованы только отсутствующие + |в каталоге для распаковки дистрибутивы + |(проверяются файлы description.json)"); + ДобавитьОписаниеПараметра(Параметры, - "УдалитьПослеРаспаковкиEFD", - "Булево", - Ложь, - "", - "Истина - после рапаковки загруженный архив будет удален"); - + "УдалитьПослеРаспаковкиEFD", + "Булево", + Ложь, + "", + "Истина - после рапаковки загруженный архив будет удален"); + ДобавитьОписаниеПараметра(Параметры, - "ПолучатьБетаВерсии", - "Булево", - Ложь, - Истина, - "Если установлен будут получены ознакомительные версии - |в противном случае будут получены только релизные версии"); - + "ПолучатьБетаВерсии", + "Булево", + Ложь, + Истина, + "Если установлен будут получены ознакомительные версии + |в противном случае будут получены только релизные версии"); + Возврат Параметры; - + КонецФункции // ОписаниеПараметров() // Функция - Возвращает обработку - менеджер -// +// // Возвращаемое значение: // ВнешняяОбработкаОбъект - обработка-менеджер // @@ -308,7 +308,7 @@ КонецПроцедуры // УстановитьМенеджерОбработкиДанных() // Функция - Возвращает идентификатор обработчика -// +// // Возвращаемое значение: // Строка - идентификатор обработчика // @@ -330,7 +330,7 @@ КонецПроцедуры // УстановитьИдентификатор() // Функция - Возвращает значения параметров обработки -// +// // Возвращаемое значение: // Структура - параметры обработки // @@ -349,28 +349,28 @@ ПараметрыОбработки = НовыеПараметры; - УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяПользователя", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ПарольПользователя", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ВремяОжиданияОтвета", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяПриложения", ПараметрыОбработки, ""); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийНачинаяСДаты", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийДоДаты", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ПолучатьБетаВерсии", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрДистрибутива", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляСохранения", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("НачатьСПоследнейВерсии", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ОписаниеПоследнейВерсии", ПараметрыОбработки, ""); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ЗагружатьСуществующие", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ОграничениеКоличества", ПараметрыОбработки, 0); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ТолькоСкачать", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("СкачиватьНовоеВВерсии", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляРаспаковкиEFD", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогВАрхивеДляРаспаковкиEFD", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ФайлыДляРаспаковкиEFD", ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьСуществующие", ПараметрыОбработки, Ложь); - УстановитьПараметрОбработкиДанныхИзСтруктуры("УдалитьПослеРаспаковкиEFD", ПараметрыОбработки, Ложь); - + УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяПользователя" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ПарольПользователя" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ВремяОжиданияОтвета" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяПриложения" , ПараметрыОбработки, ""); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийНачинаяСДаты" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрВерсийДоДаты" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ПолучатьБетаВерсии" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ФильтрДистрибутива" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляСохранения" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("НачатьСПоследнейВерсии" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ОписаниеПоследнейВерсии" , ПараметрыОбработки, ""); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ЗагружатьСуществующие" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ОграничениеКоличества" , ПараметрыОбработки, 0); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ТолькоСкачать" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("СкачиватьНовоеВВерсии" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьEFD" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогДляРаспаковкиEFD" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("КаталогВАрхивеДляРаспаковкиEFD" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ФайлыДляРаспаковкиEFD" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("РаспаковыватьСуществующие" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("УдалитьПослеРаспаковкиEFD" , ПараметрыОбработки, Ложь); + ФильтрПриложений = Новый Массив(); Если ПараметрыОбработки.Свойство("ФильтрПриложений") Тогда Если ТипЗнч(ПараметрыОбработки.ФильтрПриложений) = Тип("Массив") Тогда @@ -379,7 +379,7 @@ ФильтрПриложений = СтрРазделить(ПараметрыОбработки.ФильтрПриложений, "|"); КонецЕсли; КонецЕсли; - + ФильтрВерсий = Новый Массив(); Если ПараметрыОбработки.Свойство("ФильтрВерсий") Тогда Если ТипЗнч(ПараметрыОбработки.ФильтрВерсий) = Тип("Массив") Тогда @@ -388,11 +388,11 @@ ФильтрВерсий = СтрРазделить(ПараметрыОбработки.ФильтрВерсий, "|"); КонецЕсли; КонецЕсли; - + КонецПроцедуры // УстановитьПараметрыОбработкиДанных() // Функция - Возвращает значение параметра обработки данных -// +// // Параметры: // ИмяПараметра - Строка - имя получаемого параметра // @@ -426,11 +426,11 @@ КонецЕсли; ПараметрыОбработки.Вставить(ИмяПараметра, Значение); - + Если НЕ ЕстьПеременнаяМодуля(ИмяПараметра) Тогда Возврат; КонецЕсли; - + Если ВРег(ИмяПараметра) = "ФИЛЬТРПРИЛОЖЕНИЙ" Тогда Если ТипЗнч(Значение) = Тип("Массив") Тогда ФильтрПриложений = Значение; @@ -489,9 +489,9 @@ Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя); Обозреватель.УстановитьВремяОжиданияОтвета(ВремяОжиданияОтвета); КонецЕсли; - + ОбработаноВерсий = 0; - + Для Каждого ТекЭлемент Из Данные Цикл ЗаполнитьВерсии = Истина; @@ -501,73 +501,73 @@ ЗаполнитьВерсии = Ложь; Иначе НайденныеВерсии = Обозреватель.ПолучитьВерсииПриложения(ТекЭлемент.Путь, - ФильтрВерсий, - ФильтрВерсийНачинаяСДаты, - ФильтрВерсийДоДаты); - + ФильтрВерсий, + ФильтрВерсийНачинаяСДаты, + ФильтрВерсийДоДаты); + Если ПолучатьБетаВерсии Тогда Для Каждого ТекБетаВерсия Из ТекЭлемент.БетаВерсии Цикл НайденныеВерсии.Добавить(ТекБетаВерсия); КонецЦикла; КонецЕсли; - + Для Каждого ТекВерсия Из НайденныеВерсии Цикл - ТекВерсия.Вставить("Имя", ТекЭлемент.Имя); - ТекВерсия.Вставить("Идентификатор", ТекЭлемент.Идентификатор); + ТекВерсия.Вставить("Имя" , ТекЭлемент.Имя); + ТекВерсия.Вставить("Идентификатор" , ТекЭлемент.Идентификатор); ТекВерсия.Вставить("ПолныйДистрибутив", - Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Полный дистрибутив$")); + Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Полный дистрибутив$")); ТекВерсия.Вставить("ДистрибутивОбновления", - Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$")); + Обозреватель.ЕстьСсылкаДляЗагрузки(ТекВерсия.Путь, "Дистрибутив обновления$")); КонецЦикла; КонецЕсли; - + ВерсииПриложения = Новый Массив(); Для Каждого ТекВерсия Из НайденныеВерсии Цикл Если ЗагружатьВерсию(ТекВерсия) Тогда ВерсииПриложения.Добавить(ТекВерсия); КонецЕсли; КонецЦикла; - + ВсегоВерсий = ВерсииПриложения.Количество(); Если ОграничениеКоличества > 0 Тогда ВсегоВерсий = Мин(ВерсииПриложения.Количество(), ОграничениеКоличества); КонецЕсли; - + Для Каждого ТекВерсия Из ВерсииПриложения Цикл - + Лог.Информация("[%1]: Загрузка версии %2 из %3", - ТипЗнч(ЭтотОбъект), - ОбработаноВерсий + 1, - ВсегоВерсий); - + ТипЗнч(ЭтотОбъект), + ОбработаноВерсий + 1, + ВсегоВерсий); + Если НЕ ОбработатьВерсиюПриложения(ТекВерсия, Обозреватель) Тогда ОбработаноВерсий = ОбработаноВерсий + 1; Продолжить; КонецЕсли; - + ОбработаноВерсий = ОбработаноВерсий + 1; - + Если ОграничениеКоличества > 0 И ОбработаноВерсий >= ОграничениеКоличества Тогда Лог.Информация("[%1]: Достигнут лимит загружаемых версий %2", ТипЗнч(ЭтотОбъект), ОграничениеКоличества); Прервать; КонецЕсли; КонецЦикла; - + Если ЗаполнитьВерсии Тогда ТекЭлемент.Вставить("Версии", ВерсииПриложения); КонецЕсли; - + ПродолжениеОбработкиДанныхВызовМенеджера(ТекЭлемент); - + Если ОграничениеКоличества > 0 И ОбработаноВерсий >= ОграничениеКоличества Тогда Прервать; КонецЕсли; - + КонецЦикла; - + ЗавершениеОбработкиДанныхВызовМенеджера(); - + КонецПроцедуры // ОбработатьДанные() // Функция - возвращает текущие результаты обработки @@ -587,7 +587,7 @@ Процедура ЗавершениеОбработкиДанных() Экспорт Лог.Информация("[%1]: Завершение обработки данных.", ТипЗнч(ЭтотОбъект)); - + ЗавершениеОбработкиДанныхВызовМенеджера(); КонецПроцедуры // ЗавершениеОбработкиДанных() @@ -604,7 +604,7 @@ Функция Лог() Экспорт Возврат Лог; - + КонецФункции // Лог() // Процедура - устанавливает описание команды @@ -615,88 +615,88 @@ Процедура ОписаниеКоманды(Команда) Экспорт Команда.Опция("af app-filter", "", "фильтр приложений") - .ТСтрока() - .ВОкружении("YARD_RELEASES_APP_FILTER"); - + .ТСтрока() + .ВОкружении("YARD_RELEASES_APP_FILTER"); + Команда.Опция("vf version-filter", "", "фильтр версий") - .ТСтрока() - .ВОкружении("YARD_RELEASES_VERSION_FILTER"); - + .ТСтрока() + .ВОкружении("YARD_RELEASES_VERSION_FILTER"); + Команда.Опция("vsd version-start-date", "", "фильтр по начальной дате версии (включая)") - .ТДата("dd.MM.yyyy") - .ВОкружении("YARD_RELEASES_VERSION_START_DATE"); - + .ТДата("dd.MM.yyyy") + .ВОкружении("YARD_RELEASES_VERSION_START_DATE"); + Команда.Опция("ved version-end-date", "", "фильтр по последней дате версии (включая)") - .ТДата("dd.MM.yyyy") - .ВОкружении("YARD_RELEASES_VERSION_END_DATE"); - + .ТДата("dd.MM.yyyy") + .ВОкружении("YARD_RELEASES_VERSION_END_DATE"); + Команда.Опция("df distr-filter", "", "Фильтр заголовков ссылок на скачивание дистрибутива - |если не указан, то будет выполнена проверка наличия ссылки - |""Полный дистрибутив"", затем ""Дистрибутив обновления""") - .ТСтрока() - .ВОкружении("YARD_RELEASES_DISTR_FILTER"); - + |если не указан, то будет выполнена проверка наличия ссылки + |""Полный дистрибутив"", затем ""Дистрибутив обновления""") + .ТСтрока() + .ВОкружении("YARD_RELEASES_DISTR_FILTER"); + Команда.Опция("p path", "", "каталог для загрузки релизов 1С") - .ТСтрока() - .ВОкружении("YARD_RELEASES_DOWNLOAD_PATH"); - + .ТСтрока() + .ВОкружении("YARD_RELEASES_DOWNLOAD_PATH"); + Команда.Опция("flv from-last-version", Ложь, "Истина - будут загружены релизы с версией - |старше последней найденной в каталоге для загрузки - |(проверяются файлы description.json) - |Ложь - будут загружены все релизы с учетом других настроек") - .Флаг(); - + |старше последней найденной в каталоге для загрузки + |(проверяются файлы description.json) + |Ложь - будут загружены все релизы с учетом других настроек") + .Флаг(); + Команда.Опция("lvd last-version-description", "", "путь к файлу description.json - |с описанием последней загруженной версии") - .ТСтрока(); - + |с описанием последней загруженной версии") + .ТСтрока(); + Команда.Опция("de download-existing", Ложь, "Истина - будут загружены все найденные релизы - |независимо от существующих в каталоге для загрузки - |Ложь - будут загружены только отсутствующие - |в каталоге для загрузки релизы - |(проверяются файлы description.json)") - .Флаг(); - + |независимо от существующих в каталоге для загрузки + |Ложь - будут загружены только отсутствующие + |в каталоге для загрузки релизы + |(проверяются файлы description.json)") + .Флаг(); + Команда.Опция("dl download-limit", 0, "ограничение количества загружаемых за 1 раз версий") - .ТЧисло() - .ВОкружении("YARD_RELEASES_DOWNLOAD_LIMIT"); - + .ТЧисло() + .ВОкружении("YARD_RELEASES_DOWNLOAD_LIMIT"); + Команда.Опция("do download-only", Ложь, "только скачать дистрибутив с сайта") - .Флаг(); - - Команда.Опция("dc download-changelog", Ложь, "скачивать ""Новое в версии""") - .Флаг(); + .Флаг(); + Команда.Опция("dn download-newinfo", Ложь, "скачивать ""Новое в версии""") + .Флаг(); + Команда.Опция("e extract", Ложь, "флаг распаковки загруженного архива") - .Флаг(); - + .Флаг(); + Команда.Опция("ep extract-path", "", "каталог для распаковки загруженного архива") - .ТСтрока() - .ВОкружении("YARD_EXTRACT_PATH"); - + .ТСтрока() + .ВОкружении("YARD_EXTRACT_PATH"); + Команда.Опция("ed extract-dir", "", "регулярное выражение, отбора каталогов - |в архиве EFD для распаковки") - .ТСтрока() - .ВОкружении("YARD_EXTRACT_DIR"); - + |в архиве EFD для распаковки") + .ТСтрока() + .ВОкружении("YARD_EXTRACT_DIR"); + Команда.Опция("ef extract-files", "", "список файлов для распаковки из архива дистрибутива, разделенный ""|"", - |если не указан, то распаковываются все файлы") - .ТСтрока() - .ВОкружении("YARD_EXTRACT_FILES"); - + |если не указан, то распаковываются все файлы") + .ТСтрока() + .ВОкружении("YARD_EXTRACT_FILES"); + Команда.Опция("ee extract-existing", Ложь, "Истина - будут распакованы все найденные дистрибутивы - |независимо от существующих в каталоге для распаковки - |Ложь - будут оаспакованы только отсутствующие - |в каталоге для распаковки дистрибутивы - |(проверяются файлы description.json)") - .Флаг(); - + |независимо от существующих в каталоге для распаковки + |Ложь - будут оаспакованы только отсутствующие + |в каталоге для распаковки дистрибутивы + |(проверяются файлы description.json)") + .Флаг(); + Команда.Опция("d delete", Ложь, "флаг удаления загруженного архива после распаковки") - .Флаг(); + .Флаг(); Команда.Опция("bv get-beta-versions", Ложь, "флаг получения версий для ознакомления") - .Флаг(); - + .Флаг(); + КонецПроцедуры // ОписаниеКоманды() // Процедура - запускает выполнение команды устанавливает описание команды @@ -705,58 +705,58 @@ // Команда - КомандаПриложения - объект описание команды // Процедура ВыполнитьКоманду(Знач Команда) Экспорт - + ВыводОтладочнойИнформации = Команда.ЗначениеОпции("verbose"); - + ПараметрыПриложения.УстановитьРежимОтладки(ВыводОтладочнойИнформации); - - УстановитьПараметрОбработкиДанных("ИмяПользователя", Команда.ЗначениеОпции("user")); - УстановитьПараметрОбработкиДанных("ПарольПользователя", Команда.ЗначениеОпции("password")); - УстановитьПараметрОбработкиДанных("ВремяОжиданияОтвета", Команда.ЗначениеОпции("timeout")); - + + УстановитьПараметрОбработкиДанных("ИмяПользователя" , Команда.ЗначениеОпции("user")); + УстановитьПараметрОбработкиДанных("ПарольПользователя" , Команда.ЗначениеОпции("password")); + УстановитьПараметрОбработкиДанных("ВремяОжиданияОтвета" , Команда.ЗначениеОпции("timeout")); + ВремФильтрПриложений = Команда.ЗначениеОпции("app-filter"); Служебный.УбратьКавычки(ВремФильтрПриложений); - УстановитьПараметрОбработкиДанных("ФильтрПриложений", ВремФильтрПриложений); - + УстановитьПараметрОбработкиДанных("ФильтрПриложений" , ВремФильтрПриложений); + ВремФильтрВерсий = Команда.ЗначениеОпции("version-filter"); Служебный.УбратьКавычки(ВремФильтрВерсий); - УстановитьПараметрОбработкиДанных("ФильтрВерсий", ВремФильтрВерсий); - - УстановитьПараметрОбработкиДанных("ФильтрВерсийНачинаяСДаты", Команда.ЗначениеОпции("version-start-date")); - УстановитьПараметрОбработкиДанных("ФильтрВерсийДоДаты", Команда.ЗначениеОпции("version-end-date")); - + УстановитьПараметрОбработкиДанных("ФильтрВерсий" , ВремФильтрВерсий); + + УстановитьПараметрОбработкиДанных("ФильтрВерсийНачинаяСДаты" , Команда.ЗначениеОпции("version-start-date")); + УстановитьПараметрОбработкиДанных("ФильтрВерсийДоДаты" , Команда.ЗначениеОпции("version-end-date")); + ВремФильтрДистрибутива = Команда.ЗначениеОпции("distr-filter"); Служебный.УбратьКавычки(ВремФильтрДистрибутива); - УстановитьПараметрОбработкиДанных("ФильтрДистрибутива", ВремФильтрДистрибутива); - - УстановитьПараметрОбработкиДанных("КаталогДляСохранения", Команда.ЗначениеОпции("path")); - УстановитьПараметрОбработкиДанных("НачатьСПоследнейВерсии", Команда.ЗначениеОпции("from-last-version")); - УстановитьПараметрОбработкиДанных("ОписаниеПоследнейВерсии", Команда.ЗначениеОпции("last-version-description")); - УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие", Команда.ЗначениеОпции("download-existing")); - УстановитьПараметрОбработкиДанных("ОграничениеКоличества", Команда.ЗначениеОпции("download-limit")); - УстановитьПараметрОбработкиДанных("ТолькоСкачать", Команда.ЗначениеОпции("download-only")); - УстановитьПараметрОбработкиДанных("СкачиватьНовоеВВерсии", Команда.ЗначениеОпции("download-changelog")); - УстановитьПараметрОбработкиДанных("РаспаковыватьEFD", Команда.ЗначениеОпции("extract")); - УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD", Команда.ЗначениеОпции("extract-path")); - УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD", Команда.ЗначениеОпции("delete")); - УстановитьПараметрОбработкиДанных("ПолучатьБетаВерсии", Команда.ЗначениеОпции("get-beta-versions")); + УстановитьПараметрОбработкиДанных("ФильтрДистрибутива" , ВремФильтрДистрибутива); + + УстановитьПараметрОбработкиДанных("КаталогДляСохранения" , Команда.ЗначениеОпции("path")); + УстановитьПараметрОбработкиДанных("НачатьСПоследнейВерсии" , Команда.ЗначениеОпции("from-last-version")); + УстановитьПараметрОбработкиДанных("ОписаниеПоследнейВерсии" , Команда.ЗначениеОпции("last-version-description")); + УстановитьПараметрОбработкиДанных("ЗагружатьСуществующие" , Команда.ЗначениеОпции("download-existing")); + УстановитьПараметрОбработкиДанных("ОграничениеКоличества" , Команда.ЗначениеОпции("download-limit")); + УстановитьПараметрОбработкиДанных("ТолькоСкачать" , Команда.ЗначениеОпции("download-only")); + УстановитьПараметрОбработкиДанных("СкачиватьНовоеВВерсии" , Команда.ЗначениеОпции("download-newinfo")); + УстановитьПараметрОбработкиДанных("РаспаковыватьEFD" , Команда.ЗначениеОпции("extract")); + УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , Команда.ЗначениеОпции("extract-path")); + УстановитьПараметрОбработкиДанных("УдалитьПослеРаспаковкиEFD" , Команда.ЗначениеОпции("delete")); + УстановитьПараметрОбработкиДанных("ПолучатьБетаВерсии" , Команда.ЗначениеОпции("get-beta-versions")); УстановитьПараметрОбработкиДанных("КаталогВАрхивеДляРаспаковкиEFD", Команда.ЗначениеОпции("extract-dir")); - + ВремФайлы = СтрРазделить(Команда.ЗначениеОпции("extract-files"), "|", Ложь); - УстановитьПараметрОбработкиДанных("ФайлыДляРаспаковкиEFD", ВремФайлы); - УстановитьПараметрОбработкиДанных("РаспаковыватьСуществующие", Команда.ЗначениеОпции("extract-existing")); - + УстановитьПараметрОбработкиДанных("ФайлыДляРаспаковкиEFD" , ВремФайлы); + УстановитьПараметрОбработкиДанных("РаспаковыватьСуществующие" , Команда.ЗначениеОпции("extract-existing")); + Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя); Обозреватель.УстановитьВремяОжиданияОтвета(ВремяОжиданияОтвета); - + Данные = Обозреватель.ПолучитьСписокПриложений(ФильтрПриложений, - ФильтрВерсий, - ФильтрВерсийНачинаяСДаты, - ФильтрВерсийДоДаты, - ПолучатьБетаВерсии); - + ФильтрВерсий, + ФильтрВерсийНачинаяСДаты, + ФильтрВерсийДоДаты, + ПолучатьБетаВерсии); + ОбработатьДанные(Обозреватель); - + КонецПроцедуры // ВыполнитьКоманду() #КонецОбласти // СлужебныйПрограммныйИнтерфейс @@ -797,7 +797,7 @@ #Область СлужебныеПроцедурыИФункции // Процедура - добавляет описание параметра обработки -// +// // Параметры: // ОписаниеПараметров - Структура - структура описаний параметров // Параметр - Строка - имя параметра @@ -807,21 +807,21 @@ // Описание - Строка - описание параметра // Процедура ДобавитьОписаниеПараметра(ОписаниеПараметров - , Параметр - , Тип - , Обязательный = Ложь - , ЗначениеПоУмолчанию = Неопределено - , Описание = "") + , Параметр + , Тип + , Обязательный = Ложь + , ЗначениеПоУмолчанию = Неопределено + , Описание = "") Если НЕ ТипЗнч(ОписаниеПараметров) = Тип("Структура") Тогда ОписаниеПараметров = Новый Структура(); КонецЕсли; ОписаниеПараметра = Новый Структура(); - ОписаниеПараметра.Вставить("Тип", Тип); - ОписаниеПараметра.Вставить("Обязательный", Обязательный); + ОписаниеПараметра.Вставить("Тип" , Тип); + ОписаниеПараметра.Вставить("Обязательный" , Обязательный); ОписаниеПараметра.Вставить("ЗначениеПоУмолчанию", ЗначениеПоУмолчанию); - ОписаниеПараметра.Вставить("Описание", Описание); + ОписаниеПараметра.Вставить("Описание" , Описание); ОписаниеПараметров.Вставить(Параметр, ОписаниеПараметра); @@ -829,34 +829,34 @@ // Процедура - устанавливает значение переменной модуля с указанным именем // из значения структуры с тем же именем или значение по умолчанию -// +// // Параметры: // ИмяПараметра - Строка - имя параметра для установки значения // СтруктураПараметров - Структура - структуры значений параметров // ЗначениеПоУмолчанию - Произвольный - значение переменной по умолчанию // Процедура УстановитьПараметрОбработкиДанныхИзСтруктуры(Знач ИмяПараметра, - Знач СтруктураПараметров, - Знач ЗначениеПоУмолчанию = "") - + Знач СтруктураПараметров, + Знач ЗначениеПоУмолчанию = "") + Если НЕ ЕстьПеременнаяМодуля(ИмяПараметра) Тогда Возврат; КонецЕсли; - + ЗначениеПараметра = ЗначениеПоУмолчанию; - + Если СтруктураПараметров.Свойство(ИмяПараметра) Тогда ЗначениеПараметра = СтруктураПараметров[ИмяПараметра]; КонецЕсли; - + ПараметрыОбработчиков.ОбработатьПараметрыАвторизации(ИмяПараметра, ЗначениеПараметра); - + Выполнить(СтрШаблон("%1 = ЗначениеПараметра;", ИмяПараметра)); - + КонецПроцедуры // УстановитьПараметрОбработкиДанныхИзСтруктуры() // Функция - проверяет наличие в текущем модуле переменной с указанным именем -// +// // Параметры: // ИмяПеременной - Строка - имя переменной для проверки // @@ -864,15 +864,15 @@ // Булево - Истина - переменная существует; Ложь - в противном случае. // Функция ЕстьПеременнаяМодуля(Знач ИмяПеременной) - + Попытка ЗначениеПеременной = Вычислить(ИмяПеременной); Исключение Возврат Ложь; КонецПопытки; - + Возврат Истина; - + КонецФункции // ЕстьПеременнаяМодуля() // Процедура - выполняет загрузку и распаковку версии приложения @@ -892,12 +892,12 @@ // Булево - Истина - версия приложения успешно обработана // Функция ОбработатьВерсиюПриложения(ОписаниеВерсии, Обозреватель = Неопределено) - + Если Обозреватель = Неопределено Тогда Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя); Обозреватель.УстановитьВремяОжиданияОтвета(ВремяОжиданияОтвета); КонецЕсли; - + Если ЗначениеЗаполнено(ФильтрДистрибутива) Тогда ШаблонСсылки = ФильтрДистрибутива; ИначеЕсли ОписаниеВерсии.ПолныйДистрибутив Тогда @@ -906,12 +906,12 @@ ШаблонСсылки = "Дистрибутив обновления$"; Иначе Лог.Информация("[%1]: Не найдена ссылка на дистрибутив ""%2"" версии %3.", - СокрЛП(ЭтотОбъект), - ОписаниеВерсии.Имя, - ОписаниеВерсии.Версия); + СокрЛП(ЭтотОбъект), + ОписаниеВерсии.Имя, + ОписаниеВерсии.Версия); Возврат Ложь; КонецЕсли; - + Если СкачиватьНовоеВВерсии Тогда Лог.Отладка("Начинаю получение информации о новом в версии."); НовоеВВерсииСтрока = Обозреватель.ПолучитьНовоеВверсии(ОписаниеВерсии.Путь); @@ -928,98 +928,98 @@ НовоеВВерсии.Записать(ИмяФайлаНовоеВВерсии, "utf-8"); КонецЕсли; КонецЕсли; - + СписокСсылок = Обозреватель.ПолучитьСсылкиДляЗагрузки(ОписаниеВерсии.Путь, ШаблонСсылки); - + Если СписокСсылок.Количество() = 0 Тогда Лог.Информация("[%1]: По адресу ""%2"" не найдена ссылка для загрузки - |дистрибутива ""%3"" версии %4 по шаблону ""%5"".", - СокрЛП(ЭтотОбъект), - ОписаниеВерсии.Путь, - ОписаниеВерсии.Имя, - ОписаниеВерсии.Версия, - ШаблонСсылки); + |дистрибутива ""%3"" версии %4 по шаблону ""%5"".", + СокрЛП(ЭтотОбъект), + ОписаниеВерсии.Путь, + ОписаниеВерсии.Имя, + ОписаниеВерсии.Версия, + ШаблонСсылки); Возврат Ложь; КонецЕсли; - + Для Каждого ТекСсылка Из СписокСсылок Цикл - + ИмяФайлаАрхива = ОбъединитьПути(КаталогДляСохранения, - ОписаниеВерсии.Идентификатор, - ОписаниеВерсии.Версия, - ТекСсылка.ИмяФайла); - + ОписаниеВерсии.Идентификатор, + ОписаниеВерсии.Версия, + ТекСсылка.ИмяФайла); + ФайлАрхива = Новый Файл(ИмяФайлаАрхива); - + Распаковщик.ОбеспечитьКаталог(ИмяФайлаАрхива, Истина); - + Лог.Информация("[%1]: Начало загрузки ""%2"", версия ""%3"": %4 (%5) в файл %6.", - СокрЛП(ЭтотОбъект), - ОписаниеВерсии.Имя, - ОписаниеВерсии.Версия, - ТекСсылка.Имя, - ТекСсылка.ПутьДляЗагрузки, - ИмяФайлаАрхива); - + СокрЛП(ЭтотОбъект), + ОписаниеВерсии.Имя, + ОписаниеВерсии.Версия, + ТекСсылка.Имя, + ТекСсылка.ПутьДляЗагрузки, + ИмяФайлаАрхива); + Обозреватель.ЗагрузитьФайл(ТекСсылка.ПутьДляЗагрузки, ИмяФайлаАрхива); - + Лог.Информация("[%1]: Загружен файл ""%2""", СокрЛП(ЭтотОбъект), ИмяФайлаАрхива); - + Если ТолькоСкачать Тогда Возврат Истина; КонецЕсли; - + Распаковщик.РаспаковатьАрхив(ИмяФайлаАрхива, ФайлАрхива.Путь); - + Лог.Информация("[%1]: Распакован файл ""%2""", СокрЛП(ЭтотОбъект), ИмяФайлаАрхива); - + УдалитьФайлы(ИмяФайлаАрхива); - + Лог.Информация("[%1]: Удален файл ""%2""", СокрЛП(ЭтотОбъект), ИмяФайлаАрхива); - + Если ФайлАрхива.Расширение = ".gz" Тогда ИмяВложенногоФайлаАрхива = СтрШаблон("%1%2", ФайлАрхива.Путь, ФайлАрхива.ИмяБезРасширения); ВложенныйФайлАрхива = Новый Файл(ИмяВложенногоФайлаАрхива); - + Если ВложенныйФайлАрхива.Существует() Тогда - + Распаковщик.РаспаковатьАрхив(ИмяВложенногоФайлаАрхива, ВложенныйФайлАрхива.Путь); - + Лог.Информация("[%1]: Распакован файл ""%2""", СокрЛП(ЭтотОбъект), ИмяВложенногоФайлаАрхива); - + УдалитьФайлы(ИмяВложенногоФайлаАрхива); Лог.Информация("[%1]: Удален файл ""%2""", СокрЛП(ЭтотОбъект), ИмяВложенногоФайлаАрхива); - + КонецЕсли; - - КонецЕсли; + КонецЕсли; + Если ЗначениеЗаполнено(ИмяПриложения) Тогда ОписаниеВерсии.Имя = ИмяПриложения; КонецЕсли; - + ЗаписатьОписаниеВерсииВФайл(ОписаниеВерсии, ФайлАрхива.Путь); - + ФайлАрхиваEFD = Новый Файл(ОбъединитьПути(ФайлАрхива.Путь, "1cv8.efd")); - + ОписаниеВерсии.Вставить("ЭтоКонфигурация", ФайлАрхиваEFD.Существует()); Если ОписаниеВерсии.ЭтоКонфигурация И РаспаковыватьEFD Тогда - + РаспаковщикРелиза = Новый РаспаковщикРелизов1С(); РаспаковщикРелиза.УстановитьПараметрыОбработкиДанных(ПараметрыОбработки); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Имя", ОписаниеВерсии.Имя); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Ид", ОписаниеВерсии.Идентификатор); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Версия", ОписаниеВерсии.Версия); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("ПутьКДистрибутиву", ФайлАрхива.Путь); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD", КаталогДляРаспаковкиEFD); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Имя" , ОписаниеВерсии.Имя); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Ид" , ОписаниеВерсии.Идентификатор); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("Приложение_Версия" , ОписаниеВерсии.Версия); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("ПутьКДистрибутиву" , ФайлАрхива.Путь); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("КаталогДляРаспаковкиEFD" , КаталогДляРаспаковкиEFD); РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("КаталогВАрхивеДляРаспаковкиEFD", - КаталогВАрхивеДляРаспаковкиEFD); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("ФайлыДляРаспаковкиEFD", ФайлыДляРаспаковкиEFD); - РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("РаспаковыватьСуществующие", РаспаковыватьСуществующие); + КаталогВАрхивеДляРаспаковкиEFD); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("ФайлыДляРаспаковкиEFD" , ФайлыДляРаспаковкиEFD); + РаспаковщикРелиза.УстановитьПараметрОбработкиДанных("РаспаковыватьСуществующие" , РаспаковыватьСуществующие); РаспаковщикРелиза.ОбработатьДанные(); - + Если УдалитьПослеРаспаковкиEFD Тогда УдалитьФайлы(ФайлАрхива.Путь, ПолучитьМаскуВсеФайлы()); УдалитьФайлы(ФайлАрхива.Путь); @@ -1027,9 +1027,9 @@ КонецЕсли; КонецЕсли; КонецЦикла; - + Возврат Истина; - + КонецФункции // ОбработатьВерсиюПриложения() // Процедура - записывает описание версии в файл JSON @@ -1045,9 +1045,9 @@ // Путь - Строка - путь к каталогу, в котором будет сохранен файл описания версии // Процедура ЗаписатьОписаниеВерсииВФайл(Знач ОписаниеВерсии, Знач Путь) - + ПутьКФайлуОписания = ОбъединитьПути(Путь, "description.json"); - + Распаковщик.ОбеспечитьКаталог(ПутьКФайлуОписания, Истина); Запись = Новый ЗаписьJSON(); @@ -1055,7 +1055,7 @@ Запись.ОткрытьФайл(ПутьКФайлуОписания, "UTF-8", , Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Unix, Символы.Таб)); Лог.Информация("[%1]: Запись описания версии в файл ""%2""", ТипЗнч(ЭтотОбъект), ПутьКФайлуОписания); - + Попытка ЗаписатьJSON(Запись, ОписаниеВерсии); Исключение @@ -1064,7 +1064,7 @@ КонецПопытки; Запись.Закрыть(); - + КонецПроцедуры // ЗаписатьОписаниеВерсииВФайл() Процедура ЗаполнитьСписокЗагруженныхВерсий(ИдентификаторПриложения) @@ -1072,27 +1072,27 @@ Если НЕ ТипЗнч(ЗагруженныеВерсии) = Тип("Соответствие") Тогда ЗагруженныеВерсии = Новый Соответствие(); КонецЕсли; - + КаталогЗагруженныхВерсий = ОбъединитьПути(КаталогДляСохранения, ИдентификаторПриложения); Если УдалитьПослеРаспаковкиEFD И РаспаковыватьEFD И ЗначениеЗаполнено(КаталогДляРаспаковкиEFD) Тогда КаталогЗагруженныхВерсий = ОбъединитьПути(КаталогДляРаспаковкиEFD, ИдентификаторПриложения); КонецЕсли; ФайлыОписанийВерсий = НайтиФайлы(КаталогЗагруженныхВерсий, "description.json", Истина); - + Если НЕ ТипЗнч(ЗагруженныеВерсии.Получить(ИдентификаторПриложения)) = Тип("Массив") Тогда ЗагруженныеВерсии.Вставить(ИдентификаторПриложения, Новый Массив()); КонецЕсли; - + Для Каждого ТекФайл Из ФайлыОписанийВерсий Цикл - + ОписаниеВерсии = Служебный.ОписаниеРелиза(ТекФайл.ПолноеИмя); - + ЗагруженныеВерсии[ИдентификаторПриложения].Добавить(ОписаниеВерсии.Версия); - + КонецЦикла; - + Служебный.СортироватьВерсии(ЗагруженныеВерсии[ИдентификаторПриложения]); - + Если ЗначениеЗаполнено(ОписаниеПоследнейВерсии) Тогда ВремФайл = Новый Файл(ОписаниеПоследнейВерсии); Если ВремФайл.Существует() И ВремФайл.ЭтоФайл() Тогда @@ -1100,7 +1100,7 @@ ЗагруженныеВерсии[ИдентификаторПриложения].Добавить(ОписаниеВерсии.Версия); КонецЕсли; КонецЕсли; - + КонецПроцедуры // ЗаполнитьСписокЗагруженныхВерсий() Функция ЗагружатьВерсию(ОписаниеВерсии) @@ -1108,30 +1108,30 @@ Если ЗагружатьСуществующие И НЕ НачатьСПоследнейВерсии Тогда Возврат Истина; КонецЕсли; - + Если НЕ ТипЗнч(ЗагруженныеВерсии) = Тип("Соответствие") Тогда ЗаполнитьСписокЗагруженныхВерсий(ОписаниеВерсии.Идентификатор); КонецЕсли; - + ЗагруженныеВерсииПриложения = ЗагруженныеВерсии.Получить(ОписаниеВерсии.Идентификатор); Если ЗагруженныеВерсииПриложения = Неопределено Тогда ЗаполнитьСписокЗагруженныхВерсий(ОписаниеВерсии.Идентификатор); ЗагруженныеВерсииПриложения = ЗагруженныеВерсии.Получить(ОписаниеВерсии.Идентификатор); КонецЕсли; - + Если НачатьСПоследнейВерсии И ЗначениеЗаполнено(ЗагруженныеВерсииПриложения) Тогда ПоследняяВерсия = ЗагруженныеВерсииПриложения[ЗагруженныеВерсииПриложения.ВГраница()]; Если Служебный.СравнитьВерсии(ОписаниеВерсии.Версия, ПоследняяВерсия) > 0 Тогда Возврат Истина; Иначе Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" - | меньше или равна последней существующей версии ""%5"" в каталоге ""%6""", - ТипЗнч(ЭтотОбъект), - ОписаниеВерсии.Версия, - Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), - ОписаниеВерсии.Имя, - ПоследняяВерсия, - ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); + | меньше или равна последней существующей версии ""%5"" в каталоге ""%6""", + ТипЗнч(ЭтотОбъект), + ОписаниеВерсии.Версия, + Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), + ОписаниеВерсии.Имя, + ПоследняяВерсия, + ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); Возврат Ложь; КонецЕсли; КонецЕсли; @@ -1140,14 +1140,14 @@ Возврат Истина; Иначе Лог.Информация("[%1]: Версия ""%2"" от ""%3"" конфигурации ""%4"" уже существует в каталоге ""%5""", - ТипЗнч(ЭтотОбъект), - ОписаниеВерсии.Версия, - Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), - ОписаниеВерсии.Имя, - ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); + ТипЗнч(ЭтотОбъект), + ОписаниеВерсии.Версия, + Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), + ОписаниеВерсии.Имя, + ОбъединитьПути(КаталогДляСохранения, ОписаниеВерсии.Идентификатор)); Возврат Ложь; КонецЕсли; - + КонецФункции // ЗагружатьВерсию() #КонецОбласти // СлужебныеПроцедурыИФункции @@ -1158,17 +1158,17 @@ // // Параметры: // Менеджер - МенеджерОбработкиДанных - менеджер обработки данных - владелец -// +// // BSLLS:UnusedLocalMethod-off Процедура ПриСозданииОбъекта(Менеджер = Неопределено) - + УстановитьМенеджерОбработкиДанных(Менеджер); - + Лог = ПараметрыПриложения.Лог(); - + Лог.Информация("[%1]: Инициализирован обработчик", ТипЗнч(ЭтотОбъект)); - + КонецПроцедуры // ПриСозданииОбъекта() // BSLLS:UnusedLocalMethod-on -#КонецОбласти // ОбработчикиСобытий \ No newline at end of file +#КонецОбласти // ОбработчикиСобытий