Имя: Пароль:
1C
1С v8
Помогите с выводом картинки
0 Melcor
 
14.07.16
11:20
1С 8.2 КА В печатной форме добавил картинки
В цикле вывода строк номенклатуры добавил:
                Если СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить()<>Неопределено Тогда
                    Картинка = СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
                    ОбластьСтрока.Рисунки.D1.Картинка = Картинка;                
                                 
                КонецЕсли;    

Но в отчет выходит картинка от первой номенклатуры на несколько следующих, хотя у них есть свои картинки
1 Nuobu
 
14.07.16
11:24
ОбластьСтрока.Рисунки.D1.Картинка = Новый Картинка;
  
Если СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить()<>Неопределено Тогда
                    Картинка = СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
                    ОбластьСтрока.Рисунки.D1.Картинка = Картинка;                
                                
                КонецЕсли;
2 Melcor
 
14.07.16
11:29
(1) Не помогло(
3 Melcor
 
14.07.16
11:30
мТабДок.НачатьАвтогруппировкуСтрок();
    Для каждого СтрокаТЗ из ТЗбиг цикл
        Если СтрокаТЗ.ЗначениеАналог = "Группа" тогда
            НомУровня = СтрокаТЗ.УровеньГруппы;
            ОбластьСтрокаГр.Параметры.Группа          = СтрокаТЗ.ГруппаНом;
            мТабДок.Вывести(ОбластьСтрокаГр,НомУровня,"Основной",Истина);
            СтараяЦеноваяГруппа = "";
        ИначеЕсли СтрокаТЗ.ЗначениеАналог = "Основной" тогда
            Счетчик = Счетчик+1;
            Если СтрокаТЗ.ЦеноваяГруппа <> СтараяЦеноваяГруппа тогда
                Если сокрлп(строка(СтрокаТЗ.ЦеноваяГруппа))= "" тогда
                    ОбластьСтрокаЦГ.Параметры.ЦенГруппа    = "Нет ценовой группы";
                иначе
                    ОбластьСтрокаЦГ.Параметры.ЦенГруппа       = СтрокаТЗ.ЦеноваяГруппа;    
                КонецЕсли;
                СтараяЦеноваяГруппа = СтрокаТЗ.ЦеноваяГруппа;
                НомУровня2 = НомУровня+1;
                мТабДок.Вывести(ОбластьСтрокаЦГ,НомУровня2,"ЦеноваяГруппа",Истина);
                
                попытка
                    НаценкаПроц = ((СтрокаТЗ.Розн-СтрокаТЗ.Закуп)/СтрокаТЗ.Закуп)*100;
                исключение
                    НаценкаПроц = 0;
                КонецПопытки;
                
                ОбластьСтрока.Параметры.Ном          = Счетчик;
                ОбластьСтрока.Параметры.Арт          = СтрокаТЗ.Артикул;
                ОбластьСтрока.Параметры.Товар      = СтрокаТЗ.Номенклатура;
                ОбластьСтрока.Параметры.Закуп      = СтрокаТЗ.Закуп;
                ОбластьСтрока.Параметры.ДатаЗакуп = Формат(СтрокаТЗ.ДатаЗакуп, "ДЛФ=Д");    
                ОбластьСтрока.Параметры.Розн       = СтрокаТЗ.Розн;
                ОбластьСтрока.Параметры.ДатаРозн  = Формат(СтрокаТЗ.ДатаРозн, "ДЛФ=Д");
                ОбластьСтрока.Параметры.Наценка      = окр(НаценкаПроц);
                ОбластьСтрока.Параметры.Ост          = СтрокаТЗ.ОстатокМагазины;
                ОбластьСтрока.Параметры.Прод      = СтрокаТЗ.Продажи;
                СтруктураРасшифровки = Новый Структура;
                СтруктураРасшифровки.Вставить("Номенклатура",СтрокаТЗ.Номенклатура);
                СтруктураРасшифровки.Вставить("ОсновнойСклад",ОсновнойСклад);
                СтруктураРасшифровки.Вставить("СписокСкладов",СписокСкладов);
                ОбластьСтрока.Параметры.РасшифровкаАналогов = СтруктураРасшифровки;
                НомУровня3 = НомУровня2+1;
                
                ОбластьСтрока.Рисунки.D1.Картинка = Новый Картинка;
                Если СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить()<>Неопределено Тогда
                    Картинка = СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
                    ОбластьСтрока.Рисунки.D1.Картинка = Картинка;                
                КонецЕсли;    
                Картинка = "";
                
                мТабДок.Вывести(ОбластьСтрока,НомУровня3,"Основной",Истина);
            иначе
                попытка
                    НаценкаПроц = ((СтрокаТЗ.Розн-СтрокаТЗ.Закуп)/СтрокаТЗ.Закуп)*100;
                исключение
                    НаценкаПроц = 0;
                КонецПопытки;
                
                ОбластьСтрока.Параметры.Ном          = Счетчик;
                ОбластьСтрока.Параметры.Арт          = СтрокаТЗ.Артикул;
                ОбластьСтрока.Параметры.Товар      = СтрокаТЗ.Номенклатура;
                ОбластьСтрока.Параметры.Закуп      = СтрокаТЗ.Закуп;
                ОбластьСтрока.Параметры.ДатаЗакуп = Формат(СтрокаТЗ.ДатаЗакуп, "ДЛФ=Д");    
                ОбластьСтрока.Параметры.Розн       = СтрокаТЗ.Розн;
                ОбластьСтрока.Параметры.ДатаРозн  = Формат(СтрокаТЗ.ДатаРозн, "ДЛФ=Д");
                ОбластьСтрока.Параметры.Наценка      = окр(НаценкаПроц);
                ОбластьСтрока.Параметры.Ост          = СтрокаТЗ.ОстатокМагазины;
                ОбластьСтрока.Параметры.Прод      = СтрокаТЗ.Продажи;
                СтруктураРасшифровки = Новый Структура;
                СтруктураРасшифровки.Вставить("Номенклатура",СтрокаТЗ.Номенклатура);
                СтруктураРасшифровки.Вставить("ОсновнойСклад",ОсновнойСклад);
                СтруктураРасшифровки.Вставить("СписокСкладов",СписокСкладов);
                ОбластьСтрока.Параметры.РасшифровкаАналогов = СтруктураРасшифровки;
                НомУровня3 = НомУровня2+1;
                мТабДок.Вывести(ОбластьСтрока,НомУровня3,"Основной",Истина);
            КонецЕсли;
        иначе

                попытка
                    НаценкаПроц = ((СтрокаТЗ.Розн-СтрокаТЗ.Закуп)/СтрокаТЗ.Закуп)*100;
                исключение
                    НаценкаПроц = 0;
                КонецПопытки;
                
                ОбластьСтрокаА.Параметры.АртА       = СтрокаТЗ.Артикул;
                ОбластьСтрокаА.Параметры.ТоварА       = СтрокаТЗ.Номенклатура;
                ОбластьСтрокаА.Параметры.ЗакупА       = СтрокаТЗ.Закуп;
                ОбластьСтрокаА.Параметры.ДатаЗакупА = Формат(СтрокаТЗ.ДатаЗакуп, "ДЛФ=Д");    
                ОбластьСтрокаА.Параметры.РознА        = СтрокаТЗ.Розн;
                ОбластьСтрокаА.Параметры.ДатаРознА  = Формат(СтрокаТЗ.ДатаРозн, "ДЛФ=Д");
                ОбластьСтрокаА.Параметры.НаценкаА   = окр(НаценкаПроц);
                ОбластьСтрокаА.Параметры.ОстА       = СтрокаТЗ.ОстатокМагазины;
                ОбластьСтрокаА.Параметры.ПродА      = СтрокаТЗ.Продажи;
                мТабДок.Вывести(ОбластьСтрокаА);
            
        КонецЕсли;
    КонецЦикла;
    мТабДок.ЗакончитьАвтогруппировкуСтрок();
4 Melcor
 
14.07.16
11:32
http://s017.radikal.ru/i427/1607/3b/3cc01b2f5afd.jpg

у второй номенклатуры своя картинка, но выходит первая
5 lodger
 
14.07.16
11:36
(4) если текущая строка спамит в следующие значит параметр и картинка не перезаполнились. попробуй сразу после
Для каждого СтрокаТЗ из ТЗбиг цикл
поставить  
ОбластьСтрока = четотаммакет.получитьобласть("ляляля");
6 lera01
 
14.07.16
11:37
Если СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить()<>Неопределено Тогда
                    Картинка = СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить();

Иначе
Картинка=Новый Картинка;              

КонецЕсли;  

                    ОбластьСтрока.Рисунки.D1.Картинка = Картинка;
7 Ёпрст
 
14.07.16
11:38
(0)

                    Если СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить()<>Неопределено Тогда
                        Рисунок = ОбластьСтрока.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
                        Рисунок.РазмерКартинки = РазмерКартинки.АвтоРазмер;
                        Рисунок.Узор = ТипУзораТабличногоДокумента.БезУзора;
                        Рисунок.Лево   = ОбластьСтрока.ШиринаСтраницы-30;
                        Рис.Верх   = 46;
                        Рис.Ширина = 50;
                        Рис.Высота = 50;
                        Рис.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
                        Рис.Картинка =  СтрокаТЗ.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
                        //ОбластьСтрока.Рисунки.D1.Картинка = Картинка;                
                    КонецЕсли;
8 Ёпрст
 
14.07.16
11:40
а перед этим

ОбластьСтрока.Рисунки.Удалить()
9 Ёпрст
 
14.07.16
11:41
ну, или как в (6) - пустой рисунок. Но проще, его совсем удалять из области
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший