Программно получить печатную форму документа БП 3.0 (БСП)
Каждый раз это настоящий квест! Потому что система БСП — это что-то анти-человеческое.
Приходится опираться не на логику, а брать в руки отладчик и искать точку, к которой можно привязаться:

Мне нужно было получить печатную форму для трех типов документов, поэтому я вывел в табло название переменных и записал себе их значения.

В итоге функция для программной печати документа получилась такой:
Функция ПолучитьПечатнуюФормуДокумента(ТекДокумент) Экспорт
МД = Метаданные.НайтиПоТипу(ТипЗнч(ТекДокумент));
ТекВид = МД.Имя;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(ТекДокумент);
ПараметрыПечати = Новый Структура(); //»ДополнитьКомплектВнешнимиПечатнымиФормами» = ложь
ДопустимыеТипыОбъектовПечати = Неопределено;
Если ТекВид = «СчетНаОплатуПокупателю» Тогда
ИмяМенеджераПечати = «Обработка.ПечатьСчетаНаОплату»;
ИменаМакетов = «СчетЗаказ»;
ИначеЕсли ТекВид = «АктСверкиВзаиморасчетов» Тогда
ИмяМенеджераПечати = «Документ.АктСверкиВзаиморасчетов»;
ИменаМакетов = «АктСверки»;
ИначеЕсли ТекВид = «РеализацияТоваровУслуг» Тогда
ИмяМенеджераПечати = «Документ.РеализацияТоваровУслуг»;
ИменаМакетов = «Накладная»;
//ИменаМакетов = «Акт»;//Для акта
Иначе
Возврат Неопределено;
КонецЕсли;
ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);
Возврат ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент;
КонецФункции
