Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Ну удается сохранить шаблон Аctive Document Excel из обработки во внешний файл Excel (http://forums.kuban.ru/f1040/nu_udaetsya_sohranit-_shablon_active_document_excel_iz_obrabotki_vo_vneshnij_fajl_excel-6353809.html)

bvb 11.12.2014 13:16

Ну удается сохранить шаблон Аctive Document Excel из обработки во внешний файл Excel
 
Теперь мне нужно просто сохранить файл Excel из макета во внешний файл с определенным именем. Пишу такую конструкцию :
КнигаШаблонExcel = ПолучитьМакет("Макет").Получить(); //открываем книгу с

КнигаШаблонExcel.SaveAs(«Файл1.xlsx»);

Макет пробовал создавать двумя способами :
1. Создал «Аctive Document» и в конфигураторе скопировал туда листы из другого файла
2. Создал «Аctive Document» и загрузил макет из внешнего файла Excel.

В обоих случаях файл создается но …
В первом случае при попытке открыть созданный возникает предупреждение системы безопансости и файл пустой
Во втором случае файл открывается нормально но все равно пустой

ЧЯДНТ ?

ipp 11.12.2014 13:34

Спроси на использовании программ, там есть economist он хорошо знает как excel так и LibreOffice.

Климов Сергей 11.12.2014 14:29

Вот работающий код:
ИмяФайлаXLS = сокрлп(ИмяФайла);
ИмяФайлаXLS = лев(ИмяФайлаXLS, стрдлина(ИмяФайлаXLS) - 4) + "XLS"; // отрежем расширение xltx и добавим xls
Попытка
ТабДок.Записать(ИмяФайлаXLS, ТипФайлаТабличногоДокумента.XLS);
Исключение
сообщить("Не удалось сохранить промежуточный файл " + ИмяФайлаXLS + ": " + ОписаниеОшибки(), СтатусСообщения.Важное);
Возврат;
КонецПопытки;

состояние("Запускается MS Excel...");
Попытка
Экс = Новый COMОбъект("Excel.Application");
Исключение
сообщить("На компьютере не установлен MS Excel. Сохранить шаблон заказа невозможо!", СтатусСообщения.Важное);
Возврат;
КонецПопытки;

состояние("Открывается файл " + ИмяФайлаXLS + "...");
Попытка
РабочаяКнига = Экс.Workbooks.Open(ИмяФайлаXLS);
Исключение
сообщить("Не удалось открыть файл " + ИмяФайлаXLS + ": " + ОписаниеОшибки(), СтатусСообщения.Важное);
Экс.Quit();
Возврат;
КонецПопытки;

....

состояние("Сохраняется файл " + ИмяФайла + "...");
Попытка
РабочаяКнига.SaveAs(ИмяФайла,54 );
Исключение
сообщить("Не удалось сохранить файл " + ИмяФайла + ": " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;

bvb 11.12.2014 14:37

(2) В данном примере табличный документ 1С сохраняется как Excel , а затем с ним работают как с книгой. Здесь несколько другая тема : макет Excel уже содержит правильное разбиение ячеек и форматирование - он хранится в обработке на его основе формируется и заполняется конечный файл.

Azik 12.12.2014 20:14

Тип макета нужен "Двоичные данные".

И весь код:
Макет = ПолучитьМакет("Макет");
Макет.Записать(ПолноеИмяФайла);


Текущее время: 03:17. Часовой пояс GMT +3.