Как сделать нумерацию страниц в печатной форме УПД

1. user698184_bunegin 28.04.18 14:45 Сейчас в теме
Добрый день! Подскажите, как сделать нумерацию страниц в печатной форме УПД ? Платформа 8.3 УТ 10.3.20.2
Есть внешняя печатная форма УПД. Задача стоит выводить на каждом листе внизу надпись типа: "с\ф №, от число , стр.1" . В коде нашел такие строки:
Функция ПечатьУниверсальногоПередаточногоДокументаэ(ДанныеДокумента, СчетФактураТребуется, СтруктураОтбораСчетаФактуры = Неопределено, ТабДокумент = Неопределено) Экспорт

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

ТабДокумент.ВерхнийКолонтитул.Выводить          	= Истина;
	ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница 	= 2;
	ТабДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
	НомерНаПечатьСтрокой 	= ОбщегоНазначения.ПолучитьНомерНаПечать(ДанныеДляПечати);
	ДатаНаПечатьСтрокой  	= Формат(ДанныеДляПечати.Дата, "ДФ='дд ММММ гггг'") + " г.";
	ЗаголовокДляПечати 	 	= "Универсальный передаточный документ № " + НомерНаПечатьСтрокой + " от " +  ДатаНаПечатьСтрокой;
	ТабДокумент.ВерхнийКолонтитул.ТекстСлева   			= ЗаголовокДляПечати;
	ТабДокумент.ВерхнийКолонтитул.ТекстСправа  			= "Лист [&НомерСтраницы]";
	
	Возврат ТабДокумент;
Показать

Отладчиком не могу попасть в строки с выводом ВерхнийКолонтитул.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. protexprotex 118 28.04.18 19:20 Сейчас в теме
(1) Добрый день. В смысле "Отладчиком не могу попасть в строки с выводом ВерхнийКолонтитул"? - т.е. ставите точку останова, и на ней не срабатывает? (не стопориться 1С-ка)?
И почему функция называется ПечатьУниверсальногоПередаточногоДокументаэ - на конце буква Э? - это самописная печатная форма?
И Запускаете печать на управляемом интерфейсе?
THEBESTolo4b; +1 Ответить
9. user698184_bunegin 29.04.18 15:41 Сейчас в теме
(2)Скорее всего самописная(либо измененная точно не знаю). Запускаю отладку так: ОбщийМодуль - УнниверсальныеМиханизмы в Функции НапечататьВнешнююФорму на строке ТабДокумент = Обработка.Печать(); ставлю точку ,запускаю предприятие далее открываю документ нажимаю печать выбираю печать УПД и попадаю отладчиком в модуль ОбщийМодуль - УнниверсальныеМиханизмы , далее нажимаю F11 попадаю во временный файл(так понимаю) модуль объекта внешней печатной формы. Далее смотрю по строкам что присходит.
10. user698184_bunegin 29.04.18 15:50 Сейчас в теме
(9)Отладчиком дохожу до строк и прохожу по ним :
Если ТабДокумент = Неопределено Тогда
        ТабДокумент = Новый ТабличныйДокумент;
        // Устанавливаем параметры печати и колонтитулы
        ТабДокумент.ОриентацияСтраницы     = ОриентацияСтраницы.Ландшафт;
        ТабДокумент.ПолеСверху             = 12;
        ТабДокумент.ПолеСлева              = 0;
        ТабДокумент.ПолеСнизу              = 0;
        ТабДокумент.ПолеСправа             = 0;
        ТабДокумент.АвтоМасштаб         = Истина;
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
    КонецЕсли;
Показать

В табло вижу, что эти строки заполнены,а вот до строк с описанием колонтитула отладчиком дойти не могу, и в табло эти строки пустые. Точнее в "ТабДокумент". Сколько не гоняю отладчик по строкам, до них так и не добрался
3. пользователь 28.04.18 20:32
Сообщение было скрыто модератором.
...
4. YNik 28.04.18 23:20 Сейчас в теме
(1)
Отладчиком не могу попасть в строки с выводом ВерхнийКолонтитул.

Верхний колонтитул у вас заполняется, а выводится автоматом.
И если хотите "выводить на каждом листе внизу надпись", то надо заполнять нижний колонтитул.
7. user698184_bunegin 29.04.18 15:29 Сейчас в теме
(4)Да, хочу "выводить на каждом листе внизу надпись", для этого строки вывода "ВерхнийКолонтитул" изменил в "НижнийКолонтитул" отправил на печать. Но на листе не появились не № страницы не надпись.
11. YNik 29.04.18 15:52 Сейчас в теме
(7), у вас стоит:
ТабДокумент.ПолеСнизу = 0;
а РазмерКолонтитулаСнизу по умолчанию равно 10, поэтому и не выводит.
Поставьте ТабДокумент.ПолеСнизу = 10;
12. user698184_bunegin 29.04.18 15:54 Сейчас в теме
(11)Хорошо, попробую. Сейчас нет возможности распечатать проверить.
13. YNik 29.04.18 15:55 Сейчас в теме
(12) так в предварительном просмотре уже будет видно.
14. user698184_bunegin 29.04.18 16:02 Сейчас в теме
5. Olga12 183 29.04.18 06:26 Сейчас в теме
Такие колонтитулы видны только при печати на принтер(в том числе и виртуальный)
6. Olga12 183 29.04.18 07:02 Сейчас в теме
Как сделать нумерацию страниц, которая выводится всегда можно посмотреть в типовой в УПД(там в макете есть область для этого).
8. user698184_bunegin 29.04.18 15:30 Сейчас в теме
15. user698184_bunegin 29.04.18 16:12 Сейчас в теме
Вот полный код:

Функция ПечатьУниверсальногоПередаточногоДокументаэ(ДанныеДокумента, СчетФактураТребуется, СтруктураОтбораСчетаФактуры = Неопределено, ТабДокумент = Неопределено) Экспорт
	
	
	
	Если ДанныеДокумента.Дата < ДатаНачалаПримененияУПД() Тогда
		ТекстСообщения = НСтр("ru = 'Применение формы универсального передаточного (отгрузочного) документа возможно только с "+ДатаНачалаПримененияУПД(Истина)+"!'");
		СообщитьПользователю(ТекстСообщения);
		Возврат Неопределено;
	КонецЕсли;

	Если СтруктураОтбораСчетаФактуры = Неопределено Тогда
		СчетФактура = НайтиПодчиненныйСчетФактуру(СсылкаНаОбъект, "СчетФактураВыданный");
	Иначе
		СчетФактура = НайтиПодчиненныйСчетФактуру(СсылкаНаОбъект, "СчетФактураВыданный", СтруктураОтбораСчетаФактуры);
	КонецЕсли;
	
	Если ТабДокумент = Неопределено Тогда
		ТабДокумент = Новый ТабличныйДокумент;
		// Устанавливаем параметры печати и колонтитулы
		ТабДокумент.ОриентацияСтраницы 	= ОриентацияСтраницы.Ландшафт;
		ТабДокумент.ПолеСверху 			= 12;
		ТабДокумент.ПолеСлева  			= 0;
		ТабДокумент.ПолеСнизу  			= 10;
		ТабДокумент.ПолеСправа 			= 0;
		ТабДокумент.АвтоМасштаб 		= Истина;
		ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СчетФактура) ИЛИ СчетФактураТребуется 
		Тогда
		
		// УПД печатается из документа счет-фактура
		Если НЕ ЗначениеЗаполнено(СчетФактура) Тогда
			ТекстСообщения = ПодставитьПараметрыВСтроку(
						НСтр("ru = 'По документу ""%1"" не выписан счет-фактура или он помечен на удаление!'"), ДанныеДокумента.ДокументСсылка);
			СообщитьПользователю(ТекстСообщения);
			Возврат Неопределено;
		КонецЕсли;
		
		РеквизитыСФ = ПолучитьЗначенияРеквизитов(СчетФактура, "Дата, ВидСчетаФактуры, Исправление,НомерИсправления,
			|СчетФактураБезНДС");
		ДанныеДокумента.Вставить("Ссылка", 					СчетФактура); 
		ДанныеДокумента.Вставить("Дата", 					РеквизитыСФ.Дата);
		ДанныеДокумента.Вставить("ВидСчетаФактуры", 		РеквизитыСФ.ВидСчетаФактуры);
		ДанныеДокумента.Вставить("Исправление", 	 		РеквизитыСФ.Исправление);
		ДанныеДокумента.Вставить("НомерИсправления", 		РеквизитыСФ.НомерИсправления);
		ДанныеДокумента.Вставить("СчетФактураБезНДС", 		РеквизитыСФ.СчетФактураБезНДС);
			
		СчетФактураОбъект = СчетФактура.ПолучитьОбъект();
		ДанныеДляПечати = СФПодготовитьДанныеДляПечатиУниверсальногоПередаточногоДокум­ента(СчетФактураОбъект, ДанныеДокумента);
		Если ДанныеДляПечати = Неопределено Тогда
			 Возврат Неопределено;
		КонецЕсли;
		
		Если ДанныеДокумента.Свойство("ДатаОтгрузкиПередачи") Тогда
			ДанныеДляПечати.Вставить("ДатаОтгрузкиПередачи", ДанныеДокумента.ДатаОтгрузкиПередачи);
		КонецЕсли;

		СФПечатьУниверсальногоПередаточногоДокумента(ДанныеДляПечати, ТабДокумент);
		Возврат ТабДокумент;
		
	КонецЕсли;
	
	// УПД печатается по статусу 2
	ДанныеДляПечати = ПодготовитьДанныеДляПечатиУниверсальногоПередаточногоДокумен­та(ДанныеДокумента);
	Если ДанныеДляПечати = Неопределено Тогда
		Возврат Неопределено;     		
	КонецЕсли;
	
	Макет = ПолучитьМакет("УниверсальныйПередаточныйДокумент");

    ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ДанныеДляПечати);

	ВывестиПодвалУниверсальногоПередаточногоДокументаВТабличныйД­окумент(ТабДокумент, Макет, ДанныеДляПечати);
	
	// Устанавливаем параметры печати и колонтитулы
	ТабДокумент.НижнийКолонтитул.Выводить          	= Истина;
	ТабДокумент.НижнийКолонтитул.НачальнаяСтраница 	= 2;
	ТабДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
	НомерНаПечатьСтрокой 	= ОбщегоНазначения.ПолучитьНомерНаПечать(ДанныеДляПечати);
	ДатаНаПечатьСтрокой  	= Формат(ДанныеДляПечати.Дата, "ДФ='дд ММММ гггг'") + " г.";
	ЗаголовокДляПечати 	 	= "Универсальный передаточный документ № " + НомерНаПечатьСтрокой + " от " +  ДатаНаПечатьСтрокой;
	ТабДокумент.НижнийКолонтитул.ТекстСлева   			= ЗаголовокДляПечати;
	ТабДокумент.НижнийКолонтитул.ТекстСправа  			= "Лист [&НомерСтраницы]";
	
	Возврат ТабДокумент;
КонецФункции
Показать
16. YNik 29.04.18 16:22 Сейчас в теме
(15) у вас стоит:
ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 2;
поэтому нижний колонтитул будет выводиться только со 2-й страницы.
Если надо и на 1-й, то:
ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 1;
18. user698184_bunegin 29.04.18 19:18 Сейчас в теме
(16) Я пробовал ставить НачальнаяСтраница = 1, не выводит.
17. Olga12 183 29.04.18 17:54 Сейчас в теме
в Процедура ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ДанныеДляПечати) Экспорт

в цикле вывода строк есть

Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
			
			Если КоличествоСтрок > 0 Тогда
				// Вывод разделителя и заголовка таблицы на новой странице
				ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
				ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
				КоличествоСтраниц = КоличествоСтраниц + 1;
			КонецЕсли;
			
КонецЕсли;
Показать

тут есть количество стр
Если ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); в макете в область добавить то что в колонтитуле, то будет выводится(Как например в ТОРГ-12).Правда для 1 стр это будет некрасиво, поэтому нужно эту область в макете скопировать - добавить строку сверху про количество стр и назвать ЗаголовокТаблицы1 и в цикле выводитьэту область ЗаголовокТаблицы1, а в начале процедуры на первой стр оставить как есть вывод ЗаголовокТаблицы.
19. user698184_bunegin 29.04.18 19:35 Сейчас в теме
(17) Не понимаю, что вы хотите(с кодом я на вы). Можно поподробнее объяснить?
20. Olga12 183 29.04.18 19:49 Сейчас в теме
(19)прикрепите файл ВПФ УПД.
21. user698184_bunegin 29.04.18 19:56 Сейчас в теме
Вот
Прикрепленные файлы:
УПД.epf
23. YNik 30.04.18 16:08 Сейчас в теме
(21) у вас выход из функции ПечатьУниверсальногоПередаточногоДокументаэ происходит не в конце функции, а после СФПечатьУниверсальногоПередаточногоДокумента()
поэтому нижний колонтитул не устанавливается.
Надо перед этим возвратом также установить нижний колонтитул.
Исправленный вариант:
Прикрепленные файлы:
УПДv2.epf
25. user698184_bunegin 30.04.18 17:14 Сейчас в теме
22. Olga12 183 30.04.18 09:30 Сейчас в теме
Чтобы заработало нужно
1) удалить существующую ВПФ в базе и установить новую.
2) в параметрах страницы установить По ширине страницы
Прикрепленные файлы:
УПД_Инфостарт v2.epf
24. user698184_bunegin 30.04.18 17:14 Сейчас в теме
Оставьте свое сообщение

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