СведенияОбОбновлении (БСП)

Автор: 1С
ОбщийМодуль.ОбновлениеКонфигурации
БСП

Сведения об обновлении.

Функция СведенияОбОбновлении(Знач ИмяФайлаПоставкиОбновления) Экспорт
	
	Результат = Новый Структура;
	Результат.Вставить("ТекстОшибки", "");
	Результат.Вставить("Подходит", Ложь);
	ИсходныеКонфигурации = Новый ДеревоЗначений;
	ИсходныеКонфигурации.Колонки.Добавить("Версия", Новый ОписаниеТипов("Строка"));
	Результат.Вставить("ИсходныеКонфигурации", ИсходныеКонфигурации);
	
	Попытка
		ДанныеФайла = Новый ДвоичныеДанные(ИмяФайлаПоставкиОбновления);
	Исключение
		ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		Результат.ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
		Возврат Результат;
	КонецПопытки;
	
	Попытка
		Описание = Новый ОписаниеОбновленияКонфигурации(ДанныеФайла);
	Исключение
		ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		Результат.ТекстОшибки = НСтр("ru = 'Сведения не доступны'");
		КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
		Если Не ПустаяСтрока(КраткоеПредставлениеОшибки) Тогда
			Результат.ТекстОшибки = Результат.ТекстОшибки + " (" + КраткоеПредставлениеОшибки + ")";
		КонецЕсли;	
		Возврат Результат;
	КонецПопытки;
	
	Для каждого ИсходнаяКонфигурация Из Описание.ИсходныеКонфигурации Цикл
		
		Если Не Результат.Подходит
			И (ИсходнаяКонфигурация.Имя = Метаданные.Имя И ИсходнаяКонфигурация.Поставщик = Метаданные.Поставщик
			И ИсходнаяКонфигурация.Версия = Метаданные.Версия) Тогда
			Результат.Подходит = Истина;
		КонецЕсли;
		
		ИмяКонфигурации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", 
			ИсходнаяКонфигурация.Имя, ИсходнаяКонфигурация.Поставщик);
		ЭлементКонфигурация = ИсходныеКонфигурации.Строки.Найти(ИмяКонфигурации, "Версия", Ложь);
		Если ЭлементКонфигурация = Неопределено Тогда
			ЭлементКонфигурация = ИсходныеКонфигурации.Строки.Добавить();
			ЭлементКонфигурация.Версия = ИмяКонфигурации; 
		КонецЕсли;
		ВерсияКонфигурации = ЭлементКонфигурация.Строки.Добавить();
		ВерсияКонфигурации.Версия = ИсходнаяКонфигурация.Версия;
	КонецЦикла;
	Возврат Результат;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СведенияОБлокируемыхОбъектах (БСП)

СведенияОбОбновленииИнформационнойБазы (БСП)

ЗаписатьСведенияОбОбновленииИнформационнойБазы (БСП)

ДоступныеВерсииАдресныхСведений (БСП)

ОбновитьНастройкиРаботыСКлассификаторами (БСП)

ЗапланироватьОбновлениеЗависимыхСписковПоЗначениямСГруппами (БСП)

ПриЗаписиСпискаБизнесПроцессов (БСП)

ОбновитьНастройкиРаботыСКлассификаторамиОбластейДанных (БСП)

Создать запись в регистре сведений

TurboConf 6 - расширение Конфигуратора 1С