|
автомасштаб по высоте | ☑ | ||
---|---|---|---|---|
0
alexsandrinia
21.05.12
✎
10:00
|
необходимо вывести табличную часть на одну страницу. при малом количестве строк - всё нормально, но вот если строк много...как можно сделать, чтоб масштаб уменьшался?
|
|||
1
Капитан О
21.05.12
✎
10:03
|
даже не знаю, что предложить...
|
|||
2
Cube
21.05.12
✎
10:07
|
Думаю, надо курить ПроверитьВывод() и МасштабПечати.
|
|||
3
golden-pack
21.05.12
✎
10:08
|
разместить на 1 страницу
|
|||
4
golden-pack
21.05.12
✎
10:09
|
в настройках принтера. Нафига тут еще кодить.
|
|||
5
alexsandrinia
21.05.12
✎
10:10
|
(4) в настройках принтера надо постоянно указывать определённый масштаб, в то время как размер документа каждый раз меняется
|
|||
6
Balabass
21.05.12
✎
10:10
|
Масштаб - по ширине листа.
|
|||
7
Cube
21.05.12
✎
10:12
|
(6) )))
|
|||
8
alexsandrinia
21.05.12
✎
10:16
|
(2)
|
|||
9
alexsandrinia
21.05.12
✎
10:16
|
что даст ПроверитьВывод() ?
|
|||
10
Cube
21.05.12
✎
10:19
|
(9) В СП есть полное описание, скопипастить?))
|
|||
11
alexsandrinia
21.05.12
✎
10:22
|
(10) там же идёт только проверка, если Ложь, тогда не выведется,
а мне надо чтоб выводилось в этом случае, подогнав масштаб под страницу |
|||
12
Cube
21.05.12
✎
10:24
|
(11) Проверить, уменьшить масштаб, проверить, уменьшить масштаб и т.д. Не?
|
|||
13
alexsandrinia
21.05.12
✎
10:26
|
(12) хм...что-то похоже на правду...
получается, это в конце проверять надо? |
|||
14
Cube
21.05.12
✎
10:27
|
(13) Не, это надо проверять в процедуре ПриНачалеРаботыСистемы() :)
|
|||
15
alexsandrinia
21.05.12
✎
10:28
|
(14)не, серьёзно, где?
|
|||
16
Cube
21.05.12
✎
10:29
|
(15) Ну перед тем, как показать ТабДокумент пользователю...
|
|||
17
alexsandrinia
21.05.12
✎
10:31
|
(15)ааа...понятно теперь.
вот вопрос ещё - как 2 РКО на одну страницу вывести? можно ли 2 раза в макете отобразить области, или через цикл? |
|||
18
ErrorEd88
21.05.12
✎
10:32
|
(15) Если типовая, то лучше в общей форме печати документов - в функции печати документа - ничего не даст.
|
|||
19
Cube
21.05.12
✎
10:39
|
(17) Выведи первую, потом также выведи вторую в этот же ТабДокумент.
|
|||
20
alexsandrinia
21.05.12
✎
10:42
|
(19) а код примерно подскажешь?
|
|||
21
Cube
21.05.12
✎
10:44
|
(20) Конечно! Что мне, жалко что ли))
ТабДокумент = Новый ТабличныйДокумент; //Выводим печатную форму 1 //Выводим печатную форму 2 ТабДокумент.Показать(); |
|||
22
alexsandrinia
21.05.12
✎
10:45
|
(24) Печатная форма одна и та же
|
|||
23
hhhh
21.05.12
✎
10:47
|
(22) тогда только так
ТабДокумент = Новый ТабличныйДокумент; //Выводим печатную форму //Выводим печатную форму ТабДокумент.Показать(); |
|||
24
Cube
21.05.12
✎
10:50
|
(23) Черт, опередил!!!))
|
|||
25
alexsandrinia
21.05.12
✎
10:51
|
(23)
просто счётчик поставлю и всё?))) |
|||
26
Cube
21.05.12
✎
10:53
|
(25) Нет, придется два счетчика ставить: для холодной воды и для горячей воды...
|
|||
27
alexsandrinia
21.05.12
✎
10:56
|
(26)остряк!)))
|
|||
28
Cube
21.05.12
✎
10:57
|
(27) А чо я? Я ни чо... :)
|
|||
29
hhhh
21.05.12
✎
11:03
|
(27) если как в (23) нужно просто скопипастить кусок текста, два нажатия мышкой. А если вы начнете счетчики устанавливать, какие-то куски программы дописывать-переписывать, оно вам надо? Эти счетчики?
|
|||
30
alexsandrinia
21.05.12
✎
11:05
|
(29) а если после каждой области
ТабДокумент.Вывести(ОбластьМакета); тогда как сделать? ТабДокумент.Вывести("макет"); -так? |
|||
31
hhhh
21.05.12
✎
11:07
|
почему, пишите
ТабДокумент.Вывести(ОбластьМакета); |
|||
32
Cube
21.05.12
✎
11:07
|
(30) Чо?)
|
|||
33
alexsandrinia
21.05.12
✎
11:11
|
(31), (32) в макете есть несколько областей. и каждая область выводится
ТабДокумент.Вывести(ОбластьМакета); если так писать 2 раза , то понятно что получится - будет задваиваться документ с областями. а надо 2 отдельных документа можно как-нибудь сразу всё вывести целиком? |
|||
34
Cube
21.05.12
✎
11:13
|
(33) Тебе же сказали - нет. Читай (23).
|
|||
35
alexsandrinia
21.05.12
✎
11:25
|
(34)получается, что
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); нужно продублировать после каждой ТабДокумент.Вывести(ОбластьМакета); строку ТабДокумент.Вывести(ОбластьМакета); ? правильно я понимаю? |
|||
36
Cube
21.05.12
✎
11:35
|
(35) Ну ладно, пожую за тебя, расти лентяем:
ТабДокумент = Новый ТабличныйДокумент; //Выводим печатную форму ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); //Выводим печатную форму ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.Показать(); Ну что, похоже на (23)?)) |
|||
37
alexsandrinia
21.05.12
✎
11:39
|
(36) слишком большой код получится)))
|
|||
38
alexsandrinia
21.05.12
✎
11:39
|
лучше тогда цикл)))
|
|||
39
Cube
21.05.12
✎
11:40
|
(38) Ну тогда читай (26) :))
|
|||
40
hhhh
21.05.12
✎
15:02
|
(38) зато цикл по времени в 2 раза дольше будет выполняться. Юзер заснет за экраном с этим циклом.
|
|||
41
alexsandrinia
22.05.12
✎
09:54
|
(12) по уменьшению масштаба...
Сч = 1; Если Не ТабДокумент.ПроверитьВывод(ОбластьМакета) Тогда ТабДокумент.МасштабПечати=100-10*Сч; //Сообщить ("Документ не умещается на страницу!"); Сч = Сч +1; КонецЕсли; делаю так, но в одну страницу всё равно не умещается...остаётся пару строчек на второй странице и текст то не очень большой... |
|||
42
Cube
22.05.12
✎
10:15
|
(41) Цикл используй. В твоем варианте минимальный масштаб 90%...
|
|||
43
alexsandrinia
22.05.12
✎
10:33
|
(41) подскажешь как?
|
|||
44
Cube
22.05.12
✎
10:43
|
(43) Вот ты мне скажи, тебе что самому не интересно разобраться? Ведь тут даже синтаксис 1С знать не надо - чистая логика...
ТекущийМасштаб = 100; Пока ТекущийМасштаб > 50 Цикл Если ТабДокумент.ПроверитьВывод(ОбластьМакета) Тогда Прервать; Иначе ТекущийМасштаб = ТекущийМасштаб - 5; ТабДокумент.МасштабПечати = ТекущийМасштаб; КонецЕсли; КонецЦикла; |
|||
45
alexsandrinia
22.05.12
✎
10:44
|
интересно, но меня постоянно отвлекают и не дают сконцентрироваться...
|
|||
46
alexsandrinia
22.05.12
✎
10:51
|
странно, но почему-то всё равно выходит 2 страницы...может, убрать автоформат по ширине страницы?
|
|||
47
Cube
22.05.12
✎
10:59
|
(46) Само-собой!))
|
|||
48
Cube
22.05.12
✎
11:01
|
+(44) Наверное, красивее будет так:
ТабДокумент.МасштабПечати = 100; Пока ТабДокумент.МасштабПечати > 50 Цикл Если ТабДокумент.ПроверитьВывод(ОбластьМакета) Тогда Прервать; Иначе ТабДокумент.МасштабПечати = ТабДокумент.МасштабПечати - 5; КонецЕсли; КонецЦикла; |
|||
49
alexsandrinia
22.05.12
✎
11:18
|
делаю настройки при печати (ставлю 85%), но каждый раз автоматом выходит на значении 95%...
|
|||
50
Cube
22.05.12
✎
11:32
|
(49) Чо?)
Кстати, у тебя ТабДокумент.АвтоМасштаб равно ЛОЖЬ? |
|||
51
alexsandrinia
22.05.12
✎
11:38
|
(50)да, так стоит
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |