Имя: Пароль:
1C
1С v8
ПолучитьДвоичныеДанные(ФайлВФорматеXLS), Как обратно получить данные в файл?
0 pvase
 
09.07.19
16:36
Полный текст такой:
    ФайлВФорматеXLS = ПолучитьИмяВременногоФайла();
    Отчет.Записать(ФайлВФорматеXLS, ТипФайлаТабличногоДокумента.XLS);
    СписокФайловВложений.Добавить(Новый Структура("Хранилище, ИмяФайла, Наименование", ПолучитьДвоичныеДанные(ФайлВФорматеXLS), (ИмяФайлаВложения + ".XLS"), ИмяФайлаВложения));
После чего идет попытка получить обратно файл:
Для каждого ЭлементСписка Из СписокФайловВложений Цикл
                    
                    
                    ЗначениеСтруктурыВозврата = Неопределено;
                    ЭлементСписка.Значение.Свойство("Хранилище", ЗначениеСтруктурыВозврата);
                    ДанныеВложения = Новый ХранилищеЗначения(ЗначениеСтруктурыВозврата);
                    ДвоичныеДанные = ДанныеВложения.Получить();
                    Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
                        ФайлВложения = КаталогВременныхФайлов()+ИмяФайла;
                        ЗначениеВФайл(ФайлВложения, ДвоичныеДанные);
                        
                    КонецЕсли;

В итоге содержимое ФайлВложения - совсем не то, что было в ФайлВФорматеXLS. Подскажите что здесь не так? Спасибо.
1 pvase
 
09.07.19
16:38
Если смотреть "ФайлВФорматеXLS" то там видно что внутри Excel, а если посмотреть файл ФайлВложения - то внутри какой то внутри содержимое напоминает что-то зашифрованное, но никак не Excel.
2 pvase
 
09.07.19
16:57
Итого:
        ФайлВФорматеXLS2 = ПолучитьИмяВременногоФайла();
        Отчет.Записать(ФайлВФорматеXLS2, ТипФайлаТабличногоДокумента.XLS);
        ФайлВФорматеXLS2ДвоичныеДанные = ПолучитьДвоичныеДанные(ФайлВФорматеXLS2);
        Файл2 = ПолучитьИмяВременногоФайла()+".xls";
        ЗначениеВФайл(Файл2, ФайлВФорматеXLS2ДвоичныеДанные);

В итоге ФайлВФорматеXLS2 не равен с Файл2? хотя двоичные данные равны. Что-то мне кажется что ошибка в: ЗначениеВФайл(Файл2, ФайлВФорматеXLS2ДвоичныеДанные).
3 Вафель
 
09.07.19
16:58
двоичные данные в файл лучше сохранять методом
ДвоичныеДанные.Записать(ИмяФайла)
4 pvase
 
09.07.19
17:07
(3) Спасибо, то, что нужно.
Закон Брукера: Даже маленькая практика стоит большой теории.