Получить путь к макету внешней обработки

1. 23.02.21 22:52 Сейчас в теме
Доброго дня. Создал внешнюю обработку для печать Заказа в УТ-11, но важно, чтобы использовался именно макет моей обработки, а не существующий (он будет выводиться на печать с корректировкой по условию). Для этого требуется в модуле обработки прописать путь к макету для функции в общем модуле:

Функция МакетПечатнойФормы(ПутьКМакету) Экспорт
	ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Макет ""%1"" не найден. Операция прервана.'"), ПутьКМакету);
	
	ЧастиПути = СтрРазделить(ПутьКМакету, ".", Истина);
	Если ЧастиПути.Количество() <> 2 И ЧастиПути.Количество() <> 3 Тогда
		ВызватьИсключение ТекстОшибки;
	КонецЕсли;
	
	ИмяМакета = ЧастиПути[ЧастиПути.ВГраница()];
	ЧастиПути.Удалить(ЧастиПути.ВГраница());
	ИмяОбъекта = СтрСоединить(ЧастиПути, ".");
	
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	ПользовательскиеМакетыПечати.Макет КАК Макет,
	|	ПользовательскиеМакетыПечати.ИмяМакета КАК ИмяМакета
                             ...
Показать


Пример пути к существующему макету:"Обработка.ПечатьЗаказовНаТоварыУслуги.ПФ_MXL_ЗаказКлиента"


Пробовал :

1. ЭтотОбъект.ПолучитьМакет("Имя_Макета") - выдает только табличный документ:

{ОбщийМодуль.УправлениеПечатью.Модуль(629)}: Макет "ТабличныйДокумент" не найден. Операция прервана.
ВызватьИсключение ТекстОшибки;




2. ЭтотОбъект.Метаданные().Макеты.Имя_Макета.ПолноеИмя() - хороший вариант , но не прохожу по условию ф-ции:

{ОбщийМодуль.УправлениеПечатью.Модуль(629)}: Макет "" не найден. Операция прервана.
ВызватьИсключение ТекстОшибки;


Может быть, кто-нибудь сталкивался с похожим вопросом? Буду признателен за любые подсказки)
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 24.02.21 02:17 Сейчас в теме
(1)
Функция МакетПечатнойФормы(ПутьКМакету) Экспорт

она же возвращает табличный документ в итоге, может напрямую его использовать?
или в регистр ПользовательскиеМакетыПечати добавить свой макет через обработку
3. PhoenixAOD 60 24.02.21 02:36 Сейчас в теме
(1)
ПолучитьМакет("Имя_Макета")
пропробуй просто "макет = ПолучитьМакет("ТвойМакет");
5. the1 791 24.02.21 09:01 Сейчас в теме
(1)
Для этого требуется в модуле обработки прописать путь к макету для функции в общем модуле
Не требуется. Пиши в модуле обработки ПолучитьМакет(ИмяТвоегоМакетаИзВнешнейОбработки)
6. user1520693 24.02.21 09:58 Сейчас в теме
(5)
ПолучитьМакет(ИмяТвоегоМакетаИзВнешнейОбработки)


не взлетело(
я получаю тот же "табличный документ" вместо "пути" и ошибку:

{ОбщийМодуль.УправлениеПечатью.Модуль(659)}: Макет "ТабличныйДокумент" не существует. Операция прервана.
ВызватьИсключение ТекстОшибки;
7. the1 791 24.02.21 10:10 Сейчас в теме
(6) Зачем тебе путь, не возьму в толк? Получаешь ТабДок и заполняешь его в модуле обработки.
8. user1520693 24.02.21 10:43 Сейчас в теме
(7) по условию нужно сделать внешнюю печатную форму не заново, а на основе существующей
9. the1 791 24.02.21 10:46 Сейчас в теме
(8) В любом случае это будет внешняя обработка, в ее модуле будет заполнения табдока. Вот этот табдок и получаем методом ПолучитьМакет()
4. stein13 6 24.02.21 08:45 Сейчас в теме
Обработка = РеквизитФормыВЗначение("Объект");
Макет = Обработка.ПолучитьМакет(<ИмяМакета>);
Оставьте свое сообщение
Вопросы с вознаграждением