Имя: Пароль:
1C
 
Туплю с выводом картинки в область табличного документа
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);
    ОблОб.Объединить();
    //От
    Рис=  Табдок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
    Рис.Картинка = Картинка;
    рис.ВыводитьНаПечать = Истина;
    рис.РазмерКартинки = РазмерКартинки.АвтоРазмер;
    Рис.Расположить(ОблОб);
    
КонецЕсли;

И все, картинка по области расползается как надо