|
Туплю с выводом картинки в область табличного документа | ☑ | ||
---|---|---|---|---|
0
Fuas4
11.10.15
✎
07:51
|
Господа, есть отчет на СКД, отчет выводит картинку (основное изображение товара) в макет. Делается это обходом ячеек табличного документа, как описано вот тут: http://catalog.mista.ru/public/95442/, только перед этим я еще обхожу ТД и объединяю ячейки.Вывести в одну ячейку картинку (как в примере) получается, но у меня ячейки объединенные и, когда я пытаюсь вывести картинку в эти ячейки, они почему-то разъединяются. Как быть?
Пробую так: Для с=1 По В Цикл Для к=1 По Ш Цикл СтрокОбл = "R"+Формат(с,"ЧГ=0")+"C"+Формат(к,"ЧГ=0"); Область = ТабДок.ПолучитьОбласть(СтрокОбл); ТекОбласть = ТабДок.Область(СтрокОбл); Расшифровка = ТекОбласть.Расшифровка; Если ТипЗнч(Расшифровка) = Тип("СправочникСсылка.ХранилищеДополнительнойИнформации") Тогда Картинка = Расшифровка.Хранилище.Получить(); Если Картинка = Неопределено Тогда Продолжить; КонецЕсли; СтрокОбл2 = СоответствиеОбластей.Получить(СтрокОбл); Область2 = ТабДок.ПолучитьОбласть(СтрокОбл2); ТекОбласть2 = ТабДок.Область(СтрокОбл2); ТекОбласть2.ВысотаСтроки = 22; ТекОбласть2.ШиринаКолонки = 22; Рисунок = Область2.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); Рисунок.Картинка = Картинка; Рисунок.Лево = 1; Рисунок.Верх = 1; Рисунок.Высота = 22; Рисунок.Ширина = 22; Рисунок.ГраницаСверху = Истина; Рисунок.ГраницаСлева = Истина; Рисунок.ГраницаСнизу = Истина; Рисунок.ГраницаСправа = Истина; Рисунок.РазмерКартинки = РазмерКартинки.АвтоРазмер; Рисунок.ВыводитьНаПечать = Истина; Рисунок.Расположить(Область2.ТекущаяОбласть); ТабДок.ВставитьОбласть(Область2.ТекущаяОбласть,ТабДок.Область(СтрокОбл2)); КонецЕсли; КонецЦикла; КонецЦикла; СоответствиеОбластей - это Соответствие, где в ключе ячейка с расшифровкой (например, "R7C1"), а в значении, область, куда выводить рисунок хочу (например,"R7C1:R10C1") |
|||
1
Fuas4
11.10.15
✎
08:03
|
Объединеные ячейки - в разных группировках, если это важно.
Вот картинка: http://s019.radikal.ru/i618/1510/a5/6ee1895d8976.png |
|||
2
Cyberhawk
11.10.15
✎
08:05
|
В макетах СКД нарисуй, как именно там - не подскажу
|
|||
3
Fuas4
11.10.15
✎
08:07
|
(2) так и нарисовал. Только в макете СКД 2 разные группировки все равно не объединить. ПОэтому объединяю потом "ручным" обходом. Косяк, как я понимаю, где-то тут:
Рисунок.Расположить(Область2.ТекущаяОбласть); ТабДок.ВставитьОбласть(Область2.ТекущаяОбласть,ТабДок.Область(СтрокОбл2)); Но в чем именно, понять не могу |
|||
4
Fuas4
11.10.15
✎
10:49
|
В общем, делалось это все сильно. Вдруг кто найдет ветку, вот пример:
СтрокОбл2 = СоответствиеОбластей.Получить(СтрокОбл); Если не СтрокОбл2 = Неопределено Тогда ОблОб = табдок.Область(СтрокОбл2); ОблОб.Объединить(); //От Рис= Табдок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); Рис.Картинка = Картинка; рис.ВыводитьНаПечать = Истина; рис.РазмерКартинки = РазмерКартинки.АвтоРазмер; Рис.Расположить(ОблОб); КонецЕсли; И все, картинка по области расползается как надо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |