Консультация № 65118
01.12.2006, 16:10
0.00 руб.
0 8 1
Добрый день! Подскажите как программно избавиться от проблемы: расчетные листы разрываюся если заканчивается лист, а нужно, если мало места, чтобы полностью переносился на следующий.

Обсуждение

Неизвестный
01.12.2006, 18:05
общий
это ответ
Здравствуйте, Stell!

Например у Вас помещается на странице N листов...
Тогда примерно так

K = 0; // текущий лист на странице
Пока что-то там // цикл вывода листов

Если K=N тогда
K=1;
Таб.Новаястраница();
Иначе
К=К+1;
КонецЕсли;

// здесь выводим листки

КонецЦикла;

Условие проверяем в начале цикла вывода листов, чтобы не получилась лишняя пустая страница
Неизвестный
02.12.2006, 11:57
общий
У вас известно количество строк, входящих на лист, поставьте проверку - если осталось на листе строк меньше, чем занимает расчетный лист, то НоваяСтраница(), пример можете посмотреть в документе РаходнаяНакладная процедура ПечатьТОРГ12(), если в вашей конфигурации его нетили что-то непонятно - пишите в мини-форум - отвечу
Неизвестный
02.12.2006, 12:18
общий
Специфика расчетных листов в том что количество строк в нем не постоянная величина и изменяется в зависимости от количества начислений-удержаний, еще от флажка "сводить по видам расчета"...
Неизвестный
02.12.2006, 12:30
общий
Не постоянная, ео расчитываемая, можете в процедуре печат р/л где вы сейчас выводете данные в таблицу, записывать в таблицу значений, а потом в цикле считывать из ТЗ - так вы будете знать точно, сколько строк занимает каждый расчетный лист
Неизвестный
02.12.2006, 13:01
общий
Т.е. вместо отчета сначала в ТЗ, а потом после проверки высоты из ТЗ в отчет? Спасибо за идею, попробую воплотить.
Неизвестный
02.12.2006, 13:10
общий
Попробуйте, если есть вопросы можете стучать в 332102900 - или на мини-форум
Неизвестный
07.12.2006, 14:57
общий
Посмотрите http://buhcia.narod.ru - там есть работающий пример, да еще в два столбца, вдруг подойдет
Неизвестный
07.12.2006, 15:15
общий
BuhCIA, спасибо. Воспользуюсь обязательно!
Форма ответа