ПрочитатьМанифест (БСП)

Автор: 1С
ОбщийМодуль.ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест
БСП

Прочитать манифест. Заполняет объекты ОбъектОбработки, ОбъектВерсии и ВариантыОтчета данными, считываемыми из манифеста

// Заполняет объекты ОбъектОбработки, ОбъектВерсии и ВариантыОтчета данными, считываемыми из манифеста 
// дополнительного отчета или обработки.
//
// Параметры:
//  Манифест - ОбъектXDTO {http://www.1c.ru/1cFresh/ApplicationExtensions/Manifest/a.b.c.d}ExtensionManifest - манифест
//    дополнительного отчета или обработки.
//  ОбъектОбработки - СправочникОбъект.ДополнительныеОтчетыИОбработки - объект, значения свойств которого будет установлены
//    значениями свойств дополнительного отчета или обработки из манифеста.
//  ОбъектВерсии - СправочникОбъект.ДополнительныеОтчетыИОбработки - объект, значения свойств которого будет установлены
//    значениями свойств версии дополнительного отчета или обработки из манифеста.
//  ВариантыОтчета - ТаблицаЗначений - сведения о вариантах отчета:
//    * КлючВарианта - Строка - ключ варианта дополнительного отчета.
//    * Представление - Строка - представление варианта дополнительного отчета.
//    * Назначение - ТаблицаЗначений - колонки:
//       ** РазделИлиГруппа - Строка - для сопоставления с элементом справочника ИдентификаторыОбъектовМетаданных,
//       ** Важный - Булево  - Истина, если выводится в группе важных.
//       ** СмТакже - Булево - Истина, если выводится в группе "См. также".
//
Процедура ПрочитатьМанифест(Знач Манифест, ОбъектОбработки, ОбъектВерсии, ВариантыОтчета) Экспорт
	
	Если Манифест.Тип().URIПространстваИмен = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.1") Тогда
		ОбъектОбработки.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3;
	ИначеЕсли Манифест.Тип().URIПространстваИмен = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.2") Тогда
		ОбъектОбработки.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2;
	КонецЕсли;
	
	ОбъектОбработки.Наименование = Манифест.Name;
	ОбъектВерсии.ИмяОбъекта = Манифест.ObjectName;
	ОбъектВерсии.Версия = Манифест.Version;
	Если ОбъектОбработки.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3 Тогда
		ОбъектВерсии.БезопасныйРежим = Манифест.SafeMode;
	Иначе
		ОбъектВерсии.БезопасныйРежим = Истина;
	КонецЕсли;
	ОбъектВерсии.Информация = Манифест.Description;
	ОбъектВерсии.ИмяФайла = Манифест.FileName;
	ОбъектВерсии.ИспользуетХранилищеВариантов = Манифест.UseReportVariantsStorage;
	
	СловарьПреобразованияВидовОбработок = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.СловарьВидыДополнительныхОтчетовИОбработок();
	ОбъектВерсии.Вид = СловарьПреобразованияВидовОбработок[Манифест.Category];
	
	ОбъектВерсии.Команды.Очистить();
	Для Каждого Command Из Манифест.Commands Цикл
		
		СтрокаКоманды = ОбъектВерсии.Команды.Добавить();
		СтрокаКоманды.Идентификатор = Command.Id;
		СтрокаКоманды.Представление = Command.Representation;
		СтрокаКоманды.ПоказыватьОповещение = Command.ShowNotification;
		СтрокаКоманды.Модификатор = Command.Modifier;
		
		СловарьПреобразованияСпособовВызова =
			ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.СловарьСпособыВызоваДополнительныхОтчетовИОбработок();
		СтрокаКоманды.ВариантЗапуска = СловарьПреобразованияСпособовВызова[Command.StartupType];
		
	КонецЦикла;
	
	ОбъектВерсии.Разрешения.Очистить();
	Для Каждого Permission Из Манифест.Permissions Цикл
		
		ТипXDTO = Permission.Тип();
		
		Разрешение = ОбъектВерсии.Разрешения.Добавить();
		Разрешение.ВидРазрешения = ТипXDTO.Имя;
		
		Параметры = Новый Структура();
		
		Для Каждого СвойствоXDTO Из ТипXDTO.Свойства Цикл
			
			Контейнер = Permission.ПолучитьXDTO(СвойствоXDTO.Имя);
			
			Если Контейнер <> Неопределено Тогда
				Параметры.Вставить(СвойствоXDTO.Имя, Контейнер.Значение);
			Иначе
				Параметры.Вставить(СвойствоXDTO.Имя);
			КонецЕсли;
			
		КонецЦикла;
		
		Разрешение.Параметры = Новый ХранилищеЗначения(Параметры);
		
	КонецЦикла;
	
КонецПроцедуры

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

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

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

МанифестНеЗадан (БСП)

МанифестНеВерногоФормата (БСП)

ОтсутствуетСвойствоМанифеста (БСП)

ИмяФайлаМанифеста (БСП)

СформироватьМанифест (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз