Добрый день . У меня похожая проблема. Пытаюсь выгрузить картинки из Access .... Но они не открываются потом
Функция ВСтрокуBase64(safeArray) // Конвертация ComSafeArray->Base64
obj = Новый COMОбъект("MSXML2.DomDocument.3.0");
helper=obj.createElement("a");
helper.DataType = "bin.base64";
helper.nodeTypedValue = safeArray;
Возврат helper.text;
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
//Очищаем наше табличное поле
ТабличноеПоле1.Очистить();
ТабличноеПоле1.Колонки.Очистить();
//Готовим строку соединения с MS Access
//Путь к базе указывается в самом конце
//СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+"C:\Users\sazanov\Desktop\ПЕРСОНАЛ\Персонал_be.mdb";
//СоединениеСБазой = Новый COMОбъект("ADODB.Connection");
СтрокаПодключения="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+"C:\Users\sazanov\Desktop\ПЕРСОНАЛ\Персонал_be.mdb";
СоединениеСБазой = Новый COMОбъект("ADODB.Connection");
//Соединяемся
СоединениеСБазой.Open(СтрокаПодключения);
//------------------------------------------------------------
//Получаем набор записей из таблицы Аттестация
КоллекцияЗаписей = Новый COMОбъект("ADODB.Recordset");
КоллекцияЗаписей.CursorLocation=3;
КоллекцияЗаписей.LockType=2;
//КоллекцияЗаписей.Open("select * from Аттестация", СоединениеСБазой,1);
КоллекцияЗаписей.Open("select * from Аттестация", СоединениеСБазой);
//считываем структуру полей таблицы
//В таблице значений создаем все колонки, которые есть в Access'овской таблице
Для сч = 0 по КоллекцияЗаписей.Fields.Count - 1 Цикл
ТабличноеПоле1.Колонки.Добавить("Колонка" + сч,, Строка(КоллекцияЗаписей.Fields.Item(сч).Name));
КонецЦикла;
//Перемещаем маркер на первую запись
КоллекцияЗаписей.MoveFirst();
//считываем данные из таблицы
//и добавляем их в ТЗ
счетчик=1;
Пока НЕ КоллекцияЗаписей.EOF Цикл
НоваяСтрока = ТабличноеПоле1.Добавить();
Для сч = 0 по КоллекцияЗаписей.Fields.Count - 1 Цикл
НоваяСтрока["Колонка" + сч] = КоллекцияЗаписей.fields(ТабличноеПоле1.Колонки[сч].Заголовок).Value;
///////////////
// Если КоллекцияЗаписей.fields(ТабличноеПоле1.Колонки[сч].Заголовок).Value = "COMSafeArray" Тогда
//Сообщить ("Колонка" + сч);
Если "Колонка" + сч = "Колонка11" Тогда //колонка "Фото"
счетчик=счетчик+1;
Состояние(счетчик);
Если (КоллекцияЗаписей.Fields("Фото").Value) <> NULL Тогда
СтрокаBase64=ВСтрокуBase64(КоллекцияЗаписей.Fields("Фото").Value);
// СтрокаBase64=Преобразовать64(КоллекцияЗаписей.Fields("Фото").Value);
Двоичные=Base64Значение(СтрокаBase64);
Картина=Новый Картинка(Двоичные);
Сообщить(Картина.Формат());
// Картина1=Картина.Преобразовать(ФорматКартинки.PNG);
Картина.Записать("D:\1\"+КоллекцияЗаписей.Fields("Табельный номер").Value+"__"+КоллекцияЗаписей.Fields("Фамилия").Value+".png"));
ЭлементыФормы.ПолеКартинки1.Картинка=Картина1;
Иначе
Сообщить(КоллекцияЗаписей.Fields("Фамилия").Value+" нет ФОТО!");
КонецЕсли;
КонецЕсли;
//////////////
КонецЦикла;
КоллекцияЗаписей.MoveNext();
КонецЦикла;
//Отображаем данные из ТЗ в ТабличномПоле
ЭлементыФОрмы.ТабличноеПоле1.Значение = ТабличноеПоле1;
ЭлементыФОрмы.ТабличноеПоле1.СоздатьКолонки();
КонецПроцедуры