Печатная форма на СКД. Как добавить в подсистему печати.
Здравствуйте, есть УТ 11.3 "передоделанная" (версия БСП - 2.3.6.92), с множеством переделанных документов, для которых часто требуется делать печатные формы.
К примеру, есть Документ подключенный к подсистеме печати :
На форме (Документа, Списка): ПодменюПечать (вид - Подменю)
В модуле формы:
В модуле менеджера (стандартные процедуры и т.д)
т.е. в этом случае, можно без проблем добавить внешнюю печатную форму, и если будет корректное СведенияОВнешнейОбработке то всё она появляется в меню Печати.
У данного документа есть Макет = СКД, что я делаю на данном этапе:
КнопкаНаФорме - Команда - Команда:
В модуле менеджера документа:
ВОПРОС, как это всё встроить в подсистему печати!??
К примеру, есть Документ подключенный к подсистеме печати :
На форме (Документа, Списка): ПодменюПечать (вид - Подменю)
В модуле формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Печать
УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, Элементы.ПодменюПечать);
// Конец СтандартныеПодсистемы.Печать
КонецПроцедуры
Показать
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма,Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
ПоказатьВ модуле менеджера (стандартные процедуры и т.д)
т.е. в этом случае, можно без проблем добавить внешнюю печатную форму, и если будет корректное СведенияОВнешнейОбработке то всё она появляется в меню Печати.
У данного документа есть Макет = СКД, что я делаю на данном этапе:
КнопкаНаФорме - Команда - Команда:
&НаКлиенте
Процедура ПечатьСКД(Команда) Экспорт
Если ПроверкаВозможностиПечати() Тогда
Предупреждение("Документ нужно провести!", 60);
Возврат
КонецЕсли;
ТабДок = ПечатьНаФормеСКД();
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет");
ПечатнаяФорма.СинонимМакета = "Макет";
ПечатнаяФорма.ТабличныйДокумент = ТабДок;
ПечатнаяФорма.ИмяФайлаПечатнойФормы = "Макет";
ОбластиОбъектов = Новый СписокЗначений;
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
КонецПроцедуры
Показать
&НаСервере
Функция ПечатьНаФормеСКД()
Возврат Документы.ядПремированиеМенеджеровПоПродажам.ПечатьДва(Объект.Ссылка);
КонецФункции
В модуле менеджера документа:
Функция ПечатьДва(Документ) Экспорт //Получаем макет СКД и возвращаем Табличный документ
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.ОтображатьСетку = Ложь;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_WB";
Макет = Документы.ядПремированиеМенеджеровПоПродажам.ПолучитьМакет("Макет");
//Создаем компановщик настроек
КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Макет));
КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);
Настройки = КомпоновщикНастроекКомпоновкиДанных.Настройки;
//Установим значение параметров.
ПарамДокумент = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Документ"));
ПарамДокумент.Значение = Документ;
ПарамДокумент.Использование = Истина;
ПарамОрганизация = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Организация"));
ПарамОрганизация.Значение = Документ.Организация;
ПарамОрганизация.Использование = Истина;
ПарамДатаНачала = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНачала"));
ПарамДатаНачала.Значение = НачалоДня(Документ.РасчетныйПериодДатаНачала);
ПарамДатаНачала.Использование = Истина;
ПарамДатаОкончания = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаОкончания"));
ПарамДатаОкончания.Значение = КонецДня(Документ.РасчетныйПериодДатаОкончания);
ПарамДатаОкончания.Использование = Истина;
//Подготовим макет к созданию отчета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Макет, Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
//Выводим данные в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
//Вернем табличный документ для дальнейшего вывода
Возврат ТабличныйДокумент;
КонецФункции
ПоказатьВОПРОС, как это всё встроить в подсистему печати!??
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот