ПодключенныеОбъектыМетаданных (БСП)

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

Подключенные объекты метаданных. Определяет список объектов метаданных, к которым может быть применена назначаемая обработка переданного вида.

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

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

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

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

ПодключенныеОбъекты (БСП)

ЭтоОбъектМетаданныхКласса (БСП)

СвойстваОбъектаМетаданных (БСП)

ИмяОбъектаМетаданных (БСП)

ОбъектМетаданныхПоИдентификатору (БСП)

ОбъектыМетаданныхПоИдентификаторам (БСП)

ПредставлениеОбъектаМетаданных (БСП)

ЭтоОбъектМетаданныхКонфигурация (БСП)

1С Менеджер конфигураций