Имя: Пароль:
1C
1С v8
Вывод изображения в печатную форму.
0 leoshko84
 
22.08.17
10:05
Добрый день. На печатной форме есть компонент Изображение.
Вывод изображения:
Картинка=Новый Картинка(ПутьКФото);
                                СекцияКартинка.Рисунки["Изображение"].Картинка = Картинка;

Когда сохраняем в xls-получается большой прайс, т.к. используем "тяжелые фотографии". Как-то средствами 1с можно загрузить фото более легкое? Задать качество и т.д.
1 _Дайвер_
 
22.08.17
10:14
(0) 1С не редактор фото, предварительно обрабатывайте в нормальном редакторе
2 leoshko84
 
22.08.17
10:26
Это понятно. Используется проф. фото, и облегчить их-долго. Вот и возник вопрос.
3 term1t52
 
22.08.17
12:01
Смотрите, база раздуется из-за больших файлов.
4 term1t52
 
22.08.17
12:02
Можно найти написать скрипт, который ужимает фото на чем-нибудь стороннем и всю базу шринкнуть. И запустить можно в фоновом задании, что бы ужимал картинки.
5 lexasan
 
22.08.17
13:07
Держи, в свое время сталкивался с задачей. WIA это стандартная библиотека в Windows начиная с висты для рабочих станций, с 2003 сервера для серверов. Для XP она как то отдельно ставится.

Функция ПолучитьУменьшенныйФайлКартинки(ИсходныйФайл)
    Если ТипЗнч(ИсходныйФайл) <> Тип("Файл") ИЛИ ИсходныйФайл.Существует() = Ложь Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    Попытка
        objImageFile = Новый COMОбъект("WIA.ImageFile");
        objImageProcess = Новый COMОбъект("WIA.ImageProcess");
        
        objImageFile.LoadFile(ИсходныйФайл.ПолноеИмя);
        objImageProcess.Filters.Add(objImageProcess.FilterInfos("Scale").FilterID);
        
        objImageProcess.Filters.Item(1).Properties.Item("MaximumWidth").Value = 650;
        objImageProcess.Filters.Item(1).Properties.Item("MaximumHeight").Value = 650;
        
        objImageFile = objImageProcess.Apply(objImageFile);
        ИмяУменьшенногоФайла = ПолучитьИмяВременногоФайла(ИсходныйФайл.Расширение);
        УменьшенныйФайл = Новый Файл(ИмяУменьшенногоФайла);
        Если УменьшенныйФайл.Существует() Тогда
            УдалитьФайлы(УменьшенныйФайл.ПолноеИмя);
        КонецЕсли;
        
        objImageFile.SaveFile(УменьшенныйФайл.ПолноеИмя);
        Возврат УменьшенныйФайл;
    Исключение
        ОбщегоНазначения.ВывестиСообщение("Ошибка при обрезании файла "+ИсходныйФайл.ПолноеИмя+": "+ОписаниеОшибки());
        Возврат Неопределено;
    КонецПопытки;
КонецФункции