Имя: Пароль:
1C
1С v8
Выгрузка изображений в печатную форму.
,
0 Ivanych
 
29.09.16
17:23
Проблема. Изображение дублируется в строках. Не могу разобраться, подскажите что делаю неправильно. Спасибо.

//////////
ВыборкаСтрокЦеха = ЗапросТовары.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Цеха");
    
    Пока ВыборкаСтрокЦеха.Следующий() Цикл
        
            ВыборкаСтрокТовары = ВыборкаСтрокЦеха.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура");
            ОбластьСтрокаЦех.Параметры.Заполнить(ВыборкаСтрокЦеха);
            ТабДокумент.Вывести(ОбластьСтрокаЦех);    

            Пока ВыборкаСтрокТовары.Следующий() Цикл

        
            
            // Получаем основное изображение номенклатуры.
            ИзображениеТовара = ВыборкаСтрокТовары.Номенклатура.Ссылка.ОсновноеИзображение.Хранилище.Получить();
            
            Если ЗначениеЗаполнено(ИзображениеТовара) Тогда
                //вставляем рисунок
                Рис = ОбластьСтрока.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
                Хр=Справочники.ХранилищеДополнительнойИнформации;
                Сс=Хр.НайтиПоНаименованию(ВыборкаСтрокТовары.Номенклатура.Ссылка.ОсновноеИзображение);
                Если ЗначениеЗаполнено(Сс) Тогда
                    Дан=Сс.Хранилище.Получить();
                    Рис.Картинка=Новый Картинка(Дан.ПолучитьДвоичныеДанные());;
                    Рис.РазмерКартинки = РазмерКартинки.АвтоРазмер;
                    Рис.Верх = 0;
                    Рис.Высота = 19;
                    Рис.Ширина = 23;
                    Рис.Лево = 159;
                    Рис.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
                КонецЕсли;    
            КонецЕсли;
        

        
    КонецЦикла;
    КонецЦикла;
1 Tatitutu
 
29.09.16
17:31
"Все смешалось в кучу"

вот это особенно сильно:
Сс=Хр.НайтиПоНаименованию(ВыборкаСтрокТовары.Номенклатура.Ссылка.ОсновноеИзображение);

вообще плохой пример .
в самом макете картинки нет ?
2 Ivanych
 
29.09.16
17:33
нет нету. Опыта мало. Картинку добавлял, а программно заполнить не допер как
3 Ivanych
 
29.09.16
17:38
Может есть пример как лучше?
4 Tatitutu
 
29.09.16
17:39
тектовар          =  ВыборкаСтрокТовары.Номенклатура;
ИзображениеТовара = ТекТовар.ОсновноеИзображение.Хранилище.Получить();                
            
            Если ЗначениеЗаполнено(ИзображениеТовара) Тогда
                //вставляем рисунок
                
                Рис = ОбластьСтрока.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
                
                Рис.Картинка      =  ИзображениеТовара;
                Рис.РазмерКартинки = ИзображениеТовара.Пропорционально;
                Рис.Верх   = 0;
                Рис.Высота = 19;
                Рис.Ширина = 23;
                Рис.Лево   = 159;
                Рис.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
                
            КонецЕсли;
5 Tatitutu
 
29.09.16
17:44
а так вставь в макет Картинку, дай ей имя например "МИНИКАРТ"

тектовар          =  ВыборкаСтрокТовары.Номенклатура;
НужнаяКартинка = ТекТовар.ОсновноеИзображение.Хранилище.Получить();
            
Если НужнаяКартинка=Неопределено Тогда                
    СтрТов.Рисунки.МИНИКАРТ.Картинка  = Новый Картинка;          
Иначе            
    СтрТов.Рисунки.МИНИКАРТ.Картинка  = НужнаяКартинка;    
КонецЕсли;
6 Ivanych
 
29.09.16
17:45
А если в макете картинка создана как привязать?
7 Ivanych
 
29.09.16
17:46
Спасибо.
8 Ivanych
 
29.09.16
17:46
А как быть с повтором картинок в строках
9 Tatitutu
 
29.09.16
17:49
(8) не понял
10 Ivanych
 
29.09.16
17:55
Получилось. Все просто оказывается. Большое спасибо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший