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

1. user1520693 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 62 24.02.21 02:36 Сейчас в теме
(1)
ПолучитьМакет("Имя_Макета")
пропробуй просто "макет = ПолучитьМакет("ТвойМакет");
5. ixijixi 1775 24.02.21 09:01 Сейчас в теме
(1)
Для этого требуется в модуле обработки прописать путь к макету для функции в общем модуле
Не требуется. Пиши в модуле обработки ПолучитьМакет(ИмяТвоегоМакетаИзВнешнейОбработки)
6. user1520693 24.02.21 09:58 Сейчас в теме
(5)
ПолучитьМакет(ИмяТвоегоМакетаИзВнешнейОбработки)


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

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

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день