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