![]() |
![]() |
|
Изображение по COM | ☑ | ||
---|---|---|---|---|
0
Andr
29.01.08
✎
23:50
|
Прошу совета по данному вопросу - не работет код
V8 = Новый COMObject("V81.ComConnector"); Попытка Оле = V8.Connect("FILE=""" + ПутьКФайламМодуля + """;"); Исключение Сообщить("Не удалось подключиться"); КонецПопытки; Картинка = Ном.ОсновноеИзображение.Хранилище.Получить(); НовыйОбъект = Оле.Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); НовыйОбъект.ВидДанных = Оле.Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; НовыйОбъект.Хранилище = Новый ХранилищеЗначения(Картинка); НовыйОбъект.Записать(); Другими словами вопрос заключается в следующем - как перенести по COM изображение и если невозможно, то подскажите код по выгрузке картинки в файл. |
|||
1
ТелепатБот
гуру
29.01.08
✎
23:50
|
||||
2
IronDemon
29.01.08
✎
23:56
|
Функция СохранитьФайлНаДиске(Хранилище, ИмяФайла, ТолькоЧтение, СпособПерезаписи, ВопросОПерезаписи = Истина, ИмяСправочника = "ХранилищеДополнительнойИнформации") Экспорт
Попытка ФайлНаДиске = Новый Файл(ИмяФайла); КаталогНаДиске = Новый Файл(ФайлНаДиске.Путь); Если Не КаталогНаДиске.Существует() Тогда СоздатьКаталог(ФайлНаДиске.Путь); КонецЕсли; Если ТипЗнч(Хранилище) <> Тип("ДвоичныеДанные") Тогда ДвоичныеДанные = Хранилище.Получить(); Иначе ДвоичныеДанные = Хранилище; КонецЕсли; ДвоичныеДанные.Записать(ИмяФайла); Исключение Предупреждение(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; Возврат Истина; КонецФункции // СохранитьФайлНаДиске() Процедура КнопкаВыполнитьНажатие(Кнопка) Если Объект = Неопределено Тогда Возврат; КонецЕсли; // Вставить содержимое обработчика. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХранилищеДополнительнойИнформации.Ссылка |ИЗ | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации |ГДЕ | ХранилищеДополнительнойИнформации.Объект В ИЕРАРХИИ(&Объект)"; Запрос.УстановитьПараметр("Объект", Объект); РезультатЗапроса = Запрос.Выполнить(); мПутьВнешнегоХранилища = КаталогХранения; ИмяКаталога = ПолучитьИмяКаталога(глТекущийПользователь); мСписокОткрытыхФайлов = Новый СписокЗначений; ТолькоЧтение = Ложь; СпособПерезаписи = ""; Сч=1; Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Ссылка=Выборка.Ссылка; Если ПустаяСтрока(Ссылка.ИмяФайла) Тогда Продолжить; КонецЕсли; СпрОбъект = Ссылка.ПолучитьОбъект(); Если СпрОбъект.Хранилище.Получить() = Неопределено Тогда Сообщить("Пропускаем "+Ссылка); Продолжить; КонецЕсли; Сообщить("Сохраняем "+Ссылка); ИмяФайла = ПолучитьИмяФайла(ИмяКаталога, Ссылка.ИмяФайла); СохранитьФайлНаДиске(СпрОбъект.Хранилище, ИмяФайла, Ложь, СпособПерезаписи, Ложь); КонецЦикла; Сообщить("Закончил"); КонецПроцедуры |
|||
3
Hadgehogs
30.01.08
✎
07:11
|
Двоичные=МояКартинка.ПолучитьДвоичныеДанные();
ДвоичныеСтрокой=Base64Строка(Двоичные); ДвоичныеCOM=Ole.Base64Значение(ДвоичныеСтрокой); МояКартинкаCOM=Ole.NewObject("Картинка(ДвоичныеCOM)"); //Скорее всего так, не помню, как тут параметр в конструктор передавать |
|||
4
Andr
30.01.08
✎
08:14
|
(3) МояКартинкаCOM=Ole.NewObject("Картинка(ДвоичныеCOM)");
вот с этой строчкой не хочет работать, с МояКартинкаCOM=Ole.NewObject("Картинка(""ДвоичныеCOM"")"); тоже самое |
|||
5
Andr
30.01.08
✎
08:16
|
Оле.NewObject("Картинка");
работает |
|||
6
San1
30.01.08
✎
08:17
|
(5) Попробуй Оле.NewObject("Картинка", ДвоичныеCOM);
|
|||
7
Andr
30.01.08
✎
08:22
|
(6) Так ошибок не выдает, но при этом картинку тоже не переносит
|
|||
8
Andr
30.01.08
✎
08:23
|
Двоичные = Картинка.ПолучитьДвоичныеДанные();
ДвоичныеСтрокой = Base64Строка(Двоичные); ДвоичныеCOM = Оле.Base64Значение(ДвоичныеСтрокой); МояКартинкаCOM = Оле.NewObject("Картинка",ДвоичныеCOM); НовыйОбъект.Хранилище = Новый ХранилищеЗначения(МояКартинкаCOM); |
|||
9
Hadgehogs
30.01.08
✎
08:25
|
ППЦ
НовыйОбъект.Хранилище = Оле.NewObject("ХранилищеЗначения",МояКартинкаCOM); |
|||
10
Andr
30.01.08
✎
08:27
|
Прошу прощения, и спасибо всем :)
|
|||
11
Hadgehogs
30.01.08
✎
08:29
|
Покатило?
|
|||
12
Andr
30.01.08
✎
08:31
|
(11) ДА!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |