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

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

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

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

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

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

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

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

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

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

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

Еще один пример. Просто передадим файл на сервер, выбрав его на клиенте


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

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

&НаКлиенте
Процедура ВыборФайлаЗавершение(Файлы, Параметры) Экспорт
	
	Если Файлы = Неопределено Тогда Возврат; КонецЕсли;
	
	Если Файлы.Количество() > 0 Тогда
		ПутьКФайлу = Файлы[0];
	КонецЕсли;

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

&НаКлиенте
Процедура ОтправкаФайлаЗавершение(Файлы, Параметры) Экспорт
	Параметры = Новый Структура("Адрес, ПомещениеФайлаОтменено, ИдентификаторФайла, Имя, Расширение, ИмяБезРасширения");
	
	ЗаполнитьЗначенияСвойств(Параметры, Файлы);
	ЗаполнитьЗначенияСвойств(Параметры, Файлы.СсылкаНаФайл.Файл);
	ЗаполнитьЗначенияСвойств(Параметры, Файлы.СсылкаНаФайл);
	
	ПринятьФайлСКлиента(Параметры);
КонецПроцедуры

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

&НаКлиенте
Процедура ОтправкаФайлаСтатусВыполнения(СсылкаНаФайл, Помещено, Всего, Отказ) Экспорт
	
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ПринятьФайлСКлиента(Параметры)
	Файл = ПолучитьИзВременногоХранилища(Параметры.Адрес);
	
	ИмяФайла = КаталогВременныхФайлов() + Параметры.ИмяБезРасширения + "_client" + Параметры.Расширение;
	Файл.Записать(ИмяФайла);
	ЗаписьЖурналаРегистрации("Файлы.СКлиента", УровеньЖурналаРегистрации.Информация,,,"Записан файл " + ИмяФайла);
КонецПроцедуры
Закладка Постоянная ссылка.