Last updated
Last updated
В текущей версии ЗУП установлен режим совместимости 8.3.17, в нем нет возможности расширять типы типовых объектов.
Это необходимо для возможности подключения внешних печатных форм к объектам расширения (необходимо расширить для реквизитов Справочник.ДополнительныеОтчетыИОбработки ТЧ Назначение.ОбъектНазначения, Разделы.Раздел тип, добавив СправочникСсылка.ИдентификаторыОбъектовРасширений).
Т.к. на текущий момент данной возможности нет, то для подключения внешних печатных форм можно использовать поставляемое расширение.
Расширение предназначено для подключения внешних макетов печатных форм к объектам основного расширения. Создано с целью сохранения описанных индивидуальных для базы команд формирования ПФ при обновлении основного расширения.
Подключается в
На данный момент функционал подключения дополнительных печатных форм через расширение реализован для объекта Справочник.лксЗаявки, документов лксПрикреплениеКПрограммамСтрахования, лксИзменениеУсловийСтрахования, при необходимости возможны аналогичные доработки в другие объекты ЛКС.
В общем модуле лксдУправлениеПечатью необходимо добавить новые команды печати по механизму БСП (аналогично тому, как если бы они добавлялись непосредственно в модуле менеджера объекта) с выполнением проверки на источник:
Функция ДобавитьКомандыПечати(КомандыПечати, ИмяИсточника) Экспорт Если ИмяИсточника = "Справочник.лксЗаявки" Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Обработка.лксдМенеджерПечати";
КомандаПечати.Идентификатор = "ПФ_MXL_лксЗаявки_ДанныеЗаявки";
КомандаПечати.Представление = НСтр("ru = 'Данные заявки'");
КонецЕсли; КонецФункции // ДобавитьКомандыПечати()
В обработке лксдМенеджерПечати в модуле менеджера в процедуре Печать разместить код по формированию печатной формы:
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПФ_MXL_лксЗаявки_ДанныеЗаявки");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = ПечатьДанныеЗаявки(МассивОбъектов, ОбъектыПечати);
ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Данные заявки'");
ПечатнаяФорма.ПолныйПутьКМакету = "Обработка.лксдМенеджерПечати.ПФ_MXL_лксЗаявки_ДанныеЗаявки";
КонецЕсли;
Добавить в обработку лксдМенеджерПечати макет печатной формы:
В результате при подключении дополнительного расширения с новой печатной формой, она отражается и формируется из объекта справочника Заявки:
В поставляемом расширении в качестве примера уже есть код по формированию печатных форм в разных форматах (MXL, DOCX OfficeOpenXML, DOCX COM-объект). Можно брать данные процедуры за основу при разработке новых печатных форм: