Версия для печати темы (https://pro1c.org.ua/index.php?s=171489bb3d8a63a873443bc3227c0713&showtopic=42184)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Не удается записать двоичные данные во внешние источники данных

Автор: Brutok 25.11.17, 12:49

Добрый день!

Не могу записать картинку во внешнюю базу.

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кбайт.

подскажите как записать.желательно без ком объектов.


 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 4,5
 

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua