как из метаданных получить макет в виде табличного документа?
как из метаданных получить макет в виде табличного документа
пробую делать так
но ТабДок пустой
пробую делать так
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданные);
Если ОбъектМетаданных<>Неопределено Тогда
Для Каждого текМакет из ОбъектМетаданных.Макеты Цикл
Если текМакет.Имя=ИмяМакета Тогда
ТабДок = текМакет.Макет;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Показатьно ТабДок пустой
По теме из базы знаний
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Как сдать экзамен 1С:Специалист по платформе?
- Универсальные обработки 1С8 на основе проверок метаданных конфигурации с использованием идентификаторов в макете табличный документ
- [ШАБЛОН] Внешняя печатная форма с отладкой
- Приемы работы с СКД: выгрузка данных справочников и документов в линейном виде в табличный документ
Найденные решения
Если известно полное имя и имя макета не проще ли сразу его получить.
Ну либо тогда так
Документы.КассоваяКнига.ПолучитьМакет("ИмяМакета");
Ну либо тогда так
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданные);
Если ОбъектМетаданных<>Неопределено Тогда
Для Каждого текМакет из ОбъектМетаданных.Макеты Цикл
Если текМакет.Имя=ИмяМакета Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
ТабДок = Документы[ОбъектМетаданных.Имя].ПолучитьМакет(текМакет.Имя);
ИначеЕсли Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
ТабДок = Справочники[ОбъектМетаданных.Имя].ПолучитьМакет(текМакет.Имя);
// и т.д.
КонецЕсли;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если известно полное имя и имя макета не проще ли сразу его получить.
Ну либо тогда так
Документы.КассоваяКнига.ПолучитьМакет("ИмяМакета");
Ну либо тогда так
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданные);
Если ОбъектМетаданных<>Неопределено Тогда
Для Каждого текМакет из ОбъектМетаданных.Макеты Цикл
Если текМакет.Имя=ИмяМакета Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
ТабДок = Документы[ОбъектМетаданных.Имя].ПолучитьМакет(текМакет.Имя);
ИначеЕсли Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
ТабДок = Справочники[ОбъектМетаданных.Имя].ПолучитьМакет(текМакет.Имя);
// и т.д.
КонецЕсли;
КонецЕсли;
Показать
И еще, в типовой конфигурации есть функция
Можно там код посмотреть.
// Возвращает макет печатной формы по полному пути к макету.
ТабДок = УправлениеПечатью.МакетПечатнойФормы("ПолныйПутьКМакету");
// "Документ.<ИмяДокумента>.<ИмяМакета>"
// "Обработка.<ИмяОбработки>.<ИмяМакета>"
// "ОбщийМакет.<ИмяМакета>".
Можно там код посмотреть.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот