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