Имя: Пароль:
1C
1С v8
вывести отчет в excel
, ,
0 deringpavel
 
26.03.13
10:51
Здравствуйте. Нужно вывести отчет в эксель.

Код следующий:

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;

Попытка
   Эксель = Новый COMОбъект ("Excel.Application");
Исключение
   Сообщить (ОписаниеОшибки() + "Excel не найден");
   Возврат;
КонецПопытки;

Книга = Эксель.WorkBooks.Add();
Лист = Эксель.WorkSheets(1);      

Лист.Cells().value = ТабДок;

Попытка
   Книга.SaveAs("C:\123.xls");
Исключение
   Сообщить (ОписаниеОшибки() + "Файл не сохранен");
   Возврат;
КонецПопытки;

Эксель.Quit();
1 Maxus43
 
26.03.13
10:52
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Синтаксис:

Записать(<ИмяФайла>, <ТипФайлаТаблицы>)
Параметры:

<ИмяФайла> (обязательный)

Тип: Строка.
Имя файла, в котором сохраняется табличный документ.
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL
Описание:

Записывает табличный документ в файл.
2 Godofsin
 
26.03.13
10:53
(1) опередил =)
3 deringpavel
 
26.03.13
10:54
а если так, чтобы он создавал файл, и в него же отчет сохранял?
5 Maxus43
 
26.03.13
10:55
(3) любишь температуру мерять ректально?
6 deringpavel
 
26.03.13
10:59
на хрень не отвечаю)
7 Maxus43
 
26.03.13
11:00
(6) это риторический вопрос, который не требует ответа. Мне не интересно, поверь.
Что такого могло случится, что вместо использования 1 строчки кода вы хотите писать жуткий велосипед?
8 deringpavel
 
26.03.13
11:02
отчет создается для пользования, и каждый раз создавать файл - лишние движения. Поэтому удобнее автоматическое создание файла и сохранение в него же.
9 Maxus43
 
26.03.13
11:03
(8) вы думаете что в (1) файл надо создавать руками? О_о
10 Godofsin
 
26.03.13
11:03
(8) бугага)))
11 Галахад
 
гуру
26.03.13
11:03
(8) Удаляйте старый файл.
12 samozvanec
 
26.03.13
11:06
(11) можно использовать временный файл
13 deringpavel
 
26.03.13
11:08
Выдает ошибку:

{Форма.ФормаОтчета1.Форма(221)}: Ошибка при вызове метода контекста (Записать)
ТабДок.Записать("C:\Таблица2.xlsx");
по причине:
Ошибка доступа к файлу 'C:\Таблица2.xlsx'
14 Maxus43
 
26.03.13
11:14
ну во первых:
   ТабДок.Записать("C:\Таблица2.xlsx", ТипФайлаТабличногоДокумента.XLSX);
и, возможно, файл надо созать предварительно, лень проверять...
Типа Файл = Новый Файл("C:\Таблица2.xlsx")...
15 samozvanec
 
26.03.13
11:22
(14) ниче там не надо создавать предварительно.
(13) нех в корень писать.
16 Maxus43
 
26.03.13
11:24
кстати да, в корень диска C особенно, щас как правило UAC блокирует такие попытки
17 samozvanec
 
26.03.13
11:25
(16) как и детище бабушкина, впрочем)
Основная теорема систематики: Новые системы плодят новые проблемы.