что не так написал в коде?) ошибка есть Процедура или функция с указанным именем не определена (ПолучитьФорму)

```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    ТабМакет = Новый ТабличныйДокумент;
    Печать(ТабМакет, ПараметрКоманды);
    КонецПроцедуры

    &НаСервере
    Процедура Печать(ТабМакет, СсылкаНаДокумент)
    тз = РегистрыСведений.ИсторияИзмененийТабДока.СрезПоследних(СсылкаНаДокумент.Дата, Новый Структура("Договор", СсылкаНаДокумент));
    Если не тз = Неопределено и тз.Количество() > 0 Тогда
    данные = тз.Получить(0).ХЗ.Получить();
    Если ТипЗнч(данные) = Тип("Структура") Тогда
    т = 0;
    Если данные.Свойство("Договор", т) Тогда
    ФормаПечДок = ПолучитьФорму("Документ.Договор.Форма.ФормаДляПечДок", Новый Структура("ПечДок, ИмяПечДок, СсылкаНаДок", т, "Договор", СсылкаНаДокумент));
    ФормаПечДок.Открыть();
    Возврат;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
```
---
```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    ТабМакет = Новый ТабличныйДокумент;
    т = Печать(ТабМакет, ПараметрКоманды);
    ФормаПечДок = ПолучитьФорму("Документ.Договор.Форма.ФормаДляПечДок", Новый Структура("ПечДок, ИмяПечДок, СсылкаНаДок", т, "Договор", ПараметрКоманды));
    ФормаПечДок.Открыть();

    КонецПроцедуры

    &НаСервере
    Функция Печать(ТабМакет, СсылкаНаДокумент)
    тз = РегистрыСведений.ИсторияИзмененийТабДока.СрезПоследних(СсылкаНаДокумент.Дата, Новый Структура("Договор", СсылкаНаДокумент));
    Если не тз = Неопределено и тз.Количество() > 0 Тогда
    данные = тз.Получить(0).ХЗ.Получить();
    Если ТипЗнч(данные) = Тип("Структура") Тогда
    т = 0;
    Если данные.Свойство("Договор", т) Тогда
    Возврат т;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецФункции
```
---
Глобальный контекст (Global context)
ПолучитьФорму (GetForm)

Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Вызов метода выполняет обращение к серверу.
---
понял что функция ПолучитьФорму работает на клиенте но как написать чтобы работал код?)
---
ПолучитьФорму вызывать с клиента.
Процедуру Печать() сделать функцией, возвращать с сервера на клиент структуру

```1c
    Новый Структура("ПечДок, ИмяПечДок, СсылкаНаДок", т, "Договор", СсылкаНаДокумент)
```
---
а можете написать полностью код а то не совсем понимаю)
---
а можете написать полностью кодЧто именно тебе не понятно?
---
как передать ПолучитьФорму на клиент поподробнее код нужен)
---
как передать ПолучитьФорму на клиентНеобходимо перенести вызов получения формы в процедуру с директивой компиляции "&НаКлиенте'". Необходимые данные для параметров открытия надо вернуть из функции с директивой компиляции "&НаСервереБезКонтекста". Попробуй.

Требованием "а напишите мне" ты делаешь себе только хуже .
Смайлики тут не помогут.
---
```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    ТабМакет = Новый ТабличныйДокумент;
    т = Печать(ТабМакет, ПараметрКоманды);
    ФормаПечДок = ПолучитьФорму("Документ.Договор.Форма.ФормаДляПечДок", Новый Структура("ПечДок, ИмяПечДок, СсылкаНаДок", т, "Договор", ПараметрКоманды));
    ФормаПечДок.Открыть();

    КонецПроцедуры

    &НаСервере
    Функция Печать(ТабМакет, СсылкаНаДокумент)
    тз = РегистрыСведений.ИсторияИзмененийТабДока.СрезПоследних(СсылкаНаДокумент.Дата, Новый Структура("Договор", СсылкаНаДокумент));
    Если не тз = Неопределено и тз.Количество() > 0 Тогда
    данные = тз.Получить(0).ХЗ.Получить();
    Если ТипЗнч(данные) = Тип("Структура") Тогда
    т = 0;
    Если данные.Свойство("Договор", т) Тогда
    Возврат т;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецФункции
```
---
супер только теперь нужно передать Макет чтобы сохранял значение табличного документа)
---
опиши подробнее что нужно. Табмакет зачем передавался, если он не заполняется? сдается мне, что не понимаете, что делаете.
---
просто нужно создать макет для заполнение данных из документа но при возникновение случая менял макет но сохранил значение табдока)
скрин
---
Сообщение было скрыто модератором.
---
на форму

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ПечДок = Параметры.ПечДок;
    ИмяПечДок = Параметры.ИмяПечДок;
    СсылкаНаДок = Параметры.СсылкаНаДок;
    Элементы.ПечДок.Заголовок = "форма "" + ИмяПечДок + "" от " + СсылкаНаДок;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ЗаписатьНаСервере(ПечДок, ИмяПечДок, СсылкаНаДок, Перезаписывать = Ложь)
    Набор = РегистрыСведений.ИсторияИзмененийТабДока.СоздатьНаборЗаписей();
    Набор.Отбор.Договор.Значение = СсылкаНаДок;
    Набор.Отбор.Договор.Использование = Истина;
    Набор.Отбор.Договор.ВидСравнения = ВидСравнения.Равно;
    Набор.Отбор.Период.Значение = СсылкаНаДок.Дата;
    Набор.Отбор.Период.Использование = Истина;
    Набор.Отбор.Период.ВидСравнения = ВидСравнения.Равно;
    Набор.Прочитать();
    Структура = 0;
    Если Набор.Количество() = 1 Тогда
    Структура = Набор.Получить(0).ХЗ.Получить();
    Если не ТипЗнч(Структура) = Тип("Структура") Тогда
    Структура = 0;
    КонецЕсли;
    КонецЕсли;
    Если Структура = 0 Тогда
    Структура = Новый Структура;
    КонецЕсли;
    СуществующийПД = 0;
    Если Структура.Свойство(ИмяПечДок, СуществующийПД) Тогда
    Если ТипЗнч(СуществующийПД) = Тип("ТабличныйДокумент") и не Перезаписывать Тогда
    Возврат 0;
    КонецЕсли;
    КонецЕсли;
    Структура.Вставить(ИмяПечДок, ПечДок);
    Набор.Очистить();
    Запись = Набор.Добавить();
    Запись.Договор = СсылкаНаДок;
    //Запись.Регистратор = СсылкаНаДок;
    Запись.Период = СсылкаНаДок.Дата;
    Запись.ХЗ = Новый ХранилищеЗначения(Структура);
    Набор.Записать(Истина);
    Возврат 1;
    КонецФункции

    &НаКлиенте
    Процедура Записать(Команда)
    Если ЗаписатьНаСервере(ПечДок, ИмяПечДок, СсылкаНаДок, Ложь) = 0 Тогда
    Если Вопрос("Уже имеется такая печатная форма документа. Хотите перезаписать?", РежимДиалогаВопрос.ДаНетОтмена) = КодВозвратаДиалога.Да Тогда
    Если не ЗаписатьНаСервере(ПечДок, ИмяПечДок, СсылкаНаДок, Истина) = 1 Тогда
    Предупреждение("Не удалось записать");
    Возврат
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
```
---
ну так вместо переменной "т" формируй или получай табдок