Пример пост-обработки макета

Нужно было под заголовком добавить еще один подзаголовок.

Скопировал в расширении макет, добавил там еще одну область-строку ШапкаДоп:

Код по выводу этой области после формирования макета:

&Вместо("ПечатнаяФорма")
Функция ТР_ПечатнаяФорма(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати)
	//Осипов
	ТабличныйДокумент = ПродолжитьВызов(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати);

	Если МассивОбъектов.Количество() > 0 Тогда
		Документ = МассивОбъектов[0];           
		
		//=== Добавляем доп. шапку
		
		//Так было раньше при вмешательстве в конфигурацию
		//|	ВЫБОР
		//|		КОГДА ТИПЗНАЧЕНИЯ(СдельныйНаряд.ДокументОснование) = ТИП(Документ.ЗаказПокупателя)
		//|			ТОГДА СдельныйНаряд.ДокументОснование
		//|		КОГДА ТИПЗНАЧЕНИЯ(СдельныйНаряд.ДокументОснование) = ТИП(Документ.ЗаказНаПроизводство)
		//|			ТОГДА СдельныйНаряд.ДокументОснование.ЗаказПокупателя
		//|		ИНАЧЕ НЕОПРЕДЕЛЕНО
		//|	КОНЕЦ КАК ЗаказКлиента
		
		ДокументОснование = Документ.ДокументОснование;
		ЗаказКлиента = Неопределено;
		Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
			ЗаказКлиента = ДокументОснование;
		ИначеЕсли ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ЗаказНаПроизводство") Тогда
			ЗаказКлиента = ДокументОснование.ЗаказПокупателя;
		КонецЕсли;
		
		//Надо отладить...
		Если ЗначениеЗаполнено(ЗаказКлиента) Тогда    
			ДопМакет = Документы.СдельныйНаряд.ПолучитьМакет("ТР_ПФ_MXL_СдельныйНаряд_Доп");
			ОблШапкаДоп		= ДопМакет.ПолучитьОбласть("ШапкаДоп");
			НомерСчета = НайтиНомерСчетаПоЗаказу(ЗаказКлиента);
			ОблШапкаДоп.Параметры.Контрагент  			= ЗаказКлиента.Контрагент;
			ОблШапкаДоп.Параметры.НомерЗаказаПокупателя	= ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ЗаказКлиента.Номер, Истина, Истина);		
			ТабличныйДокумент.ВставитьОбласть(ОблШапкаДоп.Область("R1"), ТабличныйДокумент.Область("R3"), ТипСмещенияТабличногоДокумента.ПоВертикали, истина);
		КонецЕсли;
	КонецЕсли;                                   
	
	Возврат ТабличныйДокумент;
КонецФункции

Результат выглядит достойно (добавленную строку выделил красным):

В коде важно, что использую перенос параметров, иначе область копируется без них. При копировании строк сдвиг по вертикали или горизонтали неважен — вставляется строка целиком.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *