В модуле формы имеется следующий программный код:

Скрытый текст
```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт

    ВыполнитьКомандуНаСервере(ВладелецФормы.Объект.Ссылка);
    ВладелецФормы.ЭтаФорма.Прочитать();
    ПересчитатьСумму(ВладелецФормы);
    ОповеститьОбИзменении(Тип("ДокументСсылка.РеализацияТоваровУслуг"));

    ВывестиВОбщуюФормуПечатьДокументов();

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

В процедуре ВыполнитьКомандуНаСервере я создаю и заполняю таблицу значений. В процедуру ВывестиВОбщуюФормуПечатьДокументов мне необходимо данную таблицу передать.

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

    ОбластиОбъектов = Новый СписокЗначений;
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
    КонецПроцедуры

    &НаСервере
    Функция ВывестиВОбщуюФормуПечатьДокументовНаСервере()
    //Создаем табличный документ, выводим в него все, что нам необходимо.
    ТабДокумент = Новый ТабличныйДокумент;

    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОблСтрока = Макет.ПолучитьОбласть("ОбластьСтроки");

    //Здесь я буду заполнять переменные макета взяв информацию из ТЗ заполненной в Процедура ВыполнитьКомандуНаСервере(СсылкаНаДокумент)

    ТабДокумент.Вывести(Шапка);
    ТабДокумент.Вывести(ОблСтрока);
    Возврат ТабДокумент;
    КонецФункции
```
---
Вот, ТабДокумент на сервере же формируется, соответственно туда можно передать адрес временного хранилища, где хранится твоя ТЗ.
---
А зачем табдок на сервере формировать? Почитайте про работу клиент серверных вызовов. Вызовы сервера необходимо минимизировать.
---
Спасибо, с этим разобрался. Возник другой вопрос:

Скрытый текст
```1c
    Если ТаблицаСНедостаточнымКоличеством.Количество() > 0 Тогда
    ТабДокумент = ЭтаФорма.ТабДокументНедостатков;

    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОблСтрока = Макет.ПолучитьОбласть("ОбластьСтроки");

    Для Индекс = 0 по ТаблицаСНедостаточнымКоличеством.Количество() Цикл
    ОблСтрока.Номенклатура = ТаблицаСНедостаточнымКоличеством[Индекс].Номенклатура;
    КонецЦикла;

    ТабДокумент.Вывести(Шапка);
    ТабДокумент.Вывести(ОблСтрока);

    КонецЕсли;
```

Почему лезит ошибка: "Поле объекта не обнаружено (Номенклатура)", хотя данный параметр в "ОбластьСтроки" присутствует
---
Номенклатура
В области нет элемента Номенклатура. У области есть "Параметры", а в параметрах скорее всего будет номенклатура, т.е. ОблСтрока.Параметры.Номенклатура
И вы уверены, что ругается на табдок, а не на ТаблицаСНедостаточнымКоличеством?
---
Добавление области "Параметры" помогло, спасибо. До этого делал внешние печатные формы и там не приходилось указывать область параметры
---
Теперь другая проблема: "Печатная форма не доступна" Что делать ?
---
Макет (Template)
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер).
---
Так ошибка "Печатная форма недоступна" лезит когда я меняю параметры области. В случае, если я не меняю параметры, то область выводится и нет данной ошибки.
---
ну попробуйте на сервере печатную форму делать
---
Весь код процедуры ВывестиВОбщуюФормуПечатьДокументов() выполняется на клиенте ? Если нет то предлагаю записать поместить в хранилище таблицу значений, и потом на серверной части этой процедуры по адресу получить эту таблицу