Имя: Пароль:
1C
1С v8
УФ, Декорация-картинка
0 Перелетный косяк
 
16.07.14
21:41
Воюю с УФ. Пытаюсь сделать функционал для автоматических рихтофки фоток в формат 3*4.
Есть упр. форма, на ней элемент Декорация-Картинка. В него надо передавать картинку из MSScriptControl.ScriptControl

вот как пытаюсь:
//**********************************************************************
Функция ЗагрузитьФото(ФайлИзображения)
    //Возвращает объект картинки из файлов наиболее популярных графических форматов
    //bmp, jpg, tif, gif, png
    Скрипт = "
    |Function LoadImage(SourseFile,ResultFile)
    |On Error Resume Next
    |Dim Img 'As ImageFile
    |Dim IP 'As ImageProcess
    |Dim objFSO
    |
    |Set Img = CreateObject(""WIA.ImageFile"")
    |Set IP = CreateObject(""WIA.ImageProcess"")
    |Set objFSO = CreateObject(""Scripting.FileSystemObject"")
    |
    |Img.LoadFile SourseFile
    |
    |IP.Filters.Add IP.FilterInfos(""Convert"").FilterID
    |IP.Filters(1).Properties(""FormatID"").Value = ""{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}""
    |
    |Set Img = IP.Apply(Img)
    |
    |If objFSO.FileExists(ResultFile) Then
    |    objFSO.DeleteFile ResultFile
    |End If
    |If Err.Number = 0 Then
    |    Img.SaveFile ResultFile
    |    LoadImage = 1
    |Else
    |    LoadImage = 0
    |End if
    |End Function
    |";
    ИспСкрипт = Новый ComОбъект("MSScriptControl.ScriptControl");
      ИспСкрипт.Language="vbscript";
      ИспСкрипт.AddCode(Скрипт);
      ВремФайл = КаталогВременныхФайлов() + "TempWIA1Cimagefile.bmp";
    Рез = ИспСкрипт.Run("LoadImage",ФайлИзображения,ВремФайл);
    Если Рез Тогда
        К = Новый Картинка(ВремФайл);
    Иначе
        К = Новый Картинка();
    КонецЕсли;
    Возврат К;
КонецФункции

&НаКлиенте
Процедура Загрузить(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите фото 3*4";
Диалог.ПолноеИмяФайла = "";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.Фильтр =
"Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
    + "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
    + "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
    + "Формат TIFF (*.tif)|*.tif|"
    + "Формат GIF (*.gif)|*.gif|"
    + "Формат PNG (*.png)|*.png|"
    + "Формат icon (*.ico)|*.ico|"
    + "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки
    Если Диалог.Выбрать() Тогда
        фото3х4=ЗагрузитьФото(Диалог.ПолноеИмяФайла); //получает картинку, все ОК        
        Элементы.Декорация1.Картинка = фото3х4; //тут спотыкается
    Иначе
        Отказ = Истина;
        Возврат;
    КонецЕсли;
Ширина = СвойствоИзображения(Объект.ВремФайл,1);
Высота = СвойствоИзображения(Объект.ВремФайл,2);
КонецПроцедуры

{Форма.УФ.Форма(388)}: Ошибка при установке значения атрибута контекста (Картинка)
        Элементы.Декорация1.Картинка = фото3х4;
по причине:
Недопустимое значение

Причем, из библиотеки вставляет нормально:
Элементы.Декорация1.Картинка = БиблиотекаКартинок.Фото; - ОК

Туплю - как установить картинку ИЗ ВНЕШНЕГО ФАЙЛА?
возможно что дело в Элементы.Декорация1.Картинка.Вид = ВидКартинки.Пустая;
а должен быть Элементы.Декорация1.Картинка.Вид = ВидКартинки.Абсолютная;

ЗЫ. Пример от УТ11 смотрел. НавигационнаяСсылкаКартинки - не подходит
1 GROOVY
 
16.07.14
22:00
http://1c.chistov.pro/2013/07/blog-post.html

Декорация там нафиг не нужна.
2 Перелетный косяк
 
16.07.14
22:18
(1) Павел, спасибо. Ушел курить