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

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

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

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

v_kuzmin

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

ВыборкаДокументов= Документы.ПоступлениеТоваров.Выбрать();
Книга=Эксель.Workbooks.Add();

Пока ВыборкаДокументов.Следующий() цикл
Лист = Книга.Sheets.Add();
Лист.Name  = Строка(ВыборкаДокументов.Номер);
Для Каждого Строка из ВыборкаДокументов.Товары Цикл
Лист.Cells(Строка.НомерСтроки , 1).Value = Строка(Строка.Номенклатура.Наименование);
КонецЦикла;
КонецЦикла;   

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

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


Лист.Cells(Строка.НомерСтроки , 1).Value = Строка(Строка.Номенклатура.Наименование);

не пойму что делается...забивается ячейка?

sergejK74

В ячейку (номер строки, номер столбца) заносится значение - в данном примере наименование номенклатуры из строки документа. Вроде подробно расписал?
Кнопочка Спасибо - слева!

v_kuzmin

Цитата: sergejK74 от 24 мар 2012, 18:32
В ячейку (номер строки, номер столбца) заносится значение - в данном примере наименование номенклатуры из строки документа. Вроде подробно расписал?
ну  а мне то не нужна "эта" строчка потомучто у меня есть

НомерСтроки=НомерСтроки+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 = Строка(Строка.ВС);


или я как обычно что-то не то несу?

sergejK74

НомерСтроки=НомерСтроки+1; можно заменить на НомерСтроки=Строка.НомерСтроки
можно и оставить. Тогда не забывай перед циклом по строкам документа ее обнулять НомерСтроки=0;
Какие еще строчки под сомнением?
Кнопочка Спасибо - слева!

v_kuzmin

Цитата: sergejK74 от 24 мар 2012, 18:55
НомерСтроки=НомерСтроки+1; можно заменить на НомерСтроки=Строка.НомерСтроки
можно и оставить. Тогда не забывай перед циклом по строкам документа ее обнулять НомерСтроки=0;
Какие еще строчки под сомнением?
ошибочка выходит
Преобразование значения к типу Число не может быть выполнено

sergejK74

НомерСтроки=0; Делал? Если пишемь ошибку - пиши хоть какую то информацию в какой строке тебя постигло несчастье.
приведи хоть кусок кода до ошибки. А лучше целиком то, во что ты превратил мой пример.
Вытягивать информацию по крохам тяжело.
Кнопочка Спасибо - слева!

v_kuzmin

Цитата: sergejK74 от 24 мар 2012, 19:58
НомерСтроки=0; Делал? Если пишемь ошибку - пиши хоть какую то информацию в какой строке тебя постигло несчастье.
приведи хоть кусок кода до ошибки. А лучше целиком то, во что ты превратил мой пример.
Вытягивать информацию по крохам тяжело.
да делал.извиняюсь..

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

ВыборкаДокументов= Документы.Задание.Выбрать();
Книга=Эксель.Workbooks.Add();

Пока ВыборкаДокументов.Следующий() цикл
Лист = Книга.Sheets.Add();
Лист.Name  = Строка(ВыборкаДокументов.Номер);
Для Каждого Строка из ВыборкаДокументов.Ведомость Цикл
//Лист.Cells(Строка.НомерСтроки , 1).Value = Строка(Строка.Ведомость.Наименование);
НомерСтроки=НомерСтроки+1;
НомерСтроки=0;
Лист.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();

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









v_kuzmin

{Документ.Задание.Форма.ФормаСписка.Форма(95)}: Преобразование значения к типу Число не может быть выполнено
НомерСтроки=НомерСтроки+1;

sergejK74

НомерСтроки=НомерСтроки+1;
НомерСтроки=0;
заменить на  НомерСтроки=Строка.НомерСтроки;
или так
НомерСтроки=0;
Для Каждого Строка из ВыборкаДокументов.Ведомость Цикл
//Лист.Cells(Строка.НомерСтроки , 1).Value = Строка(Строка.Ведомость.Наименование);
НомерСтроки=НомерСтроки+1;
Кнопочка Спасибо - слева!

v_kuzmin

Цитата: sergejK74 от 24 мар 2012, 20:24
НомерСтроки=НомерСтроки+1;
НомерСтроки=0;
заменить на  НомерСтроки=Строка.НомерСтроки;
или так
НомерСтроки=0;
Для Каждого Строка из ВыборкаДокументов.Ведомость Цикл
//Лист.Cells(Строка.НомерСтроки , 1).Value = Строка(Строка.Ведомость.Наименование);
НомерСтроки=НомерСтроки+1;

Урааа работает!)но всё равно листы весят созданные при создание самого объекта и всё равно книга создаётся.. Книга=Эксель.Workbooks.Add(); это в коде есть, но без этого не работает..

Теги:

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

Рейтинг@Mail.ru

Поиск