Имя: Пароль:
1C
 
Загрузка картинок с учётом их типа
0 Reraru
 
25.01.20
00:05
Здравствуйте, у меня проблема. Мне удалось реализовать загрузку картинок но криво. Сперва нужно нажать на кнопку Выбрать файл картинки, после чего выбрать картинку и нажать открыть. После этого открывается окно с загрузкой картинки по её типу.
В итоге чтобы загрузить картинку приходится делать 2 действия.
Помогите мне пожалуйста. Как сделать чтобы сразу при загрузки картинки было сразу диалоговое окно с выбором картинки по её типу?

&НаКлиенте
Процедура ВыбратьФайлКартинки(Команда)
    // Создаем оповещение, именно процедура "ОбработатьВыборФайла" будет вызвана при.
    //закрытии окна выбора файла.
    Оповещение = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтотОбъект);
    //Открываем интерактивное окно для выбора файла.
    НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);
    //УникальныйИдентификатор - этим свойством мы связали временное хранилище с текущей формой.
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.Фильтр =
        "Все картинки (*.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|"; // картинки
        Если ДиалогОткрытияФайла.Выбрать() Тогда
        ВыбранноеФото = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла,Ложь);

      
    Иначе
        Возврат;
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
    Если Не Результат Тогда
        Возврат;
    КонецЕсли;
    СсылкаНаКартинку = Адрес;
    
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    //ТекущийОбъект - это сконвертированные данные формы, которые пишутся в базу в этот момент времени.
    Если ЭтоАдресВременногоХранилища(СсылкаНаКартинку) Тогда
        ТекущийОбъект.Логотип = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(СсылкаНаКартинку));
        //при записи элемента справочника мы записываем данные из временного хранилища в
        //реквизит элемента справочника.
        УдалитьИзВременногоХранилища(СсылкаНаКартинку);
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Логотип");
    //устанавливаем автомасштаб для картинки
    Элементы.СсылкаНаКартинку.РазмерКартинки = РазмерКартинки.Растянуть;

КонецПроцедуры