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