Имя: Пароль:
1C
1С v8
ПроверитьВывод() непонятно работает
0 6738039
 
24.07.13
17:10
В накладной из длинных названий есть строки состоящие из нескольких строк (название переносится на несколько строк). Если строк много печатается на несколько страниц. Разрыр страницы происходит как раз по середине одной строки.

Чтобы этого избежать решил использовать метод ПроверитьВывод(). Типа если выводимая строка уже не помещается, то выводить ее на новой странице.

мВыведен = Новый Массив();
В цикле вывода строк такой код

СтрокаМакета = Макет.ПолучитьОбласть("Строка");
СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
мВыведен.Добавить(СтрокаМакета);
Если Таб.ПроверитьВывод(мВыведен) Тогда
Иначе
   мВыведен.Очистить();
   мВыведен.Добавить(СтрокаМакета);
   Таб.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
Таб.Вывести(СтрокаМакета);


Однако, разрыв страницы происходит когда вывелось всего-то с десяток строки и больше половины страницы еще пустое. Как так?
1 Лефмихалыч
 
модератор
24.07.13
17:14
Где воткнут разрыв страницы
2 6738039
 
24.07.13
17:39
Вот этим втыкаю разрыв страниц

Таб.ВывестиГоризонтальныйРазделительСтраниц();

Вызывается он если метод Таб.ПроверитьВывод(мВыведен) выводит Ложь

Только разрыв страницы происходит тогда когда можно вывести еще дохерища строк.
3 ZZBase
 
24.07.13
18:02
Между Если и Иначе вставь тоже

мВыведен.Очистить();

Иначе у тебя если умещается область на страницу, массив каждый раз увеличивается и количество проверяемых областей на вывод растет с каждой строкой
4 EvgeniuXP
 
24.07.13
18:21
(0) понятно он работает, напиши в фирму 1С они расскажут логику :)
5 EvgeniuXP
 
24.07.13
18:21
еще укажи, что она не правильно работает - и точно ответят!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан