Вывод подписи в макете на каждой странице-не работает правильно

1. Linda1C 29.01.19 13:20 Сейчас в теме
Добрый день!
Хочу в реестре на перечисление зарплаты вывести на каждой странице подпись директора.
Использую следующий код:
Для Каждого ДанныеДляПечатиСтроки Из ТЗ Цикл
		
		Если не ТабличныйДокумент.ПроверитьВывод(ОбластьМакетаСтрока) Тогда 
			ТабличныйДокумент.Вывести(ОбластьМакетаИтогПоСтранице1);
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
			ВыведеноСтраниц = ВыведеноСтраниц + 1;

		конецесли;
			НомерСтр = НомерСтр+1;	   
			ОбластьМакетаСтрока.Параметры.НомерСтроки = НомерСтр;
			ОбластьМакетаСтрока.Параметры.НомерЛицевогоСчета = ДанныеДляПечатиСтроки.НомерЛицевогоСчета;
			ОбластьМакетаСтрока.Параметры.Физлицо = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = '%1 %2 %3'"), ДанныеДляПечатиСтроки.ФизическоеЛицо.Фамилия, ДанныеДляПечатиСтроки.ФизическоеЛицо.Имя, ДанныеДляПечатиСтроки.ФизическоеЛицо.Отчество);
			ОбластьМакетаСтрока.Параметры.Сумма = ДанныеДляПечатиСтроки.КВыплате;
			ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
			Итого = Итого + ДанныеДляПечатиСтроки.КВыплате;		

КонецЦикла;
Показать
Найденные решения
4. SedovSU@mail.ru 297 29.01.19 13:31 Сейчас в теме
Попробуйте так, не очень способ но может поможет

Для Каждого ДанныеДляПечатиСтроки Из ТЗ Цикл

Массив = Новый Массив();
Масси.Добавить(ОбластьМакетаИтогПоСтранице1);
Масси.Добавить(ОбластьМакетаСтрока);

Если не ТабличныйДокумент.ПроверитьВывод(Массив) Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаИтогПоСтранице1);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
ВыведеноСтраниц = ВыведеноСтраниц + 1;

конецесли;

КонецЦикла;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Linda1C 29.01.19 13:21 Сейчас в теме
Но выводится подпись директора на отдельной странице,а не в конце.
Что я делаю не так,подскажите,пожалуйста!
3. kumi2012 103 29.01.19 13:25 Сейчас в теме
Если не ТабличныйДокумент.ПроверитьВывод(ОбластьМакетаСтрока) Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаИтогПоСтранице1); //Вот это уходит на другую страницу
6. Linda1C 29.01.19 13:32 Сейчас в теме
(3),да это строчка уходит.
Как ее оставить на предыдущей странице?
4. SedovSU@mail.ru 297 29.01.19 13:31 Сейчас в теме
Попробуйте так, не очень способ но может поможет

Для Каждого ДанныеДляПечатиСтроки Из ТЗ Цикл

Массив = Новый Массив();
Масси.Добавить(ОбластьМакетаИтогПоСтранице1);
Масси.Добавить(ОбластьМакетаСтрока);

Если не ТабличныйДокумент.ПроверитьВывод(Массив) Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаИтогПоСтранице1);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
ВыведеноСтраниц = ВыведеноСтраниц + 1;

конецесли;

КонецЦикла;
5. senshkr 13 29.01.19 13:32 Сейчас в теме
Укажите, где вывод подписи директора.
Не обнаружил что-то.
8. Linda1C 29.01.19 13:35 Сейчас в теме
(5),ТабличныйДокумент.Вывести(ОбластьМакетаИтогПоСтранице1);
7. SedovSU@mail.ru 297 29.01.19 13:32 Сейчас в теме
А вообще посмотрите на предмет использования колонтитулов в документе для подписи директора

ЭлементыФормы.ПолеТабличногоДокумента.НижнийКолонтитул.Выводить = Истина;
ЭлементыФормы.ПолеТабличногоДокумента.НижнийКолонтитул.ТекстВЦентре = "Ваш какой то текс";
9. dhurricane 29.01.19 13:47 Сейчас в теме
Вы в алгоритме проверяете, поместится ли строка таблицы на текущей странице. И в случае неудачи, выводите итог. А нужно проверять не одну строку таблицы, а строку совместно с итогами. И если они не помещаются на странице, выводить их на следующей.

Что-то вроде этого должно получиться:
Для Каждого ДанныеДляПечатиСтроки Из ТЗ Цикл
        
		НомерСтр = НомерСтр+1;       
		ОбластьМакетаСтрока.Параметры.НомерСтроки = НомерСтр;
		ОбластьМакетаСтрока.Параметры.НомерЛицевогоСчета = ДанныеДляПечатиСтроки.НомерЛицевогоСчета;
		ОбластьМакетаСтрока.Параметры.Физлицо = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = '%1 %2 %3'"), ДанныеДляПечатиСтроки.ФизическоеЛицо.Фамилия, ДанныеДляПечатиСтроки.ФизическоеЛицо.Имя, ДанныеДляПечатиСтроки.ФизическоеЛицо.Отчество);
		ОбластьМакетаСтрока.Параметры.Сумма = ДанныеДляПечатиСтроки.КВыплате;
		
		МассивОбластей = Новый Массив;
		МассивОбластей.Добавить(ОбластьМакетаСтрока);
		МассивОбластей.Добавить(ОбластьМакетаИтогПоСтранице1);
			
		Если Не ТабличныйДокумент.ПроверитьВывод(МассивОбластей) Тогда 
			ТабличныйДокумент.Вывести(ОбластьМакетаИтогПоСтранице1);
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
			ВыведеноСтраниц = ВыведеноСтраниц + 1;
		конецесли;
            
		ТабличныйДокумент.Вывести(ОбластьМакетаСтрока);
		Итого = Итого + ДанныеДляПечатиСтроки.КВыплате;        

КонецЦикла;
Показать
Оставьте свое сообщение

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