Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 07:56

Выгрузка в Excel из 1С

Автор v_kuzmin, 11 мар 2012, 10:22

0 Пользователей и 1 гость просматривают эту тему.

v_kuzmin

Здравствуйте уважаемые форумчане!Мне нужно выгружать данные из табличной части документа я пользуясь интернетом написал небольшую процедуру для этого где при нажатии на кнопку должна происходить выгрузка, но вылетают ошибки...

{Документ.Документ1.Форма.ФормаДокумента(14,26)}: Переменная не определена (Значение)
Лист.Cells(1, 1).Value = <<?>>Значение;
{Документ.Документ1.Форма.ФормаДокумента(5,10)}: Процедура или функция с указанным именем не определена (СоздатьОбъект)
Эксель = <<?>>СоздатьОбъект("Excel.Application");


а вот сам текст процедуры

Процедура Кнопка1Нажатие(Элемент)
// Вставить содержимое обработчика.
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);
Лист = Книга.Sheets.Add();

Лист.Cells(1, 1).Value = Значение;
Попытка
Книга.SaveAs("C:\Users\Администратор\Downloads\1с");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;
КонецПроцедуры


Если не трудно помогите пожалуйста.Заранее благодарен

has

СоздатьОбъект
это в семерке, в 8-ке
Новый COMОбъект("Excel.Application")
Где значение переменной Значение? Присвоить же что-то надо сначала переменной

v_kuzmin

Цитата: has от 11 мар 2012, 10:25
СоздатьОбъект
это в семерке, в 8-ке
Новый COMОбъект("Excel.Application")
Где значение переменной Значение? Присвоить же что-то надо сначала переменной
Спасибо с объектом всё норм щас)
А что ей присвоить можно??просто как бы там же ячейки....

has

Ну в ячейку то значение записывать будешь, вот и присвой значение этой переменной.

v_kuzmin

Цитата: has от 11 мар 2012, 10:56
Ну в ячейку то значение записывать будешь, вот и присвой значение этой переменной.
Ну вот я присвоил ей 1))он мне и записывает мне эту 1 в эту ячейку.....а мне надо чтоб он всю табличную часть выгружал.....
Как это сделать?

has

Обходишь циклом строки табличной части и реквизиты записываешь. Ознакомься с документацией)

dimalf


v_kuzmin

Здравствуйте!я решил все проблемы, про которые говорил выше, но появились новые.... мне нужно выгрузить в ексель все табличные части  документов которые находятся в форме спискадокумента
код
&НаКлиенте
Процедура СохранитьВЭксель(Команда)
    ВыгрузитьВЭксель();   
КонецПроцедуры


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



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

НомерСтроки=НомерСтроки+1;

Лист.Cells(НомерСтроки, 1).Value = Строка(Строка.Студент);
Лист.Cells(НомерСтроки, 2).Value = Строка(Строка.ПН);
Лист.Cells(НомерСтроки, 3).Value = Строка(Строка.ВТ);
Лист.Cells(НомерСтроки, 4).Value = Строка(Строка.СР);
Лист.Cells(НомерСтроки, 5).Value = Строка(Строка.ЧТ);
Лист.Cells(НомерСтроки, 6).Value = Строка(Строка.ПТ);
Лист.Cells(НомерСтроки, 7).Value = Строка(Строка.СБ);
Лист.Cells(НомерСтроки, 8).Value = Строка(Строка.ВС);


КонецЦикла;   
КонецЦикла;   
Попытка
Книга.SaveAs("C:\Users\Администратор\Downloads\1с");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;
Эксель.Application.Quit();

КонецПроцедуры

но мне нужно чтобы каждый документ выгружался на отдельный лист книги екселя.. как это сделать??Заранее спасибо.

has

Сам не пробовал, но как-то так
Лист = Книга.Sheets.Add();

v_kuzmin

Цитата: has от 21 мар 2012, 15:17
Сам не пробовал, но как-то так
Лист = Книга.Sheets.Add();
т.е нужно сделать будет цикл по листам?чтобы они добавлялись пока не закончатся доки?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск