Простой пример работы с картинками (файлами) в управляемом приложении


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

&НаКлиенте
Процедура УстановитьКартинку(Команда)
	Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда Сообщить("Запишите"); Возврат; КонецЕсли;
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма);
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	
	НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);	
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт

    Если ПомещенныеФайлы = Неопределено Тогда
        Возврат;
    КонецЕсли;

    Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл
        ИмяФайла = ПереданныйФайл.Имя;
        Адрес = ПереданныйФайл.Хранение;
		УстановитьКартинкуНаСервере(Адрес, ИмяФайла);
    КонецЦикла;
    
КонецПроцедуры // ()

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Спр = Справочники.Изображения.Выбрать(,Объект.Ссылка);

	Если Спр.Следующий() Тогда
		СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Спр.Ссылка, "Изображение");
	КонецЕсли;
КонецПроцедуры

&НаСервере
Функция СсылкаНаКартинкуНажатиеНаСервере()
	Спр = Справочники.Изображения.Выбрать(,Объект.Ссылка);

	Если Спр.Следующий() Тогда
		Возврат ПоместитьВоВременноеХранилище(Спр.Изображение.Получить(), УникальныйИдентификатор);
	КонецЕсли;
КонецФункции

&НаКлиенте
Процедура СсылкаНаКартинкуНажатие(Элемент)
	Адрес = СсылкаНаКартинкуНажатиеНаСервере();
	Данные = ПолучитьИзВременногоХранилища(Адрес);
	Имя = ПолучитьИмяВременногоФайла("png");
	Данные.Записать(Имя);
	Сообщить(Имя);
КонецПроцедуры

Закладка Постоянная ссылка.