Внешняя печатная форма

1. user1228284 27.05.19 09:10 Сейчас в теме
Здравствуйте! Необходимо создать в одной внешней печатной форме 2 макета, и создать условие при котором один выводится, если указывается организация ИП, а другой макет - если ООО. Подскажите как это сделать?
По теме из базы знаний
Найденные решения
7. mrx2012 27.05.19 09:58 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 

ДокументРезультат = Новый ТабличныйДокумент; 

ДокументРезультат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТрудовойДоговор"; 
ДокументРезультат.ОриентацияСтраницы= ОриентацияСтраницы.Портрет; 
ДокументРезультат.АвтоМасштаб = Истина; 


//ВалютаУчета = ЗарплатаКадры.ВалютаУчетаЗаработнойПлаты(); 

Если ЛЕВ(МассивОбъектов[0].Контрагент.Наименование,2) = "ИП" Тогда
Макет = ПолучитьМакет("MXL_ТрудовойДоговор"); 
ИНАЧЕ
Макет = ПолучитьМакет("MXL_ТрудовойДоговор1"); 
КОНЕЦЕсли

//ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы"); 
//ОбластьПодвалПриказа = Макет.ПолучитьОбласть("ПодвалПриказа"); 

ДанныеДляПечати = ДанныеДляПечати(МассивОбъектов); 

ПервыйПриказ = Истина; 
Для Каждого ОписаниеПараметров Из ДанныеДляПечати Цикл 

МассивДанныхЗаполнения = ОписаниеПараметров.Значение; 
НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1; 

Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл 

//Если МассивОбъектов.Количество() = 1 
//	И ЗначениеЗаполнено(ПараметрыМакета.EMail) Тогда 
//	
//	ПараметрыВывода.ПараметрыОтправки.Получатель = ПараметрыМакета.EMail; 
//	ПараметрыВывода.ПараметрыОтправки.Тема = НСтр("ru='Трудовой договор'"); 
//	
//	Если ЗначениеЗаполнено(ПараметрыМакета.ТрудовойДоговорНомер) Тогда 
//	ПараметрыВывода.ПараметрыОтправки.Тема = ПараметрыВывода.ПараметрыОтправки.Тема + " №" + ПараметрыМакета.ТрудовойДоговорНомер; 
//	КонецЕсли; 
//	
//	Если ЗначениеЗаполнено(ПараметрыМакета.ТрудовойДоговорДата) Тогда 
//	
//	ПараметрыВывода.ПараметрыОтправки.Тема = ПараметрыВывода.ПараметрыОтправки.Тема 
//	+ " " + НСтр("ru='от'") + " " + ПараметрыМакета.ТрудовойДоговорДата; 
//	
//	КонецЕсли; 
//	
//КонецЕсли; 

Если Не ПервыйПриказ Тогда 
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц(); 
Иначе 
ПервыйПриказ = Ложь; 
КонецЕсли; 

Макет.Параметры.Заполнить(ПараметрыМакета); 

ДокументРезультат.Вывести(Макет); 

КонецЦикла; 

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ДокументРезультат, НомерСтрокиНачало, ОбъектыПечати, ОписаниеПараметров.Ключ); 

КонецЦикла; 

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТрудовойДоговорС", "Трудовой договор", ДокументРезультат);
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. mrx2012 27.05.19 09:14 Сейчас в теме
А вам нужно сделать ее с нуля или есть внешняя печатная форма уже есть?
Если есть , то найдите в модуле обработки использование функции "ПолучитьМакет" и подставьте условие.
3. user1228284 27.05.19 09:30 Сейчас в теме
(2)Есть внешняя печатная форма, в нее еще добавить макет, при условии вызывать их. Проблема в том, что я не знаю, как написать условие, если у меня организация в документе указана ИП, то выводить на печать первый макет, если организация ООО, то выводить второй макет.
4. mrx2012 27.05.19 09:31 Сейчас в теме
Код модуля внешней печатной формы покажите

	Если НашКонтрагент.ФормаСобственности = "ИП" ТОГДА
		Макет = ПолучитьМакет("Макет1");
	Иначе
		Макет = ПолучитьМакет("Макет2");
	КонецЕсли;
5. Niang 1 27.05.19 09:41 Сейчас в теме
Проверяй условием контрагента и подставляй в параметры функции УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию() обработчик подходящего под условие макета.
6. user1228284 27.05.19 09:47 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

ДокументРезультат = Новый ТабличныйДокумент;

ДокументРезультат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТрудовойДоговор";
ДокументРезультат.ОриентацияСтраницы= ОриентацияСтраницы.Портрет;
ДокументРезультат.АвтоМасштаб = Истина;


//ВалютаУчета = ЗарплатаКадры.ВалютаУчетаЗаработнойПлаты();


Макет = ПолучитьМакет("MXL_ТрудовойДоговор");
Макет2 = ПолучитьМакет("MXL_ТрудовойДоговор1");


//ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы");
//ОбластьПодвалПриказа = Макет.ПолучитьОбласть("ПодвалПриказа");

ДанныеДляПечати = ДанныеДляПечати(МассивОбъектов);

ПервыйПриказ = Истина;
Для Каждого ОписаниеПараметров Из ДанныеДляПечати Цикл

МассивДанныхЗаполнения = ОписаниеПараметров.Значение;
НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;

Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл

//Если МассивОбъектов.Количество() = 1
// И ЗначениеЗаполнено(ПараметрыМакета.EMail) Тогда
//
// ПараметрыВывода.ПараметрыОтправки.Получатель = ПараметрыМакета.EMail;
// ПараметрыВывода.ПараметрыОтправки.Тема = НСтр("ru='Трудовой договор'");
//
// Если ЗначениеЗаполнено(ПараметрыМакета.ТрудовойДоговорНомер) Тогда
// ПараметрыВывода.ПараметрыОтправки.Тема = ПараметрыВывода.ПараметрыОтправки.Тема + " №" + ПараметрыМакета.ТрудовойДоговорНомер;
// КонецЕсли;
//
// Если ЗначениеЗаполнено(ПараметрыМакета.ТрудовойДоговорДата) Тогда
//
// ПараметрыВывода.ПараметрыОтправки.Тема = ПараметрыВывода.ПараметрыОтправки.Тема
// + " " + НСтр("ru='от'") + " " + ПараметрыМакета.ТрудовойДоговорДата;
//
// КонецЕсли;
//
//КонецЕсли;

Если Не ПервыйПриказ Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
Иначе
ПервыйПриказ = Ложь;
КонецЕсли;

Макет.Параметры.Заполнить(ПараметрыМакета);

ДокументРезультат.Вывести(Макет);

КонецЦикла;

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ДокументРезультат, НомерСтрокиНачало, ОбъектыПечати, ОписаниеПараметров.Ключ);

КонецЦикла;

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТрудовойДоговорС", "Трудовой договор", ДокументРезультат);
7. mrx2012 27.05.19 09:58 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт 

ДокументРезультат = Новый ТабличныйДокумент; 

ДокументРезультат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТрудовойДоговор"; 
ДокументРезультат.ОриентацияСтраницы= ОриентацияСтраницы.Портрет; 
ДокументРезультат.АвтоМасштаб = Истина; 


//ВалютаУчета = ЗарплатаКадры.ВалютаУчетаЗаработнойПлаты(); 

Если ЛЕВ(МассивОбъектов[0].Контрагент.Наименование,2) = "ИП" Тогда
Макет = ПолучитьМакет("MXL_ТрудовойДоговор"); 
ИНАЧЕ
Макет = ПолучитьМакет("MXL_ТрудовойДоговор1"); 
КОНЕЦЕсли

//ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы"); 
//ОбластьПодвалПриказа = Макет.ПолучитьОбласть("ПодвалПриказа"); 

ДанныеДляПечати = ДанныеДляПечати(МассивОбъектов); 

ПервыйПриказ = Истина; 
Для Каждого ОписаниеПараметров Из ДанныеДляПечати Цикл 

МассивДанныхЗаполнения = ОписаниеПараметров.Значение; 
НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1; 

Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл 

//Если МассивОбъектов.Количество() = 1 
//	И ЗначениеЗаполнено(ПараметрыМакета.EMail) Тогда 
//	
//	ПараметрыВывода.ПараметрыОтправки.Получатель = ПараметрыМакета.EMail; 
//	ПараметрыВывода.ПараметрыОтправки.Тема = НСтр("ru='Трудовой договор'"); 
//	
//	Если ЗначениеЗаполнено(ПараметрыМакета.ТрудовойДоговорНомер) Тогда 
//	ПараметрыВывода.ПараметрыОтправки.Тема = ПараметрыВывода.ПараметрыОтправки.Тема + " №" + ПараметрыМакета.ТрудовойДоговорНомер; 
//	КонецЕсли; 
//	
//	Если ЗначениеЗаполнено(ПараметрыМакета.ТрудовойДоговорДата) Тогда 
//	
//	ПараметрыВывода.ПараметрыОтправки.Тема = ПараметрыВывода.ПараметрыОтправки.Тема 
//	+ " " + НСтр("ru='от'") + " " + ПараметрыМакета.ТрудовойДоговорДата; 
//	
//	КонецЕсли; 
//	
//КонецЕсли; 

Если Не ПервыйПриказ Тогда 
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц(); 
Иначе 
ПервыйПриказ = Ложь; 
КонецЕсли; 

Макет.Параметры.Заполнить(ПараметрыМакета); 

ДокументРезультат.Вывести(Макет); 

КонецЦикла; 

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ДокументРезультат, НомерСтрокиНачало, ОбъектыПечати, ОписаниеПараметров.Ключ); 

КонецЦикла; 

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТрудовойДоговорС", "Трудовой договор", ДокументРезультат);
Показать
8. user1228284 27.05.19 10:35 Сейчас в теме
да все получилось, спасибо большое!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот