Добавление команд печати в конфигурации с БСП в 1С:Предприятие 8
Эта статья подойдет для любой конфигурации на основе БСП, так как использует возможности ее подсистемы «Печать»
В последних версия БСП реализация команд печати была существенно переработана.
Рассмотрим добавление команды печати в не типовой документ.
Возьмем наш документ. Добавим макет печатной формы.
Хочется, не прилагая больших усилий, добиться следующего результата: чтобы в каждой из двух форм этого документа в командной панели была кнопка-подменю Печать, в которой был бы добавленный пункт печати.
Откроем форму документа и создадим обработчик ПриСозданииНаСервере. Скопируем в модуль формы следующий код (если он там отсутствует):
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма) КонецПроцедуры &НаКлиенте Процедура Подключаемый_ВыполнитьКомандуПечати(Команда) УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект) КонецПроцедуры
Теперь откроем Модуль менеджера и скопируем туда следующий код или дополним уже существующие процедуры и функции:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "Акт"; КомандаПечати.Представление = "Дополнительный акт"; КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"; КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента"; КонецПроцедуры Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Акт") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Акт", "Акт", СформироватьАкт(МассивОбъектов),"Документ.Приказ.Акт"); КонецЕсли; КонецПроцедуры Функция СформироватьАкт(Ссылка) ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Акт"); //заполняем макет ТабДокумент.Вывести(Макет); Возврат ТабДокумент КонецФункции
Все готово, в форме документа у нас теперь программно будут добавляться кнопки печати. Чтобы они появились и в форме списка, проделайте с ней тоже (в Модуле менеджера уже ничего менять не надо). Единственное отличие в третьем параметре функции ВыполнитьПодключаемуюКомандуПечати: вместо Объект нужно написать Элементы.Список. Также у этого списка обязательно основной таблицей должен быть наш документ.
Результат всего этого выглядит так:
Форма документа
Форма списка
Универсальное окно печати
подробнее о подсистеме «Печать» на ИТС: https://its.1c.ru/db/bspdoc#content:219:hdoc
По БСП не мешало бы отдельный раздел сделать. Там много о чём стоит написать.