Modber Сообщество
профессионалов по 1С

Вычислить и сложить высоту строк в макете

  
Сообщений: 1

0
Есть докум., в него забиваю строку, и в зависимости от длины строки когда не помещаеться то переноситься на другую строку.
И есть шаблон который должен распологаться на определенной высоте, но при перетаскивании строк, то текст сдвигаеться вниз.
Прикрепляю еще одну пустую строку потом задаю для нее высоту «100 — Высота Предыдущей Строки», чтобы другая строка была высотой ниже на высоту первой, и когда там две строки то «100 — Высота Предыдущих Строк ВСумме».
А в отладке вижу что высота строк = «1» то сплюсевать не могу.
Как можно сложить это?
Сообщений: 76

0
изготовьте возвышение подвальную этакой, дабы он залезал на страницу только если исключается в "верном" убеждении, а если намереваясь на одну строку далее — уже передвигался на вытекающую страничку. И теперь при поддержки кода в главном цикле назначаете число бессодержательных строк (изменчивая Количество Строк), какие можно (и надо!) ввести, дабы подвальная снова не передвигалась, а во другом цикле уже вводите это число на печать.
Сообщений: 32

0
Обычно сталкивался с таким вопросов когда необходимо было расположить макет по определенному шаблону, например:
Шапка страницы — 5 см
Тело страницы
Подвал страницы — 5 см.

Соответственно необходимо при формировании табличного документа выводить в него такое количество строк, что бы Подвал помещался на той же странице. Я обычно делал так:
Получал области подвала и шапки страницы в отдельные области. Далее в цикле формирования тела страницы формировал служебный табличный документ. Далее используя функцию "ПроверитьВывод" можно определить помещается ли табличный документ на страницу

Пример:
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока= Макет.ПолучитьОбласть("Строка");
ОбластьПодвал= Макет.ПолучитьОбласть("Подвал");

ТабДок.Вывести(ОбластьШапка);

ТабДокСлужебный = Новый ТабличныйДокумент;
ТабДокСлужебный.Вывести(ОбластьШапка);
ТабДокСлужебный.Вывести(ОбластьПодвал);

Для Каждого СтрокаТЧ Из Тч Цикл

ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);

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

ТабДокСлужебный = Новый ТабличныйДокумент;
ТабДокСлужебный.Вывести(ОбластьШапка);
ТабДокСлужебный.Вывести(ОбластьПодвал);
ТабДокСлужебный.Вывести(ОбластьСтрока);
Иначе
ТабДок.Вывести(ОбластьСтрока);
ТабДокСлужебный.Вывести(ОбластьСтрока);
КонецЕсли;

КонецЦикла;

ТабДок.Вывести(ОбластьПодвал);
ТабДок.Показать();
В начало страницы 
|
Перейти на форум: