Расширение "WA_ЛК_Сотрудника_Дополнение"

В текущей версии ЗУП установлен режим совместимости 8.3.17, в нем нет возможности расширять типы типовых объектов.

Это необходимо для возможности подключения внешних печатных форм к объектам расширения (необходимо расширить для реквизитов Справочник.ДополнительныеОтчетыИОбработки ТЧ Назначение.ОбъектНазначения, Разделы.Раздел тип, добавив СправочникСсылка.ИдентификаторыОбъектовРасширений).

Т.к. на текущий момент данной возможности нет, то для подключения внешних печатных форм можно использовать поставляемое расширение.

Расширение предназначено для подключения внешних макетов печатных форм к объектам основного расширения. Создано с целью сохранения описанных индивидуальных для базы команд формирования ПФ при обновлении основного расширения.

Подключается в Настройках приложения.

На данный момент функционал подключения дополнительных печатных форм через расширение реализован для объекта Справочник.лксЗаявки, документов лксПрикреплениеКПрограммамСтрахования, лксИзменениеУсловийСтрахования, при необходимости возможны аналогичные доработки в другие объекты ЛКС.

Алгоритм создания новой печатной формы в расширении:

  • В общем модуле лксдУправлениеПечатью необходимо добавить новые команды печати по механизму БСП (аналогично тому, как если бы они добавлялись непосредственно в модуле менеджера объекта) с выполнением проверки на источник:

Функция ДобавитьКомандыПечати(КомандыПечати, ИмяИсточника) Экспорт Если ИмяИсточника = "Справочник.лксЗаявки" Тогда

КомандаПечати = КомандыПечати.Добавить();

КомандаПечати.МенеджерПечати = "Обработка.лксдМенеджерПечати";

КомандаПечати.Идентификатор = "ПФ_MXL_лксЗаявки_ДанныеЗаявки";

КомандаПечати.Представление = НСтр("ru = 'Данные заявки'");

КонецЕсли; КонецФункции // ДобавитьКомандыПечати()

  • В обработке лксдМенеджерПечати в модуле менеджера в процедуре Печать разместить код по формированию печатной формы:

ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПФ_MXL_лксЗаявки_ДанныеЗаявки");

Если ПечатнаяФорма <> Неопределено Тогда

ПечатнаяФорма.ТабличныйДокумент = ПечатьДанныеЗаявки(МассивОбъектов, ОбъектыПечати);

ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Данные заявки'");

ПечатнаяФорма.ПолныйПутьКМакету = "Обработка.лксдМенеджерПечати.ПФ_MXL_лксЗаявки_ДанныеЗаявки";

КонецЕсли;

  • Добавить в обработку лксдМенеджерПечати макет печатной формы:

В результате при подключении дополнительного расширения с новой печатной формой, она отражается и формируется из объекта справочника Заявки:

В поставляемом расширении в качестве примера уже есть код по формированию печатных форм в разных форматах (MXL, DOCX OfficeOpenXML, DOCX COM-объект). Можно брать данные процедуры за основу при разработке новых печатных форм:

Last updated