diff --git a/readme.md b/readme.md index 9ed45e1c..6c4151be 100644 --- a/readme.md +++ b/readme.md @@ -196,4 +196,18 @@ Выгрузить 2 версии от последней выгруженной, но не более 5-ой версии. Удобно когда выгрузка идет небольшими партиями, при заранее известном максимальном номере версии. - gitsync export store -maxversion 5 -limit 2 \ No newline at end of file + gitsync export store -maxversion 5 -limit 2 + +# Решение проблемы вызванной ошибкой "Не обнаружено свободной лицензии!" + +В случае возникновения ошибки "Не обнаружено свободной лицензии!" рекомендуется воспользоваться параметром ```-amount-look-for-license```. Данный параметр может быть использован со следующими командами ```export``` и ```sync```. +При возникновении данной ошибки повторное получение лицензии происходит через 10 сек. +По умолчанию данный параметр равен 1. + +Выполнить 5 попыток получения лицензии: + + gitsync export -amount-look-for-license 5 + +Выполнять получение лицензии без ограничения: + + gitsync export -amount-look-for-license 0 \ No newline at end of file diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Export.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Export.os" index df66923c..642c1145 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Export.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Export.os" @@ -28,6 +28,8 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений"); + Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры // ЗарегистрироватьКоманду diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" index 27944db0..b1c3d481 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Sync.os" @@ -28,7 +28,8 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-format", ""); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-push-every-n-commits", "<число> количество коммитов до промежуточной отправки на удаленный сервер"); - Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl"); + Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек), 0 - без ограничений"); + Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl"); Парсер.ДобавитьКоманду(ОписаниеКоманды); diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" old mode 100755 new mode 100644 index b01ddf88..64acbb7b --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\320\270.os" @@ -19,6 +19,7 @@ Перем мАвторизацияВХранилищеСредствами1С; Перем ЭтоWindows; Перем УдалятьВременныеФайлы; +Перем КоличествоЦикловОжиданияЛицензииПоУмолчанию; /////////////////////////////////////////////////////////////////////////////////////////////// // ПРОГРАММНЫЙ ИНТЕРФЕЙС @@ -68,28 +69,42 @@ ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner"); ЛогКонфигуратора.УстановитьУровень(Лог.Уровень()); - - Попытка - - Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь); - - Исключение - - // проверим текст ошибки, если текст содержит информацию о необходимости конвертировать - // тогда выполним конвертацию и повторно попытаемся загрузить файл - ТекстОшибки = Конфигуратор.ВыводКоманды(); - Если Найти(Врег(ТекстОшибки), Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда - - Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации); + КоличествоЦикловОжиданияЛицензии = ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(); + Пока КоличествоЦикловОжиданияЛицензии >= 0 Цикл + Попытка + Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь); + Прервать; - Иначе + Исключение + + // проверим текст ошибки, если текст содержит информацию о необходимости конвертировать + // тогда выполним конвертацию и повторно попытаемся загрузить файл + ТекстОшибки = ВРег(Конфигуратор.ВыводКоманды()); + Если Найти(ТекстОшибки, Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда + + Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации); + Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь); + Прервать; + + ИначеЕсли Найти(ТекстОшибки, Врег("Не обнаружено свободной лицензии!")) Тогда + Лог.Ошибка(ТекстОшибки); + Лог.Информация("Повторное подключение через 10сек. Осталось попыток: " + КоличествоЦикловОжиданияЛицензии); + Приостановить(10000); - ВызватьИсключение ТекстОшибки; + Иначе + + ВызватьИсключение ТекстОшибки; + + КонецЕсли; + + КонецПопытки; + Если ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию() <> 0 Тогда + КоличествоЦикловОжиданияЛицензии = КоличествоЦикловОжиданияЛицензии - 1; КонецЕсли; - - КонецПопытки; + + КонецЦикла; Если Не (Новый Файл(КаталогПлоскойВыгрузки).Существует()) Тогда СоздатьКаталог(КаталогПлоскойВыгрузки); @@ -955,11 +970,11 @@ КонецЕсли; Попытка - Лог.Информация("Получаем исходники для версии " + СледующаяВерсия); + Лог.Информация("Получаем исходники для версии " + СледующаяВерсия + ", " + ТекущаяДата()); РазложитьМодулиПоНомеруВерсииХранилища1С(КаталогРабочейКопии, ФайлХранилища, СледующаяВерсия, Формат); Лог.Отладка("Фиксируем в файле VERSION версию " + СледующаяВерсия); - ЗаписатьФайлВерсийГит(КаталогРабочейКопии, СледующаяВерсия); + ЗаписатьФайлВерсийГит(КаталогРабочейКопии, СледующаяВерсия); ВыполнитьКоммитГит(КаталогРабочейКопии, СтрокаВерсии.Комментарий, СтрокаВерсии.ПредставлениеАвтора, СтрокаВерсии.Дата); СчетчикКоммитов = СчетчикКоммитов + 1; @@ -1404,10 +1419,20 @@ Возврат ?(ДоменПочтыДляGitПоУмолчанию = Неопределено, "localhost", ДоменПочтыДляGitПоУмолчанию); КонецФункции +Процедура УстановитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(КоличествоЦиклов) Экспорт + КоличествоЦикловОжиданияЛицензииПоУмолчанию = КоличествоЦиклов; +КонецПроцедуры + +Функция ПолучитьКоличествоЦикловОжиданияЛицензииПоУмолчанию() Экспорт + Возврат КоличествоЦикловОжиданияЛицензииПоУмолчанию; +КонецФункции + + ////////////////////////////////////////////////////////////////////////////////////////////// СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0; Лог = Логирование.ПолучитьЛог("oscript.app.gitsync"); ДоменПочтыДляGitПоУмолчанию = "localhost"; -УдалятьВременныеФайлы=Ложь; +УдалятьВременныеФайлы = Ложь; +КоличествоЦикловОжиданияЛицензииПоУмолчанию = 1; diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\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\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\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\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" index 108b87d8..cf905875 100644 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\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\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\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\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.os" @@ -16,6 +16,13 @@ Лог = ДополнительныеПараметры.Лог; Распаковщик = ПолучитьРаспаковщик(ДополнительныеПараметры); Распаковщик.ДоменПочтыДляGitПоУмолчанию = ПараметрыЗапуска["-email"]; + + КоличествоЦикловОжиданияЛицензии = ПараметрыЗапуска["-amount-look-for-license"]; + Если КоличествоЦикловОжиданияЛицензии = Неопределено Тогда + КоличествоЦикловОжиданияЛицензии = 1; + КонецЕсли; + Распаковщик.УстановитьКоличествоЦикловОжиданияЛицензииПоУмолчанию(Число(КоличествоЦикловОжиданияЛицензии)); + Возврат Распаковщик; КонецФункции // ПолучитьИНастроитьРаспаковщик