Вывод макета перед печатью для редатирования

1. FireFox123456 18.02.25 08:57 Сейчас в теме
Всем знающим привет. Я сделал внешнюю обработку в которой есть какая-то условная форма и кнопка. Мне надо по нажатию кнопки, вывести макет, который сделан в этой же обработке, где человек уже заполнит все пустые поля. Пытаюсь исполнить на кнопке следующий код:

&НаКлиенте
Процедура ТумбаЮмба (Команда)
 Перем ТабДок; 
 Перем Область; 
 ТабДок = Новый ТабличныйДокумент;
 ПечатьНаСервере(ЭтотОбъект, ТабДок, Область);
  ТабДок.Показать(); 
 КонецПроцедуры


&НаСервере
Процедура ПечатьНаСервере (ЭтотОбъект, ТабДок, Область)
	ЭтотОбъект = РеквизитФормыВЗначение("Объект");
	Макет = ЭтотОбъект.ПолучитьМакет ("ПримерПечатнойФормы");
	Область = Макет.ПолучитьОбласть("Шапка"); 
	ТабДок.Вывести(Область);
	КонецПроцедуры
Показать

Но 1с выдаёт ошибку: ошибка отображения типов отсутствует отображение для типа "форма клиентского приложения".
Если я на клиенте создаю табличный документ и его вызываю по функции показать, то все ок. Подскажите, как мне вывести на табличный документ Мой макет и уже с этим пакетом показать пользователю табличный докумет?
Найденные решения
10. FireFox123456 18.02.25 11:21 Сейчас в теме
Нашёл как это сделать.
По скольку я макет сделал в обработке, то и из неё же мне надо было достать. это лечилось вот так:
ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
Всё же всем спасибо, кто отвечал.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107184 18.02.25 09:01 Сейчас в теме
ЭтотОбъект доступен и там и там безо всяких передач. Не надо пытаться передавать форму саму в себя, да еще и в туже самую системную переменную.
4. FireFox123456 18.02.25 09:12 Сейчас в теме
(2) ЭтотОбъект = РеквизитФормыВЗначение("Объект");
это работает только на сервере, при чём эта штука нужно, что бы получить макет.
6. user2107184 18.02.25 09:46 Сейчас в теме
3. user1999691 18.02.25 09:07 Сейчас в теме
Ну, простейшим примером вывода будет:

&НаСервере
Функция ПечатьНаСервере ()
//Крутое формирование табдока

ТабДок.Вывести(Область);
Возврат ТабДок;
КонецФункции

&НаКлиенте
Процедура ТумбаЮмба (Команда)
ТабДок = ПечатьНаСервере();
ТабДок.Показать();
КонецПроцедуры
Показать
5. FireFox123456 18.02.25 09:18 Сейчас в теме
(3)
&НаКлиенте
Процедура ТумбаЮмба (Команда)
 Перем ТабДок; 
 Перем Область;
ТабДок = ПечатьНаСервере(ЭтотОбъект);
 ТабДок.Показать(); 
 КонецПроцедуры


&НаСервере
Функция  ПечатьНаСервере (ЭтотОбъект) 
	ТабДок = Новый ТабличныйДокумент;
	ЭтотОбъект = РеквизитФормыВЗначение("Объект");
	Макет = ЭтотОбъект.ПолучитьМакет ("ПримерПечатнойФормы");
	Область = Макет.ПолучитьОбласть("Шапка"); 
	ТабДок.Вывести(Область);
	Возврат ТабДок;
	КонецФункции
Показать

Если вот так сделать, остаётся ошибка: ошибка отображения типов отсутствует отображение для типа "форма клиентского приложения".
7. user2107184 18.02.25 09:46 Сейчас в теме
(5)
Если вот так сделать, остаётся ошибка: ошибка отображения типов отсутствует отображение для типа "форма клиентского приложения".
Перечитай (2)
8. user1999691 18.02.25 10:22 Сейчас в теме
(5) Ладно, давай немного подробнее

&НаСервере
Функция ПечатьНаСервере ()
ТабДок = Новый ТабличныйДокумент;	
Макет = Документы.ТвойДокумент.ПолучитьМакет ("ПримерПечатнойФормы");

//ЕСЛИ ТРЕБУЕТСЯ - Крутое получение данных для заполнения (Например - запрос)

Область = Макет.ПолучитьОбласть("Шапка");

//ЕСЛИ ТРЕБУЕТСЯ - Крутое заполнение параметров области через Область.Параметры.Названиепараметра (например - через выборку запроса)

ТабДок.Вывести(Область);
Возврат ТабДок;
КонецФункции

&НаКлиенте
Процедура ТумбаЮмба (Команда)
ТабДок = ПечатьНаСервере();
ТабДок.Показать();
КонецПроцедуры
Показать


Ну, а вообще я бы тоже советовал перечитать и понять (2)
9. Bukaska 147 18.02.25 10:37 Сейчас в теме
10. FireFox123456 18.02.25 11:21 Сейчас в теме
Нашёл как это сделать.
По скольку я макет сделал в обработке, то и из неё же мне надо было достать. это лечилось вот так:
ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
Всё же всем спасибо, кто отвечал.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот