|
УПП 1.3 Печать УПД | ☑ | ||
---|---|---|---|---|
0
ColonelAp4u
22.09.17
✎
11:55
|
Добрый день коллеги, может кто сталкивался с такой проблемой, УПП типовая, последние обновления, при печати УПД выводится Табличный документ с разрывами страницы, и визуально мы видим что печать будет произведена на 3 страницах. Но в предварительном просмотре и при печати печатается на 5 страницах. Допустим визуально видим первый лист шапка + 16 наименований товара + подвал страницы, при печати и в предварительном просмотре выводит Шапка + товары 15 наименований + подвал страницы на 1 странице и 1 позицию без шапки и без подвала на другой. Как победить это?
|
|||
1
_Дайвер_
22.09.17
✎
12:00
|
(0) А место то вообще остается? Если да смотри макет, и формирование ПФ
|
|||
2
_Дайвер_
22.09.17
✎
12:00
|
(1) + Настройки принтера глянь, на всякий случай
|
|||
3
ColonelAp4u
22.09.17
✎
12:02
|
Дело в том что места нет, но программа в этому случае сама должна была разбить как положено, там ведь идет сейчас новый метод проверки помещается ли таб док на страницу.
ПроверитьВывод() у Таб дока. И типа если все помещается то ок если нет то делает разрыв страницы. |
|||
4
_Дайвер_
22.09.17
✎
12:04
|
(3) Скинь скрин предварительного просмотра
|
|||
5
ColonelAp4u
22.09.17
✎
12:05
|
пересмотрел все что можно, принтер, параметры страницы в предварительном просмотре. И самый главный прикол если открываешь док первый раз допустим в предварительном просмотре 5 листов, ставлю поля сверху такие же как и идут при создании этого таб дока в коде, = 12, то он выравнивает на 3 страницы, потом выхожу захожу заново с этими параметрами страницы и он снова показывает 5 страниц, и уже изменения параметров никак не влияют на это дело.
|
|||
6
ColonelAp4u
22.09.17
✎
12:09
|
||||
7
Масянька
22.09.17
✎
12:13
|
(6) А нет принудительного (программный код) деления на страницы? Очень похоже на это.
|
|||
8
ColonelAp4u
22.09.17
✎
12:19
|
(7) УПП полностью типовая и страницы делятся вот таким кодом
// Проверим возможность вывода табличного документа СтрокаСПодвалом = Новый Массив; СтрокаСПодвалом.Добавить(ОбластьМакета); Если НомерСтроки = КоличествоСтрок Тогда // Если последняя строка, то должен поместится итог и подвал СтрокаСПодвалом.Добавить(ОбластьМакетаИтого); СтрокаСПодвалом.Добавить(ОбластьМакетаПодвал); Если ЭтоПечатьУПД Тогда СтрокаСПодвалом.Добавить(ОбластьМакетаПодвалНакладной); КонецЕсли; КонецЕсли; #Если Сервер ИЛИ ВнешнееСоединение Тогда РезультатПроверкиВывода = ФормированиеПечатныхФормСервер.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом); #ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда РезультатПроверкиВывода = ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом); #КонецЕсли Если НЕ РезультатПроверкиВывода Тогда Если КоличествоСтрок > 0 Тогда // Вывод разделителя и заголовка таблицы на новой странице ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы); КоличествоСтраниц = КоличествоСтраниц + 1; КонецЕсли; КонецЕсли; |
|||
9
d4rkmesa
22.09.17
✎
12:19
|
(0) Переносы строк и автовысота в подвалах макета. Длинные должности и ФИО, обычно там отключена автовысота, но конфигурасты зачастую тупо включают автовысоту, чтобы все помещалось. Если хотите оставить, тогда нужно немного переделать стандартный вывод и выполнять проверку переносов после заполнения всех областей. В общем, нужно немного покурить процедуру УчетНДС.ВывестиСчетФактуруВТабличныйДокумент и понимание придет, как переделать.
|
|||
10
Масянька
22.09.17
✎
12:21
|
(8) ФормированиеПечатныхФормСервер.ПроверитьВыводТабличногоДокумента - тут что? В смысле код.
|
|||
11
ColonelAp4u
22.09.17
✎
12:26
|
(10)
Функция ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти, РезультатПриОшибке = Истина) Экспорт Попытка Возврат ТабДокумент.ПроверитьВывод(ВыводимыеОбласти); Исключение Возврат РезультатПриОшибке; КонецПопытки; КонецФункции // ПроверитьВыводТабличногоДокумента() |
|||
12
ColonelAp4u
22.09.17
✎
12:26
|
Возвращает ложь или истина
|
|||
13
ColonelAp4u
22.09.17
✎
12:27
|
Если вернулась Ложь то делает разрыв
Если НЕ РезультатПроверкиВывода Тогда Если КоличествоСтрок > 0 Тогда // Вывод разделителя и заголовка таблицы на новой странице ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы); КоличествоСтраниц = КоличествоСтраниц + 1; КонецЕсли; КонецЕсли; |
|||
14
Масянька
22.09.17
✎
12:37
|
(12) (13) Коню понятно :)
Я не знаю, как работает ПроверитьВывод. Но, судя по скринам, строка № 16 умещается в ПроверитьВывод на страницу, а реально нет. Стоит глянуть (9). |
|||
15
ColonelAp4u
22.09.17
✎
12:40
|
(14) Совершенно верно, она вмещается в данном методе, а по факту нет.
|
|||
16
ColonelAp4u
22.09.17
✎
12:42
|
Просто типовую не хочется трогать, а так да можно покурить этот код и сделать что бы выводилось нормально.
|
|||
17
Адинэснег
22.09.17
✎
12:45
|
(0)увеличьте поля (по 20 например), пусть 1С думает, что вывод идет на лист поменьше, тогда ПроверитьВывод() сработает раньше
|
|||
18
Адинэснег
22.09.17
✎
12:46
|
(17) в параметрах печати, конечно
|
|||
19
ColonelAp4u
22.09.17
✎
12:49
|
(18) ваще бред разбивает на 6 страниц
|
|||
20
Адинэснег
22.09.17
✎
12:49
|
я бы увеличил Слева/Справа
|
|||
21
Масянька
22.09.17
✎
12:50
|
(15) Вот это и бесит в 1С: был бы код - можно было бы разговаривать.
|
|||
22
Адинэснег
22.09.17
✎
12:51
|
Сделай слева/справа по 20 или 30
Низ/Верх по 5 |
|||
23
Адинэснег
22.09.17
✎
12:51
|
колонтитулы 0
|
|||
24
Адинэснег
22.09.17
✎
12:51
|
Автомасштаб, или как там, по ширине
|
|||
25
ColonelAp4u
22.09.17
✎
12:55
|
(22) (23) (24) вот так работает спасибо.
|
|||
26
Адинэснег
22.09.17
✎
12:59
|
(25) я тоже долго смотрел на процедуру в УПП ... потом дошел, что этими настройками можно её победить
|
|||
27
ColonelAp4u
22.09.17
✎
13:01
|
Блин не могу понять зачем вот так усложнять людям жизнь, всем спасибо? особое (26)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |