Разбиение текста объединённых строк в макете на страницы

1. user705522_constantin_h 35 18.10.18 10:46 Сейчас в теме
При выводе на печать из текста из объединенных строк из макета строка на границе страниц частично выводится на одной странице частично на следующей. Регулировки полей, высоты строк ничего не дают: просто другая строка начинает разбиваться по страницам. Как этого избежать?
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vadim1011985 99 18.10.18 11:03 Сейчас в теме
(1) см. пунктирные линии в макете - область печати , если она не ровная (со сдвигами ) то так и будет переносится
+
3. user705522_constantin_h 35 18.10.18 11:58 Сейчас в теме
(2)В макете объединены все строки текста без разделения. При печати текст разбивается на страницы. И строка на границе страниц частично выводится на одной странице, частично на следующей.
+
4. qazaas 18.10.18 12:08 Сейчас в теме
(3) Проверяй возможен ли вывод строки перед ее выводом.
+
5. user705522_constantin_h 35 18.10.18 12:56 Сейчас в теме
(4)Проблема в том, что высота строк в тексте и высота строк макета разные. Для текста был выбран Шрифт диалогов и меню, Шрифт диалогов и меню, 8, у высоты строк макета автовысота. В результате строки макета разрезали некоторые строки текста по вертикали. Это и происходило при выводе на печать: часть строки текста на одной странице, которая помещалась в строку макета, часть на другой странице.
+
6. qazaas 18.10.18 13:08 Сейчас в теме
(5) С одной стороны непонятно, но с другой я сталкивался с некоторыми косяками с макетом при редактировании.
В общем, нужно будет поправить - все дело в нем. Проверяй также как он будет выглядеть у пользователя (при открытом макете > Файл - Предварительный просмотр) - это все можно посмотреть в самом конфигураторе.

P.S. а задать один шрифт, один размер и свойство "РазмещениеТекста" в значение "Переносить" не пробовали?
+
7. user705522_constantin_h 35 18.10.18 13:53 Сейчас в теме
(6)
в значение "Переносить" не пробовали?

Так всё и стоит.
+
8. qazaas 18.10.18 14:29 Сейчас в теме
(7) Несколько выше вы написали, что у вас объединены строки. Попробуйте в коде установить АвтоМасштаб документу.

Пример:
ТабДок.АвтоМасштаб = Истина;


Еще поясните, что значит
высота строк в тексте и высота строк макета разные


Точнее, непонятно, о каком тексте идет речь. По сути, разницы нет какой текст вы хотите разместить у себя в макете, так как все настройки выведенного текста регулируются самими ячейками, куда выводится текст, в которых вы и задаете шрифт, цвет и т.д.

Думаю, вы где-то что-то упустили.

P.S. пришлите скриншот вашего макета в конфигураторе и готовый макет в Предприятии.
+
9. user705522_constantin_h 35 18.10.18 15:23 Сейчас в теме
(8)
Еще поясните, что значит
высота строк в тексте и высота строк макета разные

В макете весь текст занесён в правую верхнюю ячейку области. Затем выделены ячейки области и объединены. Высота строк текста и строк таблицы различная. Если выделить строку таблицы, то некоторые строки разрезают строки текста.
Прикрепленные файлы:
+
10. qazaas 19.10.18 07:49 Сейчас в теме
(9) Тут проблема в объединенных ячейках.
Разместите текст, по возможности, в одной ячейке для которой свойство "РазмещениеТекста" поставьте в значение "Переносить".
Неизвестно, что у вас вверху и внизу - если где-нибудь текст "пересекается" с другими ячейками, в которых свои значения (находятся на одной строке), тогда там, по необходимости, вставляйте часть своего текста, чтобы скорректировать красоту.
А таким образом, как у вас ячейки не объединяют. Полагаю, что вы изначально опасались, что текст выходит вправо за границу и/или при печати не отображается полностью и вы решили объединить ячейки.

Upd: если вы не только по вертикали, но и по горизонтали объединяли, а не раздвигали колонку (опять-таки, не видно из куска скриншота), тогда сделайте объединение только по горизонтали со свойством "РазмещениеТекста" этой объединенной ячейки равным "Переносить".
+
11. user705522_constantin_h 35 19.10.18 10:06 Сейчас в теме
(10)Текст размещён в одной, правой верхней ячейке, размещение текста установлено в значение Переносить. Затем объединён диапазон ячеек, в которых этот текст должен быть выведен. Высота строк в диапазоне не совпадает с высотой строк таблицы. Параметра межстрочный интервал у текста нет.
Прикрепленные файлы:
+
12. Sashares 34 19.10.18 10:24 Сейчас в теме
(11)Как вариант, перед печатью получать текст из этой ячейки и вручную разбить его на разные строки макета, например, по символу переноса строки. И выводить в макет печати уже эти строки.
Пример:
МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИсходныйТекст,Символы.ПС);
		
		Для Каждого ЭлМас Из МассивСтрок Цикл
			СтрокаЗаписки = Макет.ПолучитьОбласть("СтрокаЗаписки");
			СтрокаЗаписки.Параметры.ТекстЗаписки = ЭлМас;
		
			ТабДокРезультат.Вывести(СтрокаЗаписки);
		КонецЦикла;
+
13. qazaas 19.10.18 10:31 Сейчас в теме
(11) На скриншотах видать, что вы объединили еще и по ВЕРТИКАЛИ, а этого делать не надо. Объедините только по горизонтали. Я у себя только что вашу ситуацию разыграл при различных вариантах. Раз текст на 14 строке, так и объедините ТОЛЬКО ОДНУ 14 строку ПО ГОРИЗОНТАЛИ(не обязательно полностью - это уже зависит от ВИДИМОЙ вами ШИРИНЫ, то есть какую ширину текста вы хотите видеть)
+
14. user705522_constantin_h 35 19.10.18 10:44 Сейчас в теме
(13)
объединили еще и по ВЕРТИКАЛИ, а этого делать не надо

Тогда текст не разбивается по страницам: на первой странице только заголовок, на второй весь текст, на третьей только подписи.
+
15. qazaas 19.10.18 11:02 Сейчас в теме
(14) Ну в таком случае, только самому по частям разбивать текст в макете или...
1. В макете просто берете ячейку или объединенную горизонтальную строку, устанавливаете у нее свойство заполнение в значение "Параметр", "обзываете" этот параметр, к примеру "ВыводимыйТекст" и присваиваете всей строке имя (даете название области) (выделить строку, нажимаете CTRL+Shift+N и называете свою область, к примеру "ОбластьСтроки").

2. Весь текст можно поместить, скажем, в текстовый документ, созданный в том же конфигураторе или внешней обработке в виде макета. И с него читать построчно, проверяя его вывод, влезает или нет методом "ТабДок.ПроверитьВывод(Область)", если влезает, тогда выводить строку, если не влезает, тогда добавляете горизонтальный разделитель страниц (ТабДок.ВывестиГоризонтальныйРазделительСтраниц())

Пример:
Если Не ТабДок.ПроверитьВывод(ВыводимаяОбласть) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;


И тогда все ровно у вас встанет. Работая через конфигуратор, вы сами будете все контролировать.
toxa688; +1
16. user705522_constantin_h 35 19.10.18 11:20 Сейчас в теме
(15)Ещё проблема, что на разных принтерах по разному разбивает. На одном делаешь, увеличивая высоту строки, а на другом принтере нужна другая строка.
+
17. qazaas 19.10.18 11:27 Сейчас в теме
(16) Возможно это особенности принтеров. Но по идее, свойство табличного документа "Автомасштаб" в значении "Истина" должно помочь. Как вариант, можно будет попробовать отдельно поработать с определенный принтером, например:

Если ТабДок.ИмяПринтера = "New printer HP" Тогда
ТабДок.Автомасшитаб = Ложь;
ТабДок.МасштабПечати = 125;
ТабДок.ПолеСверху = 10;
ТабДок.ПолеСлева = 10;
КонецЕсли;
+
18. user705522_constantin_h 35 19.10.18 11:29 Сейчас в теме
(17)Мне кажется дело в драйверах и размерах пикселя у разных принтеров.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот