Имя: Пароль:
1C
1С v8
Как повторно записывать файл на диск или..
0 Homer
 
04.09.12
08:22
/////
Процедура ДействияФормыФото(Кнопка)
   мИмя = "D:\1.jpg";
   Device = Новый COMОбъект("WIA.DeviceManager");
   Количество = Device.DeviceInfos.Count;
   oDevice = Новый Массив(Количество);
   Для К=1 По Количество Цикл
       Если Device.DeviceInfos(к).Type = 3 Тогда
           Попытка
               oDevice[к-1] = Device.DeviceInfos(к).Connect();
           Исключение
               oDevice[к-1] = Неопределено;
           КонецПопытки;
       Иначе
           oDevice[к-1] = Неопределено;
       КонецЕсли;
   КонецЦикла;
   
   Для К = 1 По Количество Цикл
       Если oDevice[к-1] <> Неопределено Тогда
           Item = oDevice[к-1].ExecuteCommand("{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}");
           Image = Item.Transfer("{557CF401-1A04-11D3-9A73-0000F81EF32E}");
           Image.SaveFile(мИмя);
       КонецЕсли;
   КонецЦикла;
   
   ОсновноеИзображение = ЭтаФорма.ОсновноеИзображение;
   
   ВыбранноеИзображение = Новый Картинка(мИмя, Ложь);
   НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
   НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
   НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
   НовыйОбъект.Объект = ЭтаФорма.Ссылка;
   НовыйОбъект.ИмяФайла = РаботаСФайлами.ПолучитьИмяФайлаИзПолногоПути(мИмя);
   
   ФормаИзображения = НовыйОбъект.ПолучитьФорму("ФормаИзображения");
   
   ФормаИзображения.ВладелецФормы = ЭтаФорма;
   ФормаИзображения.РежимВыбора = Истина;
   ФормаИзображения.ЗакрыватьПриВыборе = Ложь;
   ФормаИзображения.Открыть();
   
КонецПроцедуры
//////
Если повторно запускаешь пишет что фаил уже существует, как луче поступить:
1. Удалять файл из временного каталога
2. без сохранения файла на диск, каким то образом сразу перековать в хранилище

Больше интересен вариант не писать вообще файл на диск, а сразу в хранилище. Но не нашел как!
1 Рэйв
 
04.09.12
08:25
Проверяй перед записью и удаляй если существует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн