|
создание внешней печатной формы на основе Типовой из ЗУП 3.1 | ☑ | ||
---|---|---|---|---|
0
Dapuk
10.06.19
✎
09:13
|
Добрый день, уважаемые коллеги!
Документ "Увольнение списком", пф "Приказ об увольнении". Раньше писал внешние пф на основе типовой, а сейчас какая то хрень, не могу догнать как это все работает. В модуле объекта и в модуле менеджера документа есть процедура "Печать", но в ней нет желаемого, т.е. УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(...), команда печати добавляется программно. КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Обработчик = "ЗарплатаКадрыКлиент.ВыполнитьКомандуПечати"; КомандаПечати.МенеджерПечати = "Отчет.ПечатнаяФормаТ8а"; КомандаПечати.Идентификатор = "ПФ_MXL_Т8а"; КомандаПечати.Представление = НСтр("ru = 'Приказ об увольнении (Т-8а)'"); КомандаПечати.Порядок = 10; КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; Дальше проходим по нашему отчету, т.е. Отчет.ПечатнаяФормаТ8а и прохожу в Модуль Менеджера, процедура Печать. ЗарплатаКадрыОтчеты.ВывестиВКоллекциюПечатнуюФорму("Отчет.ПечатнаяФормаТ8а", МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); Проходим в общий модуль, там вот это. Процедура ВывестиВКоллекциюПечатнуюФорму(ИмяОтчета, МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, ВнешниеНаборыДанных = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт ВариантыОтчетовПечатныхФорм = МакетыВариантовОтчетовПечатныхФорм(); Для Каждого ОписаниеНастраиваемойФормы Из ВариантыОтчетовПечатныхФорм Цикл ПутьКВариантуОтчета = ОписаниеНастраиваемойФормы.Ключ; Если СтрНайти(ПутьКВариантуОтчета, ИмяОтчета) = 1 Тогда ПутьКМакетуПечатнойФормы = ОписаниеНастраиваемойФормы.Значение; ИмяМакетаПечатнойФормы = ИмяМакетаИзПутиКМакетуПечатнойФормы(ПутьКМакетуПечатнойФормы); Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, ИмяМакетаПечатнойФормы) Тогда ДокументРезультат = Новый ТабличныйДокумент; КлючВарианта = КлючВариантаИзПутиКВарианту(ПутьКВариантуОтчета); Если ВРег(Лев(ПутьКМакетуПечатнойФормы, 11)) = ВРег("ОбщийМакет.") Тогда ПредставлениеПечатнойФормы = Метаданные.ОбщиеМакеты[ИмяМакетаПечатнойФормы].Синоним; Иначе ПредставлениеПечатнойФормы = Метаданные.НайтиПоПолномуИмени(ИмяОтчета).Макеты[ИмяМакетаПечатнойФормы].Синоним; КонецЕсли; ОбъектОтчета = ОбщегоНазначения.ОбъектПоПолномуИмени(ИмяОтчета); НастройкиОтчетаКД = Неопределено; ПользовательскиеНастройкиКД = Неопределено; ИнициализироватьНастройкиОтчета(ОбъектОтчета, "", КлючВарианта, НастройкиОтчетаКД, ПользовательскиеНастройкиКД); Если НастройкиОтчетаКД = Неопределено Тогда НастройкиОтчетаКД = ОбъектОтчета.СхемаКомпоновкиДанных.ВариантыНастроек[КлючВарианта].Настройки; КонецЕсли; ОбъектОтчета.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчетаКД); Если ТипЗнч(ПользовательскиеНастройкиКД) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда ОбъектОтчета.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ПользовательскиеНастройкиКД); КонецЕсли; УстановитьПараметрОтбора(ОбъектОтчета, МассивОбъектов); РезультатКомпоновки = РезультатКомпоновкиМакетаПечатнойФормы(ОбъектОтчета, , , ВнешниеНаборыДанных, ДополнительныеПараметры); МенеджерОтчета = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОтчета); МенеджерОтчета.Сформировать(ДокументРезультат, РезультатКомпоновки, ОбъектыПечати); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, ИмяМакетаПечатнойФормы, ПредставлениеПечатнойФормы, ДокументРезультат,,); Прервать; КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры Вопрос, как доработать наш отчет? Отчет "ПечатнаяФормаТ8а" формируется через СКД. Есть у кого нибудь опыт преобразования ВывестиВКоллекциюПечатнуюФорму в УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(...)? |
|||
1
ildary
10.06.19
✎
10:00
|
(0) советую попробовать добавлять отчеты через расширение - теперь это рекомендуемый 1С-ом способ и оказалось, что не такой трудоемкий.
|
|||
2
Фрэнки
10.06.19
✎
10:08
|
Какая конкретная цель?
Отчет "ПечатнаяФормаТ8а" формируется через СКД - этот пример одного из отчетов ЗУП, которые слеплен по технологии последних БСП Сейчас действительно возникла ситуация в ЗУП, что печатные формы, тем более , когда можно перехватить результирующий табличный документ, проще сделать в расширении, чем прежними способами. |
|||
3
Dapuk
10.06.19
✎
12:57
|
(1) (2) спасибо за наводку! как раз уже реализовал в расширении и увидел ваши сообщения)))) данная реализация подтверждена. все легко и просто
|
|||
4
mihaWS
27.06.19
✎
05:49
|
(3) А подскажите, пожалуйста, подробнее про реализацию через расширение? Тоже все пф кадровых приказов раньше делал через внешние. А теперь с этим ВывестиВКоллекциюПечатнуюФорму непонятно как это реализовать через внешние пф.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |