diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\265\321\200\321\201\320\270\320\270OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\265\321\200\321\201\320\270\320\270OneScript.os" index c4d91b1..2d70d97 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\265\321\200\321\201\320\270\320\270OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\265\321\200\321\201\320\270\320\270OneScript.os" @@ -241,7 +241,8 @@ ТелоСтраницы = Ответ.ПолучитьТелоКакСтроку(); - РегулярноеВыражение = Новый РегулярноеВыражение("(\d+\.\d+\.\d+(\.\d+)?)"); + РегулярноеВыражение = Новый РегулярноеВыражение( + "(" + ПараметрыOVM.МаскаНомераВерсии() + ")<"); ИндексГруппыАдрес = 1; ИндексГруппыВерсия = 2; diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" index 23a770f..4f6a8e5 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" @@ -54,14 +54,13 @@ Возврат СистемнаяИнформация.Это64БитнаяОперационнаяСистема; КонецФункции -// Количество разрядов в номере версии. -// В приложении используется версионирование вида 1.0.20 +// Регулярное выражение точного номера версии. // // Возвращаемое значение: -// Число - Количество разрядов в номере версии +// Строка - Регулярное выражение // -Функция КоличествоРазрядовВНомереВерсии() Экспорт - Возврат 3; +Функция МаскаНомераВерсии() Экспорт + Возврат "\d+\.\d+\.\d+(\.rc\d+?)?"; КонецФункции СистемнаяИнформация = Новый СистемнаяИнформация; diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" index 9532036..f7a9ac5 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" @@ -303,8 +303,15 @@ КонецПроцедуры +Функция ЭтоТочныйНомерВерсии(ВерсияКУстановке) + РВ = Новый РегулярноеВыражение("^" + ПараметрыOVM.МаскаНомераВерсии() + "$"); + РВ.ИгнорироватьРегистр = Ложь; + РВ.МногоСтрочный = Ложь; + Возврат РВ.Совпадает(ВерсияКУстановке); +КонецФункции + Процедура ПроверитьКорректностьПереданнойВерсии(Знач ВерсияКУстановке) - Если СтрРазделить(ВерсияКУстановке, ".").Количество() <> ПараметрыOVM.КоличествоРазрядовВНомереВерсии() + Если НЕ ЭтоТочныйНомерВерсии(ВерсияКУстановке) И Не ВерсииOneScript.ДопустимыеАлиасы().СодержитКлюч(ВерсияКУстановке) Тогда Лог.Ошибка("Версия имеет некорректный формат"); @@ -315,7 +322,7 @@ Функция ПолучитьПутьКСкачиваниюФайла(Знач ВерсияКУстановке, Знач ИспользоватьХ64, Знач ИспользоватьFDD) - Если СтрРазделить(ВерсияКУстановке, ".").Количество() = ПараметрыOVM.КоличествоРазрядовВНомереВерсии() Тогда + Если ЭтоТочныйНомерВерсии(ВерсияКУстановке) Тогда КаталогВерсии = СтрЗаменить(ВерсияКУстановке, ".", "_"); ЭтоВерсия2 = СтроковыеФункции.СравнитьВерсии(ВерсияКУстановке, "2.0") >= 0;