Режутся последние строки на листе ВПФ УНФ 1.5.3

1. novoe 21.05.15 14:23 Сейчас в теме
Всем добрый день.
Недавно научился делать внешние печатные формы в УНФ 1.5 (спасибо за публикации freeraider Внешняя печатная форма Счета с печатью и подписью для УНФ 1.4, 1.5 и vlastapov Внешняя печатная форма "Расчет отходов" документа "Производство" для УНФ).

Однако все мои навыки все еще на уровне интуиции.
Возникла проблема: последние строки на листе режутся - часть остается внизу листа, а часть печатается вверху следующего листа. Третьи сутки пытаюсь найти код, отвечающий за это, но всё, кажется, точно так же, как и во встроенной форме "Требование на склад" к документу "Заказ на производство". Более того, создал ВПФ "Требование на склад" - копию встроенной, там строки не режутся, а в созданной мной форме - режутся. Хотя одно и тоже, как мне кажется.

Забыл сказать - в этой форме две таблицы: Продукция, работы (у меня Полуфабрикаты) и Потребность в материалах (у меня Расход материала), так вот во второй таблице строки, если их много, не режутся. Режутся только в первой. В "Требование на склад" нигде не режутся, почему-то.

Подскажите, где искать. Что отвечает за эту проблему - макет или код в модуле объекта?

Прикрепил обе созданные мной ВПФ.
Прикрепленные файлы:
ТребованиеНаСкладВнешняя.epf
ЗаданиеНаРаскройВнешняя1-3.epf
Вознаграждение за ответ
Показать полностью
Найденные решения
2. Meteorage 21 21.05.15 15:06 Сейчас в теме
Смотри код обработки печати, там проверка должна быть на размещение на один лист, именно в этом должен быть источник проблемы
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Meteorage 21 21.05.15 15:06 Сейчас в теме
Смотри код обработки печати, там проверка должна быть на размещение на один лист, именно в этом должен быть источник проблемы
3. novoe 21.05.15 15:10 Сейчас в теме
Если это код:
Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

то он один и тот же и в том же месте в обоих документах.
4. Meteorage 21 21.05.15 15:21 Сейчас в теме
(3) novoe, не в этом дело, у тебя ширина строки в макете увеличена и проверок на вывод на страницу отсутствует
7. novoe 21.05.15 15:31 Сейчас в теме
(4) Meteorage, Я специально увеличил ширину строки в ВПФ "Требование на склад внешняя" и там ничего не режется. Повторяюсь: строки во второй таблице тоже не режутся, даже если в макете увеличить ширину строки.
8. Meteorage 21 21.05.15 15:37 Сейчас в теме
(7) novoe, в общем: тебе нужно формировать табличный документ, перед выводом строки на табличный документ проверять ТабДок.ПроверитьВывод(Массив), где массив это выводимая строка и подвал (данные о подписях и так далее), если все входит, то норм, иначе перед выводом делать горизонтальный разделитель.
9. novoe 21.05.15 15:42 Сейчас в теме
(8) Meteorage, Но в ВПФ "Требование на склад внешняя" ничего такого нет, и строки не режутся.
10. Meteorage 21 21.05.15 15:45 Сейчас в теме
(9) novoe, в требовании на склад мало данных, добавь для теста позиций номенклатуры побольше и увидишь всю печаль отсутствия ПроверитьВывод(х)
12. novoe 21.05.15 15:54 Сейчас в теме
(10) Meteorage, Я так и проверяю. Шесть листов - ничего не режется (прикрепил скрин).
Прикрепленные файлы:
5. dmitrichenko.ivan 6 21.05.15 15:24 Сейчас в теме
Есть метод "ТабДок.проверитьВывод(Область)", он проверяет, что влезет на одну страницу
11. novoe 21.05.15 15:49 Сейчас в теме
(5) dmitrichenko.ivan, Где его применять: до "ТабличныйДокумент.Вывести(ОбластьМакета)" или после него (Область - СтрокаПродукция).
14. novoe 21.05.15 16:15 Сейчас в теме
(5) dmitrichenko.ivan, "Есть метод "ТабДок.проверитьВывод(Область)", он проверяет, что влезет на одну страницу"

Что там нужно писать между Если-конец если?
6. Meteorage 21 21.05.15 15:25 Сейчас в теме
тебе нужно использовать метод табличного документа ПроверитьВывод() для проверки вхождения на лист
13. novoe 21.05.15 16:11 Сейчас в теме
Сохранил обе печатные формы из документа печати в файл mxl - прикрепил. Там тоже в предварительном просмотре видно, на требовании не режется, на задании режется.
Прикрепленные файлы:
Требование.mxl
Задание.mxl
15. novoe 21.05.15 19:39 Сейчас в теме
Частную проблему с вашей помощью решил:

ОбластьМакета = Макет.ПолучитьОбласть("СтрокаПродукция");
        
    СтрокаЦеликом = Новый Массив; // создадим массив для проверки вывода 
    СтрокаЦеликом.Добавить(ОбластьМакета);

        Если Не ТабличныйДокумент.ПроверитьВывод(СтрокаЦеликом) Тогда 

                // Строка не вмещается. 

        // начнем новую страницу 
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); 
                
            КонецЕсли;    
Показать


Остается не понятым, почему строки не режутся у второй табличной области в этом же документе без этой проверки. И во внешней ПФ "Требование на склад" вообще нет никакой проверки и строки не режутся.

Деньги как можно поделить на два человека? Или так нельзя?
16. novoe 21.05.15 19:59 Сейчас в теме
Отдал тому, кто первый ответил. Однако dmitrichenko.ivan также правильно подскзал, спасибо.

Зато научился выводить шапку на каждой странице и итого по странице.
17. novoe 25.05.15 13:01 Сейчас в теме
Потребовалось доработать ВПФ - нужно заполнить параметр ДокументОснование из поля в шапке формы "Основание"
Посмотрел в форме документа "Заказ на производство", там указан ПутьКДанным - Объект.ДокументОснование.
Но как мне его выбрать, не понимаю.
Пробовал добавить после
Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    Запрос.УстановитьПараметр("Характеристика", НСтр("ru = 'Характеристика:'"));
    Запрос.Текст = 
    "ВЫБРАТЬ


строку
ЗаказНаПроизводство.Объект.ДокументОснование КАК ДокументОснование,
и указать этот параметр:
ОбластьМакета.Параметры.ДокументОснование = ДокументОснование;
, при проверке модуля объекта ругается: "Переменная не определена (ДокументОснование)".

Подскажите, пожалуйста как нужно сделать правильно.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот