Добрый день!
Не могу записать картинку во внешнюю базу.
sql 2012x64
1c 8.3.10.2299
в скуле создал базу и новую таблицу с полями:
ID тип bynary(16) и установил первичный ключ
_File тип nvarchar(MAX)
_BINARY тип varbinary(MAX)
Процедура записи
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПрисоединенныеФайлы.Ссылка КАК Ссылка,
//ПрисоединенныеФайлы.Файл это поле с типом хранилище значений в котором лежит картинка
| ПрисоединенныеФайлы.Файл КАК Файл
|ИЗ
| Справочник.ПрисоединенныеФайлы КАК ПрисоединенныеФайлы";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Таблица = ВнешниеИсточникиДанных.Test.Таблицы.dbo_Test2;
Пар = Новый Структура;
Ссылка = Таблица.ПолучитьСсылку(Выборка.Ссылка.УникальныйИдентификатор());
Попытка
Если ЗначениеЗаполнено(Ссылка.ID) Тогда
Стр = Ссылка.ПолучитьОбъект();
Иначе
Стр = Таблица.СоздатьОбъект();
Стр.ID = Выборка.Ссылка.УникальныйИдентификатор();
КонецЕсли;
Стр._File = Base64Строка(Выборка.Файл.Получить());
//Стр._BINARY = Выборка.Файл.Получить();
Стр.Записать();
Исключение
Ошибка = ОписаниеОшибки();
Сообщить(Ошибка);
КонецПопытки;
КонецЦикла;
а теперь в чем проблема. Не могу записать файл в виде двоичных данных в поле _BINARY.
в поле _File не хочу писать файл потому что, если файл весит 800кбайт в дбо 1с (с типом хралищезначений) или на диске тоже 800, то при записи в мою таблицу из конвертированными двоичными данными в строку картинка весит 2400кбайт.
подскажите как записать.желательно без ком объектов.
Сообщение отредактировал logist - 25.11.17, 14:41