Программно получить печатную форму документа БП 3.0 (БСП)

Каждый раз это настоящий квест! Потому что система БСП — это что-то анти-человеческое.

Приходится опираться не на логику, а брать в руки отладчик и искать точку, к которой можно привязаться:

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

В итоге функция для программной печати документа получилась такой:

Функция ПолучитьПечатнуюФормуДокумента(ТекДокумент) Экспорт
   
МД = Метаданные.НайтиПоТипу(ТипЗнч(ТекДокумент));
   
ТекВид = МД.Имя;

    МассивОбъектов = Новый Массив();
   
МассивОбъектов.Добавить(ТекДокумент);
   
ПараметрыПечати = Новый Структура(); //»ДополнитьКомплектВнешнимиПечатнымиФормами» = ложь
   
ДопустимыеТипыОбъектовПечати = Неопределено;

    Если ТекВид = «СчетНаОплатуПокупателю» Тогда
       
ИмяМенеджераПечати = «Обработка.ПечатьСчетаНаОплату»;
       
ИменаМакетов = «СчетЗаказ»;
    ИначеЕсли
ТекВид = «АктСверкиВзаиморасчетов» Тогда
       
ИмяМенеджераПечати = «Документ.АктСверкиВзаиморасчетов»;
       
ИменаМакетов = «АктСверки»;
    ИначеЕсли
ТекВид = «РеализацияТоваровУслуг» Тогда
       
ИмяМенеджераПечати = «Документ.РеализацияТоваровУслуг»;
       
ИменаМакетов = «Накладная»;
       
//ИменаМакетов = «Акт»;//Для акта
   
Иначе
        Возврат Неопределено;
    КонецЕсли;

    ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);

    Возврат ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент;
КонецФункции