|
Табличный документ - вывод картинки в нужном месте листа, если листов несколько | ☑ | ||
---|---|---|---|---|
0
Михаил 1С
18.06.13
✎
10:46
|
Здравствуйте! Столкнулся с тем, что в Табличный документ очень трудно вывести картинку в нужное место на листе.. вы будете смеяться, ведь можно точно задать координаты левого верхнего угла... но все осложняется тем, что листов много, а координаты единые для всей этой простыни. При этом, коорданаты второго листа зависят от того сколько строк выведено на первом листе... В общем положение картинки плывёт от листа к листу, и это меня не устраивает. Как можно задать жесткие координаты на каждом листе?
|
|||
1
Михаил 1С
18.06.13
✎
10:50
|
Я еще более-менее добился стабильного положения на всех листах, когда все строки в макете сделал фиксированной высоты. Но теперь пришлось сделать несколько строк с авто-высотой, чтобы хорошо выводилась многострочная строка. От этого трудно стабилизировать положение картирки на следующих листах.
|
|||
2
Михаил 1С
18.06.13
✎
10:51
|
Или каждый лист делать на отдельном ТабличномДокументе, а потом добавить их всех в первый? С надеждой, что таким макаром положение картинок будет как надо?
Попробую. |
|||
3
Cyberhawk
18.06.13
✎
10:53
|
Вариант 1. Попробуй сделать масштабирование шрифта (программно) в многострочных строках, тогда координаты будут на каждом листе с одинаковым шагом.
Вариант 2. Запоминай координаты каждого листа в зависимости от кол-ва строк предыдущего. Вариант 3. Выводи несколько табдоков в один с разделителями. |
|||
4
Cyberhawk
18.06.13
✎
10:53
|
P.S. Картинка - это печать что ли?
|
|||
5
НЕА123
18.06.13
✎
10:54
|
(2)
наверно, это самое правильное решение. |
|||
6
Галахад
гуру
18.06.13
✎
10:55
|
Может в колонтитул запихать?
|
|||
7
Михаил 1С
18.06.13
✎
10:58
|
(4) Картинка - это графический файл (изображение товара)
|
|||
8
НЕА123
18.06.13
✎
11:11
|
(6)
не впихнешь. но можно повторять при печати строки. |
|||
9
Михаил 1С
18.06.13
✎
11:14
|
(6) Картинка находится посередине листа и занимает половину всего листа, это Пуп мира :)
А вокруг находится текст - то есть сверху и снизу |
|||
10
Михаил 1С
18.06.13
✎
11:27
|
(2), (5) - похоже, что ВзЛеТеЛо!
|
|||
11
Михаил 1С
18.06.13
✎
11:27
|
Ура! Сейчас дотестю.
|
|||
12
Михаил 1С
18.06.13
✎
11:36
|
Да, всё офигенно!
И очень красиво! Не тот геморрой, что был, а человеческое изображение :) Спасибо всем, кто помогал и всем, кто слушал! |
|||
13
Cyberhawk
18.06.13
✎
20:21
|
Код сюда напиши
|
|||
14
Михаил 1С
19.06.13
✎
05:50
|
Держите:
НомерСтраницы = 0; МТабДоки = Новый Массив; Для каждого стр из ТаблСтраниц Цикл НомерСтраницы = НомерСтраницы + 1; МТабДоки.Добавить(Новый ТабличныйДокумент); ТекТабДок = МТабДоки[НомерСтраницы-1]; //подготовка Областей - заголовок, середина, подвал: //... ТекТабДок.Вывести(ОблЗаголовок); ТекТабДок.Вывести(ОбластьСередина); ТекТабДок.Вывести(ОблПодвал); //Найдем изображение //... //ТекущаяКартинка = ХДИ.Хранилище.Получить(); //Выведем изображение в Текущий ТабДок: Рис = ТекТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); Рис.Картинка = ТекущаяКартинка; Рис.Имя = "План" + НомерСтраницы; Рис.верх = 43; Рис.лево = 2; Рис.высота = 140; Рис.ширина = 180; Рис.РазмерКартинки = РазмерКартинки.Пропорционально; КонецЦикла; ТабДокСоставной = Новый ТабличныйДокумент; ПервыйРаз = Истина; Для каждого Эл из МТабДоки Цикл Если Не ПервыйРаз Тогда ТабДокСоставной.ВывестиГоризонтальныйРазделительСтраниц(); Иначе ПервыйРаз = Ложь; КонецЕсли; ТабДокСоставной.Вывести(Эл); КонецЦикла; ТабДокСоставной.Показать(); |
|||
15
Михаил 1С
19.06.13
✎
05:53
|
В макете ОбластьСередина состоит из одной пустой строки, высотой 472,00. Она предназначена специально для картинки.
Перед ней - от 3 до 8 строк шрифтом 12пт. |
|||
16
kosts
19.06.13
✎
06:16
|
(0) В начале каждого листа выводишь (сразу при первоначальном заполнении) невидимую картинку маркер. Далее дело техники прибавить смещение, получить нужную координату.
|
|||
17
Михаил 1С
19.06.13
✎
07:00
|
(16) В начале листа - это как задать?
Есть такая функция Вывести картинку в начало текущего листа? Ты как это делал? |
|||
18
kosts
19.06.13
✎
07:04
|
Развивая (17).
В начале каждого листа с первой верхней областью выводим свою картинку. После вывода всего документа выполняем:
В общем-то и всё... |
|||
19
kosts
19.06.13
✎
07:07
|
(17) Что бы таблица была разбита на листы применять ПроверитьВывод() и горизонтальный разделитель.
|
|||
20
Михаил 1С
19.06.13
✎
07:08
|
(18) "В начале каждого листа с первой верхней областью выводим свою картинку"
Вот тут по-подробнее: как вывести картинку "с первой верхней областью" нужного листа? |
|||
21
kosts
19.06.13
✎
07:10
|
(20) В макет, заранее в нужной области рисуешь картинку. В документ выводишь область, картинка тянется вместе с ней.
|
|||
22
Михаил 1С
19.06.13
✎
07:26
|
(21) Понятно. Возможно, что можно и так.
Я решил эту задачу другим способом. |
|||
23
kosts
19.06.13
✎
07:30
|
(22) Хозяин барин.
|
|||
24
Михаил 1С
19.06.13
✎
07:43
|
(23) Я был-бы очень рад твоему решению, если бы не нашёл своё.
|
|||
25
kosts
19.06.13
✎
07:50
|
(24) "Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете".
— Martin Golding |
|||
26
Михаил 1С
19.06.13
✎
07:57
|
На оборонных предприятиях есть такой девиз: "Человека нет - программа работает".
То есть - не важно, что программист заболел, или в отпуске, или геройски погиб за клавиатурой... Если он что-то написал и пустил в дело, то это должно работать, и так, чтобы с этим мог разобраться другой программист и не долго матерясь изменить программу при необходимости. |
|||
27
kosts
19.06.13
✎
08:01
|
(26) Что сказать, согласен с этим...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |