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

Выгрузка из 1с в Ексель

Автор Вожак, 21 мар 2012, 12:32

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

Вожак

Добры день, стоит такая задача. Есть документ Поступление товаров, на нем есть кнопка, при нажатии на которую данные из поступления товаров отправляются в Ексель, как это реализовать?

Вожак

Цитата: Вожак от 21 мар 2012, 12:32
Добры день, стоит такая задача. Есть документ Поступление товаров, на нем есть кнопка, при нажатии на которую данные из поступления товаров отправляются в Ексель, как это реализовать?
нужно сделать внешнюю обработку УПП

has

А если сформировать печатную форму поступления и сохранить ее в xls файле?

Вожак

Цитата: has от 21 мар 2012, 12:41
А если сформировать печатную форму поступления и сохранить ее в xls файле?

думал так сделать, но нельзя, нужно чтобы при нажатии сразу открывался документ в виде экселя

has

в инете куча инфы по работе 1с и эксель

Вожак

Цитата: has от 21 мар 2012, 13:34
в инете куча инфы по работе 1с и эксель
есть для выгрузки в эксель из 1ски справочников, а про выгрузку документов не могу найти. У меня есть вид, как должно из 1с выгружаться в эксель, мне для этого во внешней обработке нужно макет рисовать так?

has

Макет тут не нужен, если печатать будешь. А если принципиально чтобы файл экселя отрывался, то просто выгружать в эксель через COMОбъект

v_kuzmin

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


Ты помоему даже в моей теме что-то писал...


&НаСервере
Процедура ВыгрузитьВЭксель()     
ВыборкаДокументов= Документы.Задание.Выбрать();   
Пока ВыборкаДокументов.Следующий() цикл 
Попытка
Эксель = Новый 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();

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

Вожак

Цитата: v_kuzmin от 21 мар 2012, 14:56
у меня такая же проблема с выгрузкой......нет разницы откуда выгружать справочник или документ
вот тебе код того как я выгружаю из 1с в эксель
&НаКлиенте
Процедура СохранитьВЭксель(Команда)
    ВыгрузитьВЭксель();   
КонецПроцедуры


Ты помоему даже в моей теме что-то писал...


&НаСервере
Процедура ВыгрузитьВЭксель()     
ВыборкаДокументов= Документы.Задание.Выбрать();   
Пока ВыборкаДокументов.Следующий() цикл 
Попытка
Эксель = Новый 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();

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

это ведь для управляемого приложения, а у меня обычное

Вожак

Процедура ВыборДокументаПриИзменении(Элемент)
  // Получить список реквизитов выбранного справочника
  КоллекцияРеквизитов = Метаданные.Документы[Элемент.Значение];
  ТП.Очистить();
  // Добавим предопределенные реквизиты справочника
  стр = ТП.Добавить();
  стр.НазваниеРеквизита = "Код";
  стр = ТП.Добавить();
  стр.НазваниеРеквизита = "Наименование";
  // Добавим реквизит родитель для справочников с установленным видом Иерархии
  Если Строка(КоллекцияРеквизитов.ВидИерархии) = "ИерархияГруппИЭлементов" Тогда
    стр = ТП.Добавить();
    стр.НазваниеРеквизита = "Родитель";
  КонецЕсли;
   // Обход коллекции реквизитов метаданных для формирования табличного поля выбора
  Для каждого пРек из КоллекцияРеквизитов.Реквизиты Цикл
    стр = ТП.Добавить();
    стр.НазваниеРеквизита = пРек.Имя;
  КонецЦикла;
  // Поставим заначение истина для всех реквизитов справочника
  Для каждого стр из ТП Цикл
    стр.Выгружать = истина;
  КонецЦикла;
  // Установим имя файла по умолчанию и сохраним значение имени выбранного справочника
  ИмяФайла = "C:\" + Элемент.Значение + ".xls";
  ИмяДокумента = Элемент.Значение;
КонецПроцедуры



вот ТП это ТабличноеПоле так ведь? а где его определить?

Теги:

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

Рейтинг@Mail.ru

Поиск