Имя: Пароль:
1C
1С v8
Макет, и разное количество даных
0 tempaccount
 
29.08.13
02:11
Доброго времени суток.
Заранее прошу прощение за вопрос:

Есть макет. Состоит из двух частей:
Нижняя часть Таблица, с ней все ясно (почти), классически заполняется.
Верхняя же, это блоки (название, число и место под подпись), их количество ограничено, но заранее (Само-собой) не известно и разниться. Таких блоков в ширину помещается, допустим, 3, и строчки 2.

Цель: а) Неважно сколько блоков, даже при отсутствии, размеры полей статичны, т.е. все пустое, но таблица ВСЕГДА начинается в определенной позиции (т.е. распечатаем 1000 разных экземпляров, а таблица в одном месте, на каждом листе).

б) Как сделать добавление этих блоков корректно?

Я, экий криворук, из-за без опытности предположил, что можно создать просто шаблон, и заполнять им, как и таблицу, через цикл обхода результата запроса. НО тогда, таблица будет прыгать, в зависимости от количества строк, да и заполняться "В БОК" таким образом хз как.

Либо напихать, Допустим 6 параметров, по три на строку, но это глупо (ИМХО), да и если только три блока, то нижний ряд опять же не заполнится и таблица подпрыгнет. Если же ост параметры оставлять пустыми, то "разметка" будет видна. (Для указания подписи, и эстетики общей)

П.с. Заранее спасибо.
П.п.с. Очень надеюсь, что доходчиво написал. Всем заранее спасибо.
1 ИсчадиеADO
 
29.08.13
02:36
1) вот эта таблица, блоки, она на всех страницах одна и та же? Если да, то может стоит воспользоваться ПовторятьПриПечатиСтроки?
2 ИсчадиеADO
 
29.08.13
02:38
а не, прочел еще раз, не то написал
3 ИсчадиеADO
 
29.08.13
02:53
С макетами давно не работал, все больше с СКД, поэтому:

можно считать добавленные секции, при необходимости добавлять пустую. Т.е. условно на 1ую таблицу отводим 30 строк и это максимум, если меньше 30 добавляем пустые. Но тогда возникнет проблема, если у тебя из-за переноса строки в таблице выведется 1 секция, но по ширине она будет как 2-3.

В таком случае ты можешь пустую секцию сделать оч. маленькой. А проверять, дошел ли ты до места, когда нужно выводить 2ую таблицу методом ПроверитьВывод в который будешь передавать фиктивную секцию, по ширине таблицы чтоб была = размеру с низу. Если она одна влезает (в качестве параметра передается массив областей), а она + пустая маленькая секция нет, то время выводить таблицу.

Может кто завтра те че лучше предложит, но можно вот так
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший