|
5 | 5 |
|
6 | 6 | Перем УстановленныеПакеты; |
7 | 7 |
|
8 | | -Функция ПакетУстановлен(Знач ИмяПакета) Экспорт |
9 | | - |
10 | | - Возврат УстановленныеПакеты[ИмяПакета] = Истина; |
11 | | - |
| 8 | +Функция ПакетУстановлен(Знач ОписаниеЗависимости) Экспорт |
| 9 | + |
| 10 | + ПакетУстановлен = УстановленныеПакеты.Получить(ОписаниеЗависимости.ИмяПакета) <> Неопределено; |
| 11 | + |
| 12 | + КаталогБиблиотек = ОбъединитьПути(КаталогПрограммы(), ПолучитьЗначениеСистемнойНастройки("lib.system")); |
| 13 | + ПутьКФайлуМетаданных = ОбъединитьПути( |
| 14 | + КаталогБиблиотек, |
| 15 | + ОписаниеЗависимости.ИмяПакета, |
| 16 | + Константы.ИмяФайлаМетаданныхПакета |
| 17 | + ); |
| 18 | + ФайлМетаданных = Новый Файл(ПутьКФайлуМетаданных); |
| 19 | + Если ФайлМетаданных.Существует() Тогда |
| 20 | + МетаОписаниеПакета = ПрочитатьМетаданныеПакета(ПутьКФайлуМетаданных); |
| 21 | + УстановленнаяВерсия = МетаОписаниеПакета.Свойства().Версия; |
| 22 | + Иначе |
| 23 | + // @deprecated |
| 24 | + УстановленнаяВерсия = 0; |
| 25 | + КонецЕсли; |
| 26 | + |
| 27 | + УстановленаКорректнаяВерсия = ОписаниеЗависимости.МинимальнаяВерсия = Неопределено |
| 28 | + ИЛИ РаботаСВерсиями.СравнитьВерсии(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия) = 1; |
| 29 | + |
| 30 | + Возврат ПакетУстановлен И УстановленаКорректнаяВерсия; |
| 31 | + |
12 | 32 | КонецФункции |
13 | 33 |
|
14 | 34 | Процедура Обновить() Экспорт |
|
31 | 51 | КонецФункции |
32 | 52 |
|
33 | 53 | Процедура Инициализация() |
34 | | - |
| 54 | + |
35 | 55 | Лог = Логирование.ПолучитьЛог("oscript.app.opm"); |
36 | 56 | //Лог.УстановитьУровень(УровниЛога.Отладка); |
37 | 57 |
|
|
43 | 63 |
|
44 | 64 | ПутьКФайлуМетаданных = ОбъединитьПути(ФайлКаталога.ПолноеИмя, Константы.ИмяФайлаМетаданныхПакета); |
45 | 65 | ФайлМетаданных = Новый Файл(ПутьКФайлуМетаданных); |
46 | | - Если ФайлМетаданных.Существует() Тогда |
47 | | - |
| 66 | + Если ФайлМетаданных.Существует() Тогда |
| 67 | + МетаОписаниеПакета = ПрочитатьМетаданныеПакета(ПутьКФайлуМетаданных); |
| 68 | + Иначе |
| 69 | + // @deprecated |
| 70 | + МетаОписаниеПакета = Истина; |
| 71 | + КонецЕсли; |
| 72 | + |
| 73 | + УстановленныеПакеты.Вставить(ФайлКаталога.Имя, МетаОписаниеПакета); |
| 74 | + |
| 75 | +КонецПроцедуры |
| 76 | + |
| 77 | +Функция ПрочитатьМетаданныеПакета(Знач ПутьКФайлуМетаданных) |
| 78 | + |
| 79 | + Перем Метаданные; |
| 80 | + Попытка |
48 | 81 | Чтение = Новый ЧтениеXML; |
49 | 82 | Чтение.ОткрытьФайл(ПутьКФайлуМетаданных); |
50 | | - Лог.Отладка("XML загружен"); |
51 | 83 | Сериализатор = Новый СериализацияМетаданныхПакета; |
52 | | - МетаОписаниеПакета = Сериализатор.ПрочитатьXML(Чтение); |
| 84 | + Метаданные = Сериализатор.ПрочитатьXML(Чтение); |
53 | 85 |
|
54 | 86 | Чтение.Закрыть(); |
| 87 | + Исключение |
| 88 | + Чтение.Закрыть(); |
| 89 | + ВызватьИсключение; |
| 90 | + КонецПопытки; |
55 | 91 |
|
56 | | - Иначе |
57 | | - МетаОписаниеПакета = Истина; |
58 | | - КонецЕсли; |
59 | | - |
60 | | - УстановленныеПакеты.Вставить(ФайлКаталога.Имя, МетаОписаниеПакета); |
| 92 | + Возврат Метаданные; |
61 | 93 |
|
62 | | -КонецПроцедуры |
| 94 | +КонецФункции |
63 | 95 |
|
64 | 96 | Инициализация(); |
0 commit comments