Имя: Пароль:
1C
1С v8
Управляемое приложение. Запись файла в табличную часть
0 Helg
 
25.09.12
11:07
Есть документ. У него есть табличная часть "Файлы" (Наименование: Строка, Данные: ХранилищеЗначений). Нужно записывать в табличную часть выбранные пользователем файлы. Сделал так. Может быть есть какие-то способы сделать проще?
&НаСервере
Процедура ДобавитьФайлСервер (Имя,ПолноеИмяФайла)
   ДокОбъект = Объект.Ссылка.ПолучитьОбъект();
   НовФайл = ДокОбъект.Файлы.Добавить();
   НовФайл.Наименование = Имя;
   НовФайл.Данные = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПолноеИмяФайла),Новый СжатиеДанных(9));
   ДокОбъект.Записать();
КонецПроцедуры    

&НаКлиенте
Процедура ДобавитьФайл(Команда)
   ДиалогВыбораФайла = Новый  ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Если ДиалогВыбораФайла.Выбрать() Тогда
       Имя = ДиалогВыбораФайла.ПолноеИмяФайла;
       Поз = Найти(Имя,"\");
       Пока Поз <> 0 Цикл
           Имя = Сред(Имя,Поз+1,СтрДлина(Имя)-Поз);
           Поз = Найти(Имя,"\");
       КонецЦикла;
       ДобавитьФайлСервер(Имя,ДиалогВыбораФайла.ПолноеИмяФайла);
       НовСтрока = Объект.Файлы.Добавить();
       НовСтрока.Наименование = Имя;
   КонецЕсли;
КонецПроцедуры
1 Feanorko
 
25.09.12
11:10
почитай про ПоместитьВоВременноеХранилище
2 Нуф-Нуф
 
25.09.12
11:10
имхо в принципе не рабочий вариант для управляемого приложения.
3 SUA
 
25.09.12
11:11
для новых нерабочий точно - ссылка не заполнена
4 SUA
 
25.09.12
11:12
не считая что файл с клиента перетащить на сервер надо