|
Проблемы с "ПроверитьВывод" | ☑ | ||
---|---|---|---|---|
0
rosveta
19.01.17
✎
14:34
|
Добрый день. Создаю печатную форму. Необходимо сделать так: Если табличная часть с подвалом не умещается, необходимо вставить разрыв страницы. И на следующей странице вывести шапку. То есть на каждой странице обязательно должна быть шапка и подвал. Вроде бы все просто, но на первой странице разрыв происходит раньше, чем необходимо. Как будто там проверяется еще одна область подвала. Прошу помочь разобраться, что не так. Заранее спасибо.
ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЧастныйАкт"; Макет = ПолучитьМакет("ЧастныйАкт"); ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.ПолеСлева = 5; ТабличныйДокумент.ПолеСправа = 5; ТабличныйДокумент.РазмерКолонтитулаСверху = 0; ТабличныйДокумент.РазмерКолонтитулаСнизу = 0; ДанныеПечати = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); МассивПроверяемыхОбластей = Новый Массив; Пока ДанныеПечати.Следующий() Цикл Если Не ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; ОбластьШапка.Параметры.Заполнить(ДанныеПечати); ОбластьШапка.Параметры.Дата = Формат(ДанныеПечати.Дата, "ДФ=dd.MM.yyyy"); ТабличныйДокумент.Вывести(ОбластьШапка); ДанныеТехОтход = ДанныеПечати.Выбрать(); Пока ДанныеТехОтход.Следующий() Цикл ОбластьСтрока.Параметры.Заполнить(ДанныеТехОтход); МассивПроверяемыхОбластей.Очистить(); МассивПроверяемыхОбластей.Добавить(ОбластьСтрока); МассивПроверяемыхОбластей.Добавить(ОбластьПодвал); Если НЕ ТабличныйДокумент.ПроверитьВывод(МассивПроверяемыхОбластей) Тогда ТабличныйДокумент.Вывести(ОбластьПодвал); ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабличныйДокумент.Вывести(ОбластьШапка); КонецЕсли; ТабличныйДокумент.Вывести(ОбластьСтрока); КонецЦикла; ТабличныйДокумент.Вывести(ОбластьПодвал); КонецЦикла; Возврат ТабличныйДокумент; |
|||
1
Ёпрст
19.01.17
✎
14:45
|
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; вот тут лажа |
|||
2
Chikko
19.01.17
✎
14:48
|
(0) "Как будто там проверяется еще одна область подвала."
Почему как будто? МассивПроверяемыхОбластей.Добавить(ОбластьСтрока); МассивПроверяемыхОбластей.Добавить(ОбластьПодвал); |
|||
3
rosveta
19.01.17
✎
14:48
|
(1), А если не секрет, то в чем тут лажа? Вроде бы во всех стандартных формах так делаю, когда предусмотрена печать из списка документов, чтобы отделять один от другого.
|
|||
4
rosveta
19.01.17
✎
14:49
|
(2) Так и должно проверяться с подвалом, строки должны уместиться вместе с подвалом, если они не умещаются с подвалом, то разрыв страницы
|
|||
5
Serg_1960
19.01.17
✎
15:58
|
(3) Как-то вот так привычнее:
МассивПроверяемыхОбластей = Новый Массив; ПервыйДокумент = Истина; // инициализация переменной Пока ДанныеПечати.Следующий() Цикл Если ПервыйДокумент Тогда ПервыйДокумент = Ложь; Иначе ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |