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. без сохранения файла на диск, каким то образом сразу перековать в хранилище
Больше интересен вариант не писать вообще файл на диск, а сразу в хранилище. Но не нашел как!
|
|