Предыстория:
Пишем свою конфигурацию с внедрением "БСП" и вот дошло дело до реализации механизма печати. Была найдена статья на Инфостарте //infostart.ru/public/674880/ но, как оказалось, к "БСП" (3.1.1.151) она не подходит, поиски в интернете тоже не дали нужного результата.
Реализация команды печати "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)
Пример: нужно на форме документа "Счет" реализовать печать документа.
1. На форме документа в командной панели создаем "ГруппуПечать"
В форме документа создаем процедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтаФорма);
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
2. В Общем модули "УправлениеПечатьюПереопределяемый"
// Определяет объекты конфигурации, в модулях менеджеров которых размещена процедура ДобавитьКомандыПечати,
// формирующая список команд печати, предоставляемых этим объектом.
// Синтаксис процедуры ДобавитьКомандыПечати см. в документации к подсистеме.
//
// Параметры:
// СписокОбъектов - Массив - менеджеры объектов с процедурой ДобавитьКомандыПечати.
//
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
СписокОбъектов.Добавить(Документы.Счет);
КонецПроцедуры
3. В документе Модуль менеджера
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Счёт";
КомандаПечати.Представление = НСтр("ru = 'Счёт'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецПроцедуры
// Формирует печатные формы.
//
// Параметры:
// МассивОбъектов - Массив - ссылки на объекты, которые нужно распечатать;
// ПараметрыПечати - Структура - дополнительные настройки печати;
// КоллекцияПечатныхФорм - ТаблицаЗначений - сформированные табличные документы (выходной параметр).
// ОбъектыПечати - СписокЗначений - значение - ссылка на объект;
// представление - имя области в которой был выведен объект (выходной
// параметр);
// ПараметрыВывода - Структура - дополнительные параметры сформированных табличных документов (выходной
// параметр).
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// Печать накладной на перемещение.
НужноПечататьМакет = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Счёт");
Если НужноПечататьМакет Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Счёт",
НСтр("ru = 'Счёт'"),
СформироватьПечатнуюФормуСчета(МассивОбъектов, ОбъектыПечати),
,
"Документ.Счёт.ПФ_MXL_МакетСчет");
КонецЕсли;
КонецПроцедуры
И сама функция в Модуле менеджера где формируется печатная форма
Функция СформироватьПечатнуюФормуСчета(МассивОбъектов, ОбъектыПечати) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Счет.Ссылка КАК Ссылка,
| Счет.ВерсияДанных КАК ВерсияДанных,
| Счет.ПометкаУдаления КАК ПометкаУдаления,
| Счет.Номер КАК Номер,
| Счет.Дата КАК Дата,
| Счет.Проведен КАК Проведен,
| Счет.Статус КАК Статус,
| Счет.Отдел КАК Отдел,
| Счет.Сделка КАК Сделка,
| Счет.Партнер КАК Партнер,
| Счет.СуммаСчета КАК СуммаСчета,
| Счет.СуммаПеревода КАК СуммаПеревода,
| Счет.ПервыйСчет КАК ПервыйСчет,
| Счет.БизнесРегион КАК БизнесРегион,
| Счет.Магазин КАК Магазин,
| Счет.Представление КАК Представление,
| Счет.МоментВремени КАК МоментВремени
|ИЗ
| Документ.Счет КАК Счет
|ГДЕ
| Счет.Ссылка В (&СписокДокументов)";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("СписокДокументов", МассивОбъектов);
Результат = Запрос.Выполнить().Выбрать();
КонецФункции
В итоге получится
Может, что-то упустил, может, что-то делаю не правильно)))