Top.Mail.Ru
онлайн-митап
19 декабря в 17:00 МСК
Матрица компетенций: как инструмент для развития разработчика

Добавление команд печати в конфигурации с БСП в 1С:Предприятие 8

Эта статья подойдет для любой конфигурации на основе БСП, так как использует возможности ее подсистемы «Печать»
В последних версия БСП реализация команд печати была существенно переработана.
Рассмотрим добавление команды печати в не типовой документ.

Возьмем наш документ. Добавим макет печатной формы.


Хочется, не прилагая больших усилий, добиться следующего результата: чтобы в каждой из двух форм этого документа в командной панели была кнопка-подменю Печать, в которой был бы добавленный пункт печати.

     

Откроем форму документа и создадим обработчик ПриСозданииНаСервере. Скопируем в модуль формы следующий код (если он там отсутствует):

&НаСервере 
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
		
	УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма)	
	
КонецПроцедуры 

&НаКлиенте 
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
	
	УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект)
	
КонецПроцедуры

Теперь откроем Модуль менеджера и скопируем туда следующий код или дополним уже существующие процедуры и функции:

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт 

	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "Акт";
	КомандаПечати.Представление = "Дополнительный акт";
	КомандаПечати.Обработчик    = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
	КомандаПечати.СписокФорм    = "ФормаСписка,ФормаДокумента";
	
КонецПроцедуры 

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 		
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Акт") Тогда
 		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Акт", "Акт", 
			СформироватьАкт(МассивОбъектов),"Документ.Приказ.Акт");
	КонецЕсли;
КонецПроцедуры 

Функция  СформироватьАкт(Ссылка)

	ТабДокумент = Новый ТабличныйДокумент; 
	Макет = ПолучитьМакет("Акт");
	//заполняем макет
	ТабДокумент.Вывести(Макет);
	Возврат ТабДокумент 
КонецФункции

Все готово, в форме документа у нас теперь программно будут добавляться кнопки печати. Чтобы они появились и в форме списка, проделайте с ней тоже (в Модуле менеджера уже ничего менять не надо). Единственное отличие в третьем параметре функции ВыполнитьПодключаемуюКомандуПечати: вместо Объект нужно написать Элементы.Список. Также у этого списка обязательно основной таблицей должен быть наш документ.
Результат всего этого выглядит так:

Форма документа


Форма списка


Универсальное окно печати


подробнее о подсистеме «Печать» на ИТС:  https://its.1c.ru/db/bspdoc#content:219:hdoc

Comments

This post currently has one response

Добавить комментарий

Sidebar