Имя: Пароль:
1C
1С v8
Записать двоичные данные в XLS
,
0 koluchka
 
19.05.14
16:50
xls- ка создается некорректно (не открывается потом). Подскажите, что не так в коде?

Функция ПолучитьМакетXLS(знач ДвоичныеДанныеМакета) Экспорт
    Попытка
        COMОбъект = Новый COMОбъект("Excel.Application");
    Исключение
        //НеУдалосьСформироватьПечатнуюФорму(ИнформацияОбОшибке());
    КонецПопытки;
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("XLS");
    ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);     
    
    Попытка
        COMОбъект.Workbooks.Open(ИмяВременногоФайла);
    Исключение
        COMОбъект.Quit(0);
        COMОбъект = 0;
        УдалитьФайлы(ИмяВременногоФайла);
        ВызватьИсключение(НСтр("ru = 'Ошибка при открытии файла шаблона.'") + Символы.ПС+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;    
    Возврат COMОбъект;    
КонецФункции
1 bolobol
 
19.05.14
17:02
ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);    - тип не указан?
2 koluchka
 
19.05.14
17:02
ау, народ! где все?
3 koluchka
 
19.05.14
17:03
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("XLS");
4 bolobol
 
19.05.14
17:08
Буквально, НЕ не в том месте поставлено:
"xls- ка +не+ создается -корректно" - это написано правильно. Не создавая "xls- ку", "xls- ку" не получим, даже если временный файл обзавём подобно желаемому расширению.
5 koluchka
 
19.05.14
17:14
а можно подробнее- не понимаю :(
6 acsent
 
19.05.14
17:15
В двоичных данных что хранится то? Макет табличный документ?
7 koluchka
 
19.05.14
17:16
да, макет
8 bolobol
 
19.05.14
18:00
ТабДок= новый ТабличныйДокумент;
ТабДок.<ВывестиМакет()>;
ТабДок.Записать(ИмяФайлаХЛС, ТипФайлаТабличногоДокумента.XLS);
9 koluchka
 
19.05.14
18:28
у меня макет в виде двоичных данных
10 koluchka
 
19.05.14
18:29
я хочу записать в xls именно двоичные данные, ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);
11 koluchka
 
19.05.14
18:29
для DOC аналогичный код работает
12 koluchka
 
19.05.14
18:30
Функция ПолучитьМакетMSWord(знач ДвоичныеДанныеМакета) Экспорт
    Попытка
        COMОбъект = Новый COMОбъект("Word.Application");
    Исключение
        //НеУдалосьСформироватьПечатнуюФорму(ИнформацияОбОшибке());
    КонецПопытки;
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("DOC");
    ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);
    Попытка
        COMОбъект.Documents.Open(ИмяВременногоФайла);
    Исключение
        COMОбъект.Quit(0);
        COMОбъект = 0;
        УдалитьФайлы(ИмяВременногоФайла);
        ВызватьИсключение(НСтр("ru = 'Ошибка при открытии файла шаблона.'") + Символы.ПС+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;    
    Возврат COMОбъект;
КонецФункции

а при попытке сохранить в xls - что-то не так
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.