Всем доброго времени суток, помогите очень нужно.
Нужно табличный документ вывести на печать в формате mxl, на деле получается 15 листов, когда нужно 2.
Как сделать управляемую форму, т. е. например есть 15 блоков(табличная часть, шапка и т.д.) на печать, из них оставить 5 блоков на первый лист, второй на 8 блоков и т.д.
С контролем области я разобрался, осталось корректное автозаполнение на всю страницу(и в высоту, и в ширину)
Нужно табличный документ вывести на печать в формате mxl, на деле получается 15 листов, когда нужно 2.
Как сделать управляемую форму, т. е. например есть 15 блоков(табличная часть, шапка и т.д.) на печать, из них оставить 5 блоков на первый лист, второй на 8 блоков и т.д.
С контролем области я разобрался, осталось корректное автозаполнение на всю страницу(и в высоту, и в ширину)
По теме из базы знаний
- Вывод печатных форм с запросом данных в форму "Печать документов" из подсистемы БСП "Печать".
- Универсальные обработки документов и справочников для 1С: Предприятие 7.7
- Печать карточки контрагента
- УТ 11, КА 2, ERP 2: Настраиваемые под каждую организацию печать и подпись ответственных лиц в печатных формах (ТОРГ-12, Счёт-фактура, УПД, УКД, Заказ клиента, Акт сверки, М-15 и др.)
- Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
При выводе на печать есть функция проверки вписывается ли добавленная строка в лист с учетом выбранного принтера и параметров печати, от типа формы не зависит, посмотрите пример в формировании ТОРГ12/УПД в типовых.
Процедура ВывестиДанныеВТабличныйДокументПоОбъектуЧастями(Макет, ПараметрыМакета, ДокументРезультат, ВсегоЧастей)
Для НомерЧасти = 0 По ВсегоЧастей Цикл
ЧастьИмя = "Часть" + Формат(НомерЧасти,"ЧН=; ЧГ=");
Попытка
ОбластьЧасть = Макет.ПолучитьОбласть(ЧастьИмя);
Исключение
СообщениеТекст = "При печати: " + ДокументРезультат.КлючПараметровПечати + " не удалось получить часть № " + НомерЧасти + ". Обратитесь к разработчику!";
СообщитьПриПечати(СообщениеТекст);
Возврат;
КонецПопытки;
ОбластьЧасть.Параметры.Заполнить(ПараметрыМакета);
ДокументРезультат.Вывести(ОбластьЧасть);
Если НомерЧасти + 1 = 5 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц(); // Первые 5 частей на первый лист.
ИначеЕсли НомерЧасти + 1 = 8 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц(); // Первые 5 частей на первый лист. 6, 7, 8 на второй
ИначеЕсли НомерЧасти + 1 = 10 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показатьмакет разбиваете на части на глазок и проверяете, что блоки верно "разошлись"
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот