Имя: Пароль:
1C
1С v8
Печатная форма
0 Sun125
 
26.06.12
14:44
Нужно вывести печатную форму с середины листа. Как это можно программно определить?
1 Flyd-s
 
26.06.12
14:45
Пустую область можно создать размером в пол листа
2 butterbean
 
26.06.12
14:46
сделай маленькую область, выведи ее n раз проверяя через ПроверитьВывод, потом выведи n/2 раз
3 Бледно Золотистый
 
26.06.12
14:48
ТабДокумент.ПолеСверху = ТабДокумент.ВысотаСтраницы/2;
4 YF
 
26.06.12
14:48
А верхнее поле в пол-страницы не сделать?
5 Sun125
 
26.06.12
15:08
(3) почему-то не на середине страницы получается...верхнее поле поляается реально треть страницы
6 Sun125
 
26.06.12
15:09
(3) почему-то не на середине страницы получается...верхнее поле получается реально треть страницы
7 Sun125
 
26.06.12
15:11
В отладчике показывает, что высота страницы = 297. это 297 строк макета?
8 Бледно Золотистый
 
26.06.12
15:11
(7) мм
9 Sun125
 
26.06.12
15:28
Вывожу пустые строки высотой в 2 стандартные строки макета. Почему-то на 19 раз в цикле ПроверитьВывод() выдает ЛОЖЬ. Хотя это еще треть страницы. С чем это может быть связано?
10 Sun125
 
26.06.12
15:33
реально 132 строки макета помещаются на страницу....с автовысотой. вообще непонятно, чему равна середина
11 Sun125
 
26.06.12
15:41
МассивОбластей = Новый Массив;
       Для КоличествоОбластей = 1 По 100 Цикл
           МассивОбластей.Добавить(ОбластьПустаяСтрока);
           ОбластьПустаяСтрока.Параметры.КоличествоОбластей = КоличествоОбластей;
           ТабДокумент.Вывести(ОбластьПустаяСтрока);
           Если НЕ ТабДокумент.ПроверитьВывод(МассивОбластей) Тогда
               Прервать; // выдает ЛОЖЬ при количестве = 19
           КонецЕсли;
       КонецЦикла;
12 Sun125
 
26.06.12
15:41
хотя реально 66 таких областей помещается на страницу
13 butterbean
 
26.06.12
15:43
надо просто ПроверитьВывод(ОбластьПустаяСтрока)
ты же в цикле и увеличиваешь массив и сокращаешь "свободное" место
14 Sun125
 
26.06.12
15:45
роцедура или функция с указанным именем не определена (ПроверитьВывод)
           Если НЕ <<?>>ПроверитьВывод(МассивОбластей) Тогда (Проверка: Толстый клиент (обычное приложение))
15 butterbean
 
26.06.12
15:46
(13) пля, ну надо тоже что и у тебя ТабДокумент.ПроверитьВывод....
просто писать лень было
16 Бледно Золотистый
 
26.06.12
15:51
(5) Проверил, у меня работает http://rghost.ru/38880941/image.png
17 Sun125
 
26.06.12
15:56
МассивОбластей = Новый Массив;
       Для КоличествоОбластей = 1 По 1000 Цикл
           МассивОбластей.Добавить(ОбластьПустаяСтрока);
           Если НЕ ТабДокумент.ПроверитьВывод(МассивОбластей) Тогда
               Прервать;
           КонецЕсли;
       КонецЦикла;

Теперь почему-то ПроверитьВывод() всегда выдает истину, хтя такого не может быть
18 Sun125
 
26.06.12
15:58
(16) это потому что у вас Масштаб = 100, а если ПоШиринеСтраницы?
19 Sun125
 
26.06.12
16:00
(16) у меня тоже при масштабе 100 на середину встает
20 ХочуСказать
 
26.06.12
16:00
(18) ты сначала масштаб задай, у уж потом высоту меряй
21 Sun125
 
26.06.12
16:04
(20) хорошо, задаю масштаб 100,  меряю высоту, устанавливаю поле сверху. потом мне нужно уместить по ширине листа...и середина съезжает опять
22 ХочуСказать
 
26.06.12
16:08
клиника
23 Sun125
 
26.06.12
16:14
ТабДокумент.АвтоМасштаб = Истина;
   ТабДокумент.ПолеСверху = ТабДокумент.ВысотаСтраницы/2;
   ТабДокумент.ПолеСнизу = 0;

все равно высота страницы определяется как для масштаба 100.
24 Sun125
 
26.06.12
16:15
(22) не клиника, а уже просто запутался. у меня всегда автомасштаб установлен был, с самого начала. а потом высоту мерял
25 Sun125
 
26.06.12
16:17
Как определить заранее высоту, если неизвестно на второй половине листа какая область по ширине будет
26 Sun125
 
26.06.12
16:25
печатная фома может быть очень широкая, что умещаясь по ширине листа, она неизвестно как по высоте сжимается. в итоге, середина листа сдвигается вверх
27 Sun125
 
26.06.12
16:37
up..
28 Бледно Золотистый
 
26.06.12
16:45
(25)Похоже что никак. Имхо при масштабировании уже происходит работа с изображением, а не документом. Придется вопрос решать как-то иначе.
29 Sun125
 
26.06.12
16:56
(28) ПроверитьВывод() тоже не поможет тут?
Я бы попробовал  его использовать, но почему-то вот он Истину всегда выдает...в 1000 раз массив областей увеличиваю, все равно якобы помещается
       МассивОбластей = Новый Массив;
       Для КоличествоОбластей = 1 По 1000 Цикл
           МассивОбластей.Добавить(ОбластьПустаяСтрока);
           Если НЕ ТабДокумент.ПроверитьВывод(МассивОбластей) Тогда
               Прервать;
           КонецЕсли;
       КонецЦикла;
30 Бледно Золотистый
 
26.06.12
17:07
(29) ПроверитьВывод - я вообще этой штуке не доверяю, использую дополнительный табдок и проверяю количество страниц.
В любом случаи при масштабировании ТабДокумент уменьшается уже после заполнения. Как заранее узнать масштаб в %-тах до масштабирования я не знаю.