|
Проблема с проверить вывод | ☑ | ||
---|---|---|---|---|
0
Альбатрос
18.11.14
✎
11:07
|
код:
Макет = ПолучитьМакет("Макет"); ТабДок = Новый ТабличныйДокумент; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ТабДок.ПолеСверху = 13; ТабДок.ПолеСлева = 0; ТабДок.ПолеСнизу = 0; ТабДок.ПолеСправа = 0; ТабДок.АвтоМасштаб = Истина; МассивВыводимыхОбластей = Новый Массив; Точек = 0; Для каждого СтрокаТаблицы Из ТаблицаПодразделений Цикл МассивВыводимыхОбластей.Очистить(); Точек = Точек+1; Состояние("Обрабатывается "+Точек+" точка из "+ТаблицаПодразделений.Количество()); Подразделение = СтрокаТаблицы.Подразделение; ОтборПоПодразделению = Новый Структура("Подразделение", Подразделение); МассивПодразделения = ТЗ.НайтиСтроки(ОтборПоПодразделению); ТаблицаСТрок = ТЗ.Скопировать(МассивПодразделения); КонечныйОстаток = ТаблицаСтрок[ТаблицаСтрок.Количество() - 1].СуммаКонечныйОстаток; НачальныйОстаток = ТаблицаСтрок[0].СуммаНачальныйОстаток; ТабОрг = ТаблицаСтрок.Скопировать(); ТабОрг.Свернуть("Организация"); Если Таборг.Количество() > 1 Тогда Сообщить("Ошибка определения организации!"); Иначе Организация = ТабОрг[0].Организация; КонецЕсли; ОтборПоПриходу = Новый Структура; ОтборПоПриходу.Вставить("Вид", "Приход"); МассивПрихода = ТаблицаСтрок.НайтиСтроки(ОтборПоПриходу); ТЗПриходы = ТаблицаСтрок.Скопировать(МассивПрихода); ТЗПриходы.Сортировать("ПериодСекунда"); ОтборПоРасходу = Новый Структура; ОтборПоРасходу.Вставить("Вид", "Расход"); МассивРасхода = ТаблицаСтрок.НайтиСтроки(ОтборПоРасходу); ТЗРасходы = ТаблицаСтрок.Скопировать(МассивРасхода); ТЗРасходы.Сортировать("ПериодСекунда"); // Выведем заголовок. СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, КонПериода); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); МассивВыводимыхОбластей.Добавить(ОбластьМакета); ОбластьМакета.Параметры.ОрганизацияПредставление = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе); ОбластьМакета.Параметры.ДатаСоставления = РабочаяДата; ОбластьМакета.Параметры.ДатаНачала = НачПериода; ОбластьМакета.Параметры.ДатаКонца = КонПериода; ОбластьМакета.Параметры.Склад = Подразделение; ОбластьМакета.Параметры.ОрганизацияПоОКПО = СведенияОПокупателе.КодПоОКПО; ВысотаЗаголовка = ОбластьМакета.ВысотаТаблицы; ТабДок.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); МассивВыводимыхОбластей.Добавить(ОбластьМакета); ПовторятьПриПечатиСтроки = ТабДок.Область(1 + ВысотаЗаголовка, ,2 + ВысотаЗаголовка); ТабДок.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("ОстатокНачала"); МассивВыводимыхОбластей.Добавить(ОбластьМакета); ОбластьМакета.Параметры.ДатаНачала = "Остаток на " + Формат(НачПериода, "ДЛФ=Д"); ОбластьМакета.Параметры.НачСтоимостьВсего = ОбщегоНазначения.ФорматСумм(НачальныйОстаток); ТабДок.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Приход"); МассивВыводимыхОбластей.Добавить(ОбластьМакета); ТабДок.Вывести(ОбластьМакета); КолвоСтраниц = 1; ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Для Каждого СтрокаПрихода Из ТЗПриходы Цикл ОбластьМакета.Параметры.Докум = СтрокаПрихода.Регистратор; ОбластьМакета.Параметры.Расшифровка = СтрокаПрихода.Регистратор; ОбластьМакета.Параметры.ДатаДокумента = СтрокаПрихода.Регистратор.Дата; ОбластьМакета.Параметры.НомерДокумента = СтрокаПрихода.Регистратор.Номер; ОбластьМакета.Параметры.СуммаТовара = ОбщегоНазначения.ФорматСумм(СтрокаПрихода.СуммаПриход); МассивВыводимыхОбластей.Добавить(ОбластьМакета); Если НЕ ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КолВоСТраниц = КолВоСтраниц + 1; МассивВыводимыхОбластей.Очистить(); КонецЕсли; ТабДок.Вывести(ОбластьМакета); КонецЦикла; Приход = ТЗПриходы.Итог("СуммаПриход"); ОбластьМакета = Макет.ПолучитьОбласть("ИтогоПриход"); МассивВыводимыхОбластей.Добавить(ОбластьМакета); Если НЕ ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КолВоСТраниц = КолВоСтраниц + 1; МассивВыводимыхОбластей.Очистить(); КонецЕсли; По итогу разделитель вставляется по середине страницы. Что я не указал? |
|||
1
Fragster
гуру
18.11.14
✎
11:13
|
код не читал, но ТабДок.проверитьВывод(Область) определяет, будет ли изменение количества страниц, если сделать ТабДок.Вывести(Облать)
|
|||
2
Альбатрос
18.11.14
✎
11:15
|
(1) То есть мне не надо накапливать в массив области, так получается?
|
|||
3
Fragster
гуру
18.11.14
✎
11:16
|
(2) нет
|
|||
4
hhhh
18.11.14
✎
11:18
|
(2) получается, так как массив выводимых областей = выведенному в ТабДок, по законам арифметики ТабДок занимает половину станицы и массив половину страницы. Проверка четко срабатывает.
|
|||
5
Альбатрос
18.11.14
✎
11:19
|
(3) Спасибо, так и есть. И еще маленький вопросик - как вывести пустую страницу?
|
|||
6
Fish
18.11.14
✎
11:19
|
(5) ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
|
|||
7
Fragster
гуру
18.11.14
✎
11:20
|
Табдок.ВывестиГ+контролпробел
|
|||
8
Альбатрос
18.11.14
✎
11:28
|
(6) Нужно не просто разделитель, а именно пустой лист.
|
|||
9
Jaffar
18.11.14
✎
11:31
|
вангую: два горизонтальных разделителя подряд выведут пустой лист.
|
|||
10
Альбатрос
18.11.14
✎
11:35
|
(9) а вот и не верно ))) Проверил только что
|
|||
11
Альбатрос
18.11.14
✎
11:37
|
Короче тупо выделил пустую строку в область и вывожу ее, затем разделитель. Так канает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |