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

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

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

Но 1с выдаёт ошибку: ошибка отображения типов отсутствует отображение для типа "форма клиентского приложения".
Если я на клиенте создаю табличный документ и его вызываю по функции показать, то все ок. Подскажите, как мне вывести на табличный документ Мой макет и уже с этим пакетом показать пользователю табличный докумет?
---
Нашёл как это сделать.
По скольку я макет сделал в обработке, то и из неё же мне надо было достать. это лечилось вот так:
ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
Всё же всем спасибо, кто отвечал.
---
ЭтотОбъект доступен и там и там безо всяких передач. Не надо пытаться передавать форму саму в себя, да еще и в туже самую системную переменную.
---
ЭтотОбъект = РеквизитФормыВЗначение("Объект");
это работает только на сервере, при чём эта штука нужно, что бы получить макет.
---
Это о чем?
---
Ну, простейшим примером вывода будет:

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

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

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

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

Если вот так сделать, остаётся ошибка: ошибка отображения типов отсутствует отображение для типа "форма клиентского приложения".
---
Если вот так сделать, остаётся ошибка: ошибка отображения типов отсутствует отображение для типа "форма клиентского приложения". Перечитай (2)
---
Ладно, давай немного подробнее

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

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

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

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

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

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

Ну, а вообще я бы тоже советовал перечитать и понять (2)
---
Почитайте еще тут https://infostart.ru/1c/tools/258450/
---
Нашёл как это сделать.
По скольку я макет сделал в обработке, то и из неё же мне надо было достать. это лечилось вот так:
ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
Всё же всем спасибо, кто отвечал.