Skip to content

обход ошибки невозможности получения лицензии #57

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Mar 24, 2017
35 changes: 22 additions & 13 deletions src/core/Классы/МенеджерСинхронизации.os
Original file line number Diff line number Diff line change
Expand Up @@ -68,27 +68,36 @@
ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner");
ЛогКонфигуратора.УстановитьУровень(Лог.Уровень());

Попытка
КоличествоЦикловОжиданияЛицензии = 30;
Пока КоличествоЦикловОжиданияЛицензии > 0 Цикл
Попытка

Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
Прервать;

Исключение
Исключение

// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать
// тогда выполним конвертацию и повторно попытаемся загрузить файл
ТекстОшибки = Конфигуратор.ВыводКоманды();
Если Найти(Врег(ТекстОшибки), Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда
// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать
// тогда выполним конвертацию и повторно попытаемся загрузить файл
ТекстОшибки = Конфигуратор.ВыводКоманды();
Если Найти(Врег(ТекстОшибки), Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Врег(ТекстОшибки) дважды выполняется в 2х условиях.
Предлагаю сначала получить ВРег, а уже затем результат сравнивать.


Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации);
Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ФайлКонфигурации, Ложь);
Конфигуратор.СконвертироватьФайлКонфигурации(ФайлКонфигурации);

Иначе
ИначеЕсли Найти(Врег(ТекстОшибки), Врег("Не обнаружено свободной лицензии!")) Тогда
Лог.Ошибка(ТекстОшибки);
Лог.Информация("Повторное подключение. Не обнаружено свободной лицензии!");
Приостановить(300000); // 5 минут подождем
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ненене! 10 секунд обратно верни! 5 минут - это я говорил в сумме :) когда с командной строки получишь задержку в 5 минут - сдуреешь :(

КоличествоЦикловОжиданияЛицензии = КоличествоЦикловОжиданияЛицензии - 1;

Иначе

ВызватьИсключение ТекстОшибки;
ВызватьИсключение ТекстОшибки;

КонецЕсли;
КонецЕсли;

КонецПопытки;
КонецПопытки;
КонецЦикла;

Если Не (Новый Файл(КаталогПлоскойВыгрузки).Существует()) Тогда
СоздатьКаталог(КаталогПлоскойВыгрузки);
Expand Down