Печать документа через БСП

1. Kroll17 02.05.24 20:03 Сейчас в теме
Всем доброго времени суток, возникла проблема, создал документ Бригада, к нему добавил макет. В общем модуле УправлениеПечатьюПереопределяемый в процедуру ПриОпределенииОбъектовСКомандамиПечати добавил свой документ. В модуле менеджера вывел следующие процедуры
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	// Счет на оплату
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ПФ_MXL_ПриказНаСозданиеБригады";                     
	КомандаПечати.Представление = НСтр("ru = 'Приказ на создание бригады'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; 

КонецПроцедуры

#КонецОбласти 

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


В модулях форм списков и документов добавил все нужные процедуры по выполнению команд и обработчиков, однако, при нажатие на кнопку печать, по отладке, он не заходит в процедуру Печать, как результат печатная форма говорит, что печатная форма не доступна

Возможно, дело в том, что процедура устарела, однако, в документе Приобретения, в модуле менеджера реализовано точно также, но там тоже не заходит в процедуру печати.

Подскажите, пожалуйста, где можно почитать про новую процедуру ПриОпределенииНастроекПечати или я что-то не так делаю с этой функцией

Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 46 03.05.24 05:54 Сейчас в теме
(1)
Подскажите, пожалуйста, где можно почитать про новую процедуру ПриОпределенииНастроекПечати или я что-то не так делаю с этой функцией


В демо БСП есть пример.

Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт
	
	// _Демо начало примера
	Настройки.ОбъектыПечати.Добавить(Справочники._ДемоКонтактныеЛицаПартнеров);
	Настройки.ОбъектыПечати.Добавить(Справочники._ДемоКонтрагенты);
	Настройки.ОбъектыПечати.Добавить(Справочники._ДемоОрганизации);
	Настройки.ОбъектыПечати.Добавить(Справочники._ДемоПартнеры);
	Настройки.ОбъектыПечати.Добавить(Справочники._ДемоФизическиеЛица);
	Настройки.ОбъектыПечати.Добавить(Справочники._ДемоНоменклатура);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоОприходованиеТоваров);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоОтпускаСотрудников);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоПеремещениеТоваров);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоРеализацияТоваров);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоСписаниеТоваров);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоСчетНаОплатуПокупателю);
	Настройки.ОбъектыПечати.Добавить(Документы._ДемоРасходныйКассовыйОрдер);
	// _Демо конец примера
	
КонецПроцедуры
Показать


Соответственно вам нужно добавить что-то типа

Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт
	
	Настройки.ОбъектыПечати.Добавить(Документы.Бригада);
	
КонецПроцедуры
3. Kroll17 03.05.24 10:03 Сейчас в теме
(2)
(2)добавить понятно как, а какие процедуры нужно реализовывать в менеджере документа?
4. laperuz 46 03.05.24 12:47 Сейчас в теме
(3)Оттуда же.

// СтандартныеПодсистемы.ПодключаемыеКоманды

// Переопределяет настройки печати для объекта.
//
// Параметры:
//  Настройки - см. УправлениеПечатью.НастройкиПечатиОбъекта.
//
Процедура ПриОпределенииНастроекПечати(Настройки) Экспорт
	
	Настройки.ПриДобавленииКомандПечати = Истина;
	
КонецПроцедуры

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ПФ_MXL_Т6а";
	КомандаПечати.Представление = НСтр("ru = 'Приказ о предоставлении отпуска работникам (Т-6а)'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;

КонецПроцедуры

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

// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот