Имя: Пароль:
1C
1С v8
Метод табличного документа ПроверитьВывод
0 mzelensky
 
22.01.13
10:17
Доброго всем!
парюсь уже несколько часов. В инете есть подобные решения, но в большенстве случаев разгадка не в том.

Итак, есть табличный документ. Вывожу в него шапку, а потом основную область. Перед выводом основной области проверяю помещается ли она:


ТабДок=Новый ТабличныйДокумент;
           ТабДок.АвтоМасштаб=истина;
           ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
           ТабДок.ВерхнийКолонтитул.Выводить=ложь;
           ТабДок.ПолеСнизу=30;
           ТабДок.РазмерКолонтитулаСнизу=30 ;

...
...
...

МассивВыводимыхОбластей=новый массив;                      
           МассивВыводимыхОбластей.Добавить(Блок);                  
           Если НЕ ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда //не помещается сразу                  
               ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
           КонецЕсли;            
           ТабДок.вывести(Блок,Выборка.Уровень() );

Метод отрабатывает в ложь. Т.е. он говорит, что НЕ помещается, хотя места там еще ого-го. Путем ручных тыков и экспериментов заметил, что если поставить:

ТабДок.ПолеСнизу=10;
ТабДок.РазмерКолонтитулаСнизу=10 ;

то метод отрабатывает нормально. Но если затем в сформированном доке поменять обратно (через параметры печати) в 30, то все спокойно влазиет с запасом.

Вот что ему надо???
1 mzelensky
 
22.01.13
10:29
ап ну
2 mzelensky
 
22.01.13
10:47
ппппппп
3 DrShad
 
22.01.13
10:49
на нужно угадать что у тебя в Блок!?
4 mzelensky
 
22.01.13
11:26
(3) зачем угадывать? разве не понятно? блок это область табличного документа

Блок = Макет.ПолучитьОбласть("Блок1");
5 mzelensky
 
22.01.13
11:26
(4) мне кажется это очень логично исходяиз этой строки:

ТабДок.вывести(Блок,Выборка.Уровень() );
6 DrShad
 
22.01.13
11:27
ну тогда апай дальше
7 mzelensky
 
22.01.13
11:40
(6) это ты сейчастипа обиделся или просто не знаешь?!