|
Вывод области превышающей размер страницы
|
Я
|
|
gidilica_alexandr 08.09.16 - 16:50 | Столкнулся с проблемой: есть область макета с установленным свойством "Переносить" в нее загоняем какой-то текст.. так вот нарвались на случай, когда размер получившейся области с текстом превышает высоту страницы! 1С то что не влезает на страницу обрезает при печати. Кто с сталкивался? |
gidilica_alexandr 1 - 08.09.16 - 17:20 | версия платформы 8.3.6.2299
|
vicof 2 - 08.09.16 - 17:25 | Я сталкивался
|
vicof 3 - 08.09.16 - 17:26 | Запили голосовалку
|
gidilica_alexandr 4 - 08.09.16 - 17:28 | ( 2) Проблему решил обычным макетом? или переписывали через, например, шаблоны ворда?
( 3) не понял для чего |
Defender aka LINN 5 - 08.09.16 - 17:39 | ( 0) У тебя одна строка получается больше страницы? |
Vladal 6 - 08.09.16 - 17:41 | Попробуй метод табличного документа ПроверитьВывод().
Если, например, не помещается, обрезай строку. Можно сделать рекурсивно.
|
Vladal 7 - 08.09.16 - 17:42 | ( 2) Сталкивался - расскажи, как решил.
Тут же не тупо ответ в булевой логике, а вопрос как решить. |
vicof 8 - 08.09.16 - 17:45 | ( 7) Вопрос был "Кто сталкивался?", а не "Как решить?" |
aleks_default 9 - 08.09.16 - 17:53 | ( 0)Было дело. У ячейки свойство "Размещение текста" стоит "Переносить", но при формировании печ. формы текст обрезается. Автовысота строки не помогает. Никак не решил. |
vicof 10 - 08.09.16 - 17:55 | ( 9) Надо было еще высоту в 0 поставить |
aleks_default 11 - 08.09.16 - 17:58 | ( 10) В смысле и галку "Максимальная высота строк" тоже? |
vicof 12 - 08.09.16 - 18:40 | ( 11) когда высоту ячейки редактируешь, там галка и поле. Их надо вместе менять. Если высота есть, автовысота не действует |
aleks_default 13 - 09.09.16 - 09:13 | ( 12)Не, не то. Текст в ячейке формируется программно(Параметр), соответственно высоту строки я заранее не знаю и установить конкретное значение не могу.
Я просто галку Автовысота строки ставил/снимал, при этом галка "Максимальная высота строк" не стоит и значение высоты = 0. Но это не помогло. Все равно текст обрезается. |
vicof 14 - 09.09.16 - 09:22 | ( 13) Пичалька( Тогда надо на примере смотреть. |
Vladal Модератор 15 - 09.09.16 - 09:32 | ( 8) Тогда я лично прошу тебя от имени автора - поделись своим способом решения этой проблемы. |
gidilica_alexandr 16 - 19.09.16 - 12:29 | тут проблема именно в том, что при печати данные просто режутся.. на экране, если не стоит разделитель страниц - то все нормально
|
gidilica_alexandr 17 - 19.09.16 - 12:31 | ( 5) Да, именно так, одна строка превышает размер страницы.. никак делить я ее не могу, ну разве что чисто теоретически, но ваще хз как, ибо у меня и автопереносы строк есть, и перенос строки и ширина символа разная, разве что какнибудь посимвольно выводить текст и в этот момент разделять текст на отдельные строки, которые выводит как разные области, но это ппц геморно |
ifso 18 - 19.09.16 - 12:49 | ( 17)
> разве что какнибудь посимвольно выводить текст
ждем "спасите!символ превышает размер страницы!", не?)
или разделить суперпуперную строку и вывести в разные ячейки с соответствующим оформлением ячеячных границ не предлагать? |
aleks_default 19 - 19.09.16 - 13:25 | ( 17) Автомасштаб поставить не? |
gidilica_alexandr 20 - 19.09.16 - 14:10 | ( 19) уважаемый, автомасштаб выравнивает размер страницы по ширине, а у меня по высоте область не вмещается.. и все равно хотелось бы перенос на следующую страницу, а не тупое уменьшение масштаба
( 18) к чему передергивания? ну и то что вы предлагаете, вы хоть имеете представление как это реализовать и что за франкенштейн будет на выходе?? у меня шрифт не моноширный чтоб ячейками баловаться.. по этой же причине я не могу тупо символы в строчке считать и выводить |
ifso 21 - 19.09.16 - 16:39 | ( 20) к чему стоны? обрезая безразмернонемоноширинного франкенштейна вендор какбэ намЯкивает про подобное нетупое баловство, не? |
patria0muerte 22 - 20.09.16 - 05:31 | Выводи построчно. Я делал подобное примерно так:
Пока НомерСтроки <= СтрЧислоСтрок(ТекстРаздела) Цикл
ОбластьТекстРаздела = Макет.ПолучитьОбласть("РазделТекст");
ТекстСтроки = СтрПолучитьСтроку(ТекстРаздела, НомерСтроки);
ОбластьТекстРаздела.Параметры.ТекстРаздела = ТекстСтроки;
Если НЕ НомерСтроки = СтрЧислоСтрок(ТекстРаздела) Тогда
ОбластьТекстРаздела.Области.РазделТекст.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
КонецЕсли;
ВыводСПроверкой(ТабличныйДокумент, ОбластьТекстРаздела);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
Здесь ТекстРаздела в теории может превышать размер листа. Я бью его на строки и каждую строку отдельно вывожу.
Если текст без переносов строк - то конечно не взлетит.
Тогда можно попробовать пихать в таб. док количество символов порциями (штук по 20ть) и проверять вывод. Когда выводиться перестает - делаешь шаг назад и выводишь в фактический док то что влазит. |
gidilica_alexandr 23 - 20.09.16 - 09:56 | ( 22) Спасибо, вчера решил вопрос по-другому, но по схожей схеме
получил массив разделителей (символы которыми мы разделяем слова и т.п.) ну и ищу их в тексте, вывожу постепенно в табличный документ и проверяю через проверитьвывод().. думал что при одной области проверитьвывод закосячит, но нет - отработал..
у меня просто странный макет, там и шапка фиксированная есть, и колонтитулы снизу.. и ширина страницы не стандартная |
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший