Имя: Пароль:
1C
 
Как получить макет ВПФ в Зупе 3.1
0 Лентаf
 
29.05.19
12:32
привет, как получить макет ВПФ в Зупе 3.1?

Делаю впф:


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


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

Функция ПечатьТ49(МассивОбъектов, ОбъектыПечати)
    
    СпособыВыплатыВедомостей = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивОбъектов, "СпособВыплаты");
    ПорядокВыплаты =
        ОбщегоНазначения.ЗначениеРеквизитаОбъектов(
            ОбщегоНазначения.ВыгрузитьКолонку(СпособыВыплатыВедомостей, "Значение", Истина),
            "ХарактерВыплаты");
    
    ДокументРезультат = Новый ТабличныйДокумент;
    
    ПервыйДокумент = Истина;
    Для Каждого ДокументСсылка Из МассивОбъектов Цикл
        
        Если ПорядокВыплаты[СпособыВыплатыВедомостей[ДокументСсылка]] = Перечисления.ХарактерВыплатыЗарплаты.Аванс Тогда
            ПечатнаяФормаДокумента = Отчеты.АнализНачисленийИУдержанийАвансом.ПечатьТ49(ДокументСсылка);
        Иначе
            ПечатнаяФормаДокумента = Отчеты.АнализНачисленийИУдержаний.ПечатьТ49(ДокументСсылка);
        КонецЕсли;
        
        Если ПервыйДокумент Тогда
            ДокументРезультат = ПечатнаяФормаДокумента;
            НомерСтрокиНачало = 1;
            ПервыйДокумент = Ложь;
        Иначе
            // Все документы нужно выводить на разных страницах.
            ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
            // Запомним номер строки, с которой начали выводить текущий документ.
            НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;
            // Добавим очередную ведомость к результирующему табличному документу
            ДокументРезультат.Вывести(ПечатнаяФормаДокумента);
        КонецЕсли;
        
        // В табличном документе необходимо задать имя области, в которую был
        // выведен объект. Нужно для возможности печати покомплектно.
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ДокументРезультат, НомерСтрокиНачало, ОбъектыПечати, ДокументСсылка);
        
    КонецЦикла;
    
    Возврат ДокументРезультат;
    
КонецФункции
1 Лентаf
 
29.05.19
12:32
в бп 3.0 делал, макет прятался где-то тут, а тут как сделать? может кто подскажет.
2 Лентаf
 
29.05.19
12:35
если перейти в   ПечатнаяФормаДокумента = Отчеты.АнализНачисленийИУдержаний.ПечатьТ49(ДокументСсылка);

тут

Функция ПечатьТ49(Документ) Экспорт
    
    ОтчетОбъект = Отчеты.АнализНачисленийИУдержаний.Создать();
    ОтчетОбъект.ИнициализироватьОтчет();
    
    ВариантОтчета = ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Т49");
    Если ВариантОтчета= Неопределено Тогда
        Возврат Новый ТабличныйДокумент;
    КонецЕсли;
    
    НастройкиОтчета = ВариантОтчета.Настройки;
    
    РеквизитыДокумента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Документ, "ПериодРегистрации,Организация,Подразделение");
    
    Период = РеквизитыДокумента.ПериодРегистрации;
    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("Период", Новый СтандартныйПериод(НачалоМесяца(Период), КонецМесяца(Период)));
    СтруктураПараметров.Вставить("НачалоПериода",                НачалоМесяца(Период));
    СтруктураПараметров.Вставить("КонецПериода",                КонецМесяца(Период));
    
    Для каждого ПараметрЗаполнения Из СтруктураПараметров Цикл
        
        ПараметрКомпоновкиДанных = Новый ПараметрКомпоновкиДанных(ПараметрЗаполнения.Ключ);
        ЗначениеПараметра = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных);
        Если ЗначениеПараметра <> Неопределено Тогда
            ЗначениеПараметра.Значение = ПараметрЗаполнения.Значение;
            ЗначениеПараметра.Использование = Истина;
        Иначе
            НовыйПараметр = НастройкиОтчета.ПараметрыДанных.Элементы.Добавить();
            НовыйПараметр.Параметр = ПараметрКомпоновкиДанных;
            НовыйПараметр.Значение = ПараметрЗаполнения.Значение;
            НовыйПараметр.Использование = Истина;
        КонецЕсли;
        
    КонецЦикла;
    
    ДанныеВедомости = Документы[Документ.Метаданные().Имя].ДанныеВедомостиДляПечати(Документ);
    СписокСотрудников = ДанныеВедомости.ВыгрузитьКолонку("Сотрудник");
    
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
        НастройкиОтчета.Отбор, "Регистратор", Документ, ВидСравненияКомпоновкиДанных.НеРавно, , Истина);
    
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
        НастройкиОтчета.Отбор, "Сотрудник.ГоловнойСотрудник", СписокСотрудников, ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
    
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
        НастройкиОтчета.Отбор, "Организация", РеквизитыДокумента.Организация, ВидСравненияКомпоновкиДанных.Равно, , Истина);
    
    Если ЗначениеЗаполнено(РеквизитыДокумента.Подразделение) Тогда
        
        ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
            НастройкиОтчета.Отбор, "Подразделение", РеквизитыДокумента.Подразделение, ВидСравненияКомпоновкиДанных.ВИерархии, , Истина);
        
    КонецЕсли;
    
    ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
    
    ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("Документ", Документ);
    ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ДанныеВедомости", ДанныеВедомости);
    Если ЗначениеЗаполнено(РеквизитыДокумента.Подразделение) Тогда
        ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ПодразделениеВШапке", РеквизитыДокумента.Подразделение);
    КонецЕсли;
    
    ДокументРезультат = Новый ТабличныйДокумент;
    
    ОтчетОбъект.СкомпоноватьРезультат(ДокументРезультат);
    
    Возврат ДокументРезультат;
    
КонецФункции
3 Лентаf
 
29.05.19
12:37
хочу просто вытащить макет из конфигурации и встроить в впф для возможности изменения
4 Happy Bear
 
29.05.19
12:38
В ЗУП 3.1 переделали подсистему печати. Теперь там много печатных форм идет как отчет на СКД. Так что придется повозиться.
5 kzot
 
29.05.19
12:39
Функция ПечатьВнешнейПечатнойФормы

там

Макет = ПолучитьМакет("Расчетно_платежная_ведомость_МОЙМАКЕТ");