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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" index 3cd7f63..9f9bc79 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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.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\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" @@ -295,7 +295,8 @@ Если ЭтоWindows Тогда ФайлЗапуска = Новый ЗаписьТекста(ОбъединитьПути(Каталог, ИмяСкриптаЗапуска + ".bat"), "cp866"); - ФайлЗапуска.ЗаписатьСтроку("@call oscript """ + ПутьФайлаПриложения + """ %*"); + ПутьФайлаДляBat = ПолучитьПутьФайлаДляBat(ПутьФайлаПриложения); + ФайлЗапуска.ЗаписатьСтроку("@call oscript """ + ПутьФайлаДляBat + """ %*"); ФайлЗапуска.ЗаписатьСтроку("@exit /b %ERRORLEVEL%"); ФайлЗапуска.Закрыть(); КонецЕсли; @@ -319,6 +320,29 @@ КонецПроцедуры +Функция ПолучитьПутьФайлаДляBat(Знач ПутьФайлаПриложения) + Если мРежимУстановкиПакетов <> РежимУстановкиПакетов.Локально Тогда + Возврат ПутьФайлаПриложения; + КонецЕсли; + + ПутьВнутриЛокальнойУстановки = ПолучитьПутьВнутриЛокальнойУстановки(ПутьФайлаПриложения); + Если ПустаяСтрока(ПутьВнутриЛокальнойУстановки) Тогда + Возврат ПутьФайлаПриложения; + КонецЕсли; + + Возврат "%~dp0..\" + ПутьВнутриЛокальнойУстановки; +КонецФункции + +Функция ПолучитьПутьВнутриЛокальнойУстановки(Знач ПутьФайлаПриложения) + МаркерЛокальнойУстановки = "\" + КонстантыOpm.ЛокальныйКаталогУстановкиПакетов + "\"; + ПозицияМаркера = СтрНайти(НРег(ПутьФайлаПриложения), НРег(МаркерЛокальнойУстановки)); + Если ПозицияМаркера = 0 Тогда + Возврат ""; + КонецЕсли; + + Возврат Сред(ПутьФайлаПриложения, ПозицияМаркера + СтрДлина(МаркерЛокальнойУстановки)); +КонецФункции + Процедура СохранитьФайлМетаданныхПакета(Знач ПутьУстановки, Знач ПутьКФайлуМетаданных) ПутьСохранения = ОбъединитьПути(ПутьУстановки, КонстантыOpm.ИмяФайлаМетаданныхПакета);