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