diff --git "a/src/\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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" "b/src/\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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" index 79bfb86..80e016d 100644 --- "a/src/\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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" +++ "b/src/\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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" @@ -29,6 +29,7 @@ ПутьУстановки = НайтиСоздатьКаталогУстановки(ИмяПакета); Лог.Информация("Устанавливаю пакет " + ИмяПакета); + ПроверитьВерсиюСреды(Метаданные); Если мЗависимостиВРаботе[ИмяПакета] = "ВРаботе" Тогда ВызватьИсключение "Циклическая зависимость по пакету " + ИмяПакета; КонецЕсли; @@ -59,6 +60,33 @@ КонецПроцедуры +Процедура ПроверитьВерсиюСреды(Манифест) + + Свойства = Манифест.Свойства(); + Если НЕ Свойства.Свойство("ВерсияСреды") Тогда + Возврат; + КонецЕсли; + + ИмяПакета = Свойства.Имя; + ТребуемаяВерсияСреды = Свойства.ВерсияСреды; + СистемнаяИнформация = Новый СистемнаяИнформация; + ВерсияСреды = СистемнаяИнформация.Версия; + Если РаботаСВерсиями.СравнитьВерсии(ТребуемаяВерсияСреды, ВерсияСреды) > 0 Тогда + ТекстСообщения = СтрШаблон( + "Ошибка установки пакета <%1>: Обнаружена устаревшая версия движка OneScript. + |Требуемая версия: %2 + |Текущая версия: %3 + |Обновите OneScript перед установкой пакета", + ИмяПакета, + ТребуемаяВерсияСреды, + ВерсияСреды + ); + + ВызватьИсключение ТекстСообщения; + КонецЕсли; + +КонецПроцедуры + Процедура УстановитьПакетыПоОписаниюПакета() Экспорт ПутьКМанифесту = ОбъединитьПути(ТекущийКаталог(), Константы.ИмяФайлаСпецификацииПакета); @@ -72,6 +100,8 @@ Контекст = Новый Структура("Описание", Описание); ЗагрузитьСценарий(ПутьКМанифесту, Контекст); + ПроверитьВерсиюСреды(Описание); + РазрешитьЗависимостиПакета(Описание); КонецПроцедуры diff --git a/tests/testpackage/folder/src.os b/tests/testpackage/folder/src.os index 97e836d..511c8cd 100644 --- a/tests/testpackage/folder/src.os +++ b/tests/testpackage/folder/src.os @@ -1 +1 @@ -// \ No newline at end of file +// заглушка \ No newline at end of file