|
Мой нелюбимый ПроверитьВывод() | ☑ | ||
---|---|---|---|---|
0
Eskeych
28.12.21
✎
12:51
|
Привет, столкнулся снова с этим методом. не получается корректно выводить таблицу и за ним нижний колонтитул(Это область в макете, табДок.НижнийКолонтитул не прокатит). Остается свободным примерно пол листа, а на следующий переходит 5 строк. Как с таким жить теперь?
|
|||
1
mistеr
28.12.21
✎
12:52
|
(0) Выводи пустые строки, пока есть место.
Или так и делаешь? Показывай. |
|||
2
Eskeych
28.12.21
✎
12:53
|
МассивОбластей.Очистить();
Пока ВыборкаНоменклатура.Следующий() Цикл Подзаголовок = Макет.ПолучитьОбласть("ДополнительноеОснащениеЗаголовок"); Подзаголовок.Параметры.НаименованиеРаздела = ВыборкаНоменклатура.НаименованиеРаздела.Наименование; МассивОбластей.Добавить(Подзаголовок); Выборка = ВыборкаНоменклатура.Выбрать(); Пока Выборка.Следующий() Цикл ДопОснащениеСтрока = Макет.ПолучитьОбласть("ДопОснащениеСтрока"); ЗаполнитьЗначенияСвойств(ДопОснащениеСтрока.Параметры, Выборка); МассивОбластей.Добавить(ДопОснащениеСтрока); КонецЦикла; КонецЦикла; МассивОбластей.Добавить(ОбластьНижнегоКолонтитула); Индекс = 0; МассивВывода = Новый Массив; Для Каждого Строка Из МассивОбластей Цикл МассивВывода.Добавить(Строка); Если ТабДокумент.ПроверитьВывод(МассивВывода) Тогда ТабДокумент.Вывести(Строка); //МассивВывода.Удалить(Индекс); Иначе ТабДокумент.Вывести(ОбластьНижнегоКолонтитула); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КартинкаКолонтитула = Макет.ПолучитьОбласть("КартинкаКолонтитула"); КартинкаКолонтитула.Параметры.НомерСтраницы = НомерСтраницыПечати; НомерДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Ссылка.Номер); КартинкаКолонтитула.Параметры.НомерДокумента = НомерДокумента; КартинкаКолонтитула.Параметры.ДатаДокумента = Формат(Ссылка.Дата, "ДФ=dd.MM.yyyy"); НомерСтраницыПечати = НомерСтраницыПечати + 1; табДокумент.Вывести(КартинкаКолонтитула); СводныеДанныеЗаголовок = Макет.ПолучитьОбласть("СводныеДанныеШапка"); ТабДокумент.Вывести(СводныеДанныеЗаголовок); ТабДокумент.Вывести(Строка); МассивОбластей.Удалить(Индекс); МассивВывода.Очистить(); КонецЕсли; //Индекс = Индекс + 1; КонецЦикла; |
|||
3
Eskeych
28.12.21
✎
12:55
|
Делаю вот так:
1) Запихиваю все в массив; 2) пересчитывая строки по одной закидываю во второй и с него уже делаю проверку и вывожу в таб док. 3) если проверка не прошла, то выводим колонтитул, переходим на след лист и выводим дальше построчно |
|||
4
pechkin
28.12.21
✎
12:56
|
Параметры печати нужно изначально устанавливать
|
|||
5
Eskeych
28.12.21
✎
12:58
|
В параметрах и так стоит автомасштаб и ориентация
пробовал после каждого вывода чистить МассивВывода, но тогда он выводит будто бы проверки и нет. |
|||
6
Serg_1960
28.12.21
✎
13:06
|
(2) Вы зря закомментировали строку. Теперь у Вас в МассивВывода накапливаются строки, которые Вы уже вывели в документ.
|
|||
7
Eskeych
28.12.21
✎
13:07
|
если его удалять то он отрабатывает так, будто бы проверки нет вовсе
|
|||
8
Serg_1960
28.12.21
✎
13:14
|
(7) До разделителя страниц, Вы выводите ОбластьНижнегоКолонтитула - имхо, особо не заморачиваясь изучением алгоритма, нужно проверять вывод Строка + ОбластьНижнегоКолонтитула.
|
|||
9
pechkin
28.12.21
✎
13:39
|
(5) а поля когда задаются?
|
|||
10
Serg_1960
28.12.21
✎
13:45
|
Имхо:
... МассивВывода = Новый Массив; МассивВывода.Добавить(Строка); МассивВывода.Добавить(ОбластьНижнегоКолонтитула); Если ТабДокумент.ПроверитьВывод(МассивВывода) Тогда ТабДокумент.Вывести(Строка); Иначе ... |
|||
11
Eskeych
28.12.21
✎
13:59
|
Сделал вот так вот:
МассивОбластей.Очистить(); Пока ВыборкаНоменклатура.Следующий() Цикл Подзаголовок = Макет.ПолучитьОбласть("ДополнительноеОснащениеЗаголовок"); Подзаголовок.Параметры.НаименованиеРаздела = ВыборкаНоменклатура.НаименованиеРаздела.Наименование; МассивОбластей.Добавить(Подзаголовок); Выборка = ВыборкаНоменклатура.Выбрать(); Пока Выборка.Следующий() Цикл ДопОснащениеСтрока = Макет.ПолучитьОбласть("ДопОснащениеСтрока"); ЗаполнитьЗначенияСвойств(ДопОснащениеСтрока.Параметры, Выборка); МассивОбластей.Добавить(ДопОснащениеСтрока); КонецЦикла; КонецЦикла; МассивПодвала = Новый Массив; МассивПодвала.Добавить(ОбластьПустойСтроки); МассивПодвала.Добавить(ОбластьПустойСтроки); МассивПодвала.Добавить(ОбластьПустойСтроки); МассивПодвала.Добавить(ОбластьНижнегоКолонтитула); Индекс = 0; МассивВывода = Новый Массив; Для Каждого Строка Из МассивОбластей Цикл МассивВывода.Добавить(Строка); Если ТабДокумент.ПроверитьВывод(МассивВывода) Тогда Если НЕ ТабДокумент.ПроверитьВывод(МассивПодвала) Тогда ТабДокумент.Вывести(ОбластьПустойСтроки); ТабДокумент.Вывести(ОбластьНижнегоКолонтитула); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КартинкаКолонтитула = Макет.ПолучитьОбласть("КартинкаКолонтитула"); КартинкаКолонтитула.Параметры.НомерСтраницы = НомерСтраницыПечати; НомерДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Ссылка.Номер); КартинкаКолонтитула.Параметры.НомерДокумента = НомерДокумента; КартинкаКолонтитула.Параметры.ДатаДокумента = Формат(Ссылка.Дата, "ДФ=dd.MM.yyyy"); НомерСтраницыПечати = НомерСтраницыПечати + 1; табДокумент.Вывести(КартинкаКолонтитула); СводныеДанныеЗаголовок = Макет.ПолучитьОбласть("СводныеДанныеШапка"); ТабДокумент.Вывести(СводныеДанныеЗаголовок); КонецЕсли; ТабДокумент.Вывести(Строка); МассивВывода.Очистить(); КонецЕсли; Индекс = Индекс + 1; КонецЦикла; Структура = СформироватьСтруктуруИтоговПервойТаблицы(Ссылка); СводныеДанныеИтог = Макет.ПолучитьОбласть("СводныеДанныеИтог"); ЗаполнитьЗначенияСвойств(СводныеДанныеИтог.Параметры, Структура); ТабДокумент.Вывести(СводныеДанныеИтог); СводныеДанныеОбщаяСтоимость = Макет.ПолучитьОбласть("СводныеДанныеОбщаяСтоимость"); ЗаполнитьЗначенияСвойств(СводныеДанныеОбщаяСтоимость.Параметры, Структура); ТабДокумент.Вывести(СводныеДанныеОбщаяСтоимость); Пока ТабДокумент.ПроверитьВывод(МассивПодвала) Цикл ТабДокумент.Вывести(ОбластьПустойСтроки); КонецЦикла; ТабДокумент.Вывести(ОбластьПустойСтроки); ТабДокумент.Вывести(ОбластьНижнегоКолонтитула); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |