Выгрузка несколько табличных документов из 1C в один файл Excel

1. zhan.87 22.12.16 13:55 Сейчас в теме
Здравствуйте!
Просьба помочь с выгрузкой из 1С в Excel.
Проблема такова: есть форма отчета, которая содержит несколько страниц. В каждой странице есть свои ПолеТабличногоДокумента. При выгрузке в Excel надо, чтобы данные страницы сохранились в один файл.
Что сделано: сделана выгрузка в один файл с именем страниц вместо листов в Excel.
Теперь надо чтобы данные с ПолеТабличногоДокумента грузились в данные листы. Заполнять каждую ячейку
Лист.Cells(1, 1).Value таким образом невозможно, т.к. таблицы огромные и объемные.
Есть ли функция которая перекидывает весь ТабДок в Лист Excel?
Заранее спасибо за помощь!
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. Xershi 1474 22.12.16 14:14 Сейчас в теме
(1) как уже написали есть простой метод. Вместо 2 сделать 1!
И вопрос решен!
Ну если нужно велосипед писать, то не вижу проблемы перебрать второй лист и перенести его на первый. Но тут нужно знать синтаксис работы с Эксель.
2. alexx2510 38 22.12.16 14:10 Сейчас в теме
Если есть общий табличный документ, то что мешает его записать записать в формате excel?
или нужно, чтобы каждая страница из формы отчета на отдельной странице в общем excel была?
4. zhan.87 22.12.16 14:17 Сейчас в теме
(2) Общего ТабДока нет. Есть отдельные страницы на форме. Например, ТабДок1, ТабДок2, ТабДок3.
И эти страницы должны быть перенесены в общую книгу Excel с листами ТабДок1, ТабДок2, ТабДок3. по нажатию кнопки.
5. starik-2005 3033 22.12.16 14:21 Сейчас в теме
(4) делал как-то такую штуку для отчетов, отправляемых контрагенту. Типа описывался пакет отчетов, потом они формировались, сохранялись в xls(x). Дальше алгоритм такой: создается новый объект через СОМ для экселя, в него добавляется страница, именуется, в нее вставляется файл. http://www.forum.mista.ru/topic.php?id=615419
6. vadim1011985 99 22.12.16 14:22 Сейчас в теме
Как вариант можно попробовать следующее
каждый табДок сохранить средствами 1с в файл excel

Далее создать общий Excel и командами копировать из одно файла в другой в нужные страницы

по макросу выходит так

Cells.Select
Range("B18").Activate
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
(5) - опередил
7. alexx2510 38 22.12.16 14:23 Сейчас в теме
(4) выгрузить все в отдельные excel, а затем с помощью метода Copy скопировать отдельные файлы в листы
8. zhan.87 23.12.16 05:38 Сейчас в теме
(7) с помощью метода Copy скопировать отдельные файлы в листы - это слишком долго. Конечно данная версия рассматривалась. Но именно так мне не надо. Мне надо одной кнопкой выгрузить в excel все мои страницы.
9. alexx2510 38 23.12.16 10:36 Сейчас в теме
(8)
Мне надо одной кнопкой выгрузить в excel все мои страницы

так оно и будет одной кнопкой.
под Copy я имел ввиду не ручной копи-паст, а метод Copy у COM объекта Excel
10. zhan.87 09.03.17 09:22 Сейчас в теме
(7) Проблема решилась именно таким образом. Создание временных файлов и в дальнейшем копирование в один эксель.
Пример кода прилагаю, может кому поможет:
Попытка
      // Загрузка объекта Microsoft Excel
      Состояние("Выгрузка данных из 1С в Microsoft Excel...");
      ExcelПриложение = Новый COMОбъект("Excel.Application");
	  ExcelПриложение2 = Новый COMОбъект("Excel.Application");

    Исключение
      Сообщить("Ошибка при запуске Microsoft Excel."
        + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
      Возврат;
    КонецПопытки;

        WorkBook = ExcelПриложение.WorkBooks.Add();
	Для каждого Элемент из ЭтаФорма.ЭлементыФормы цикл
	Если Тип(Элемент) =Тип("ПолеТабличногоДокумента") тогда
		 		ТДок = Элемент;
		
	Первый = Истина; // у нас уже есть один лист, надо использовать его
    	ПрошлыйЛист = Неопределено; 
		
	ВрФайл = ПолучитьИмяВременногоФайла("xls");
	 Элемент.Записать(ВрФайл, ТипФайлаТабличногоДокумента.XLS);
		
          Книга = WorkBook.Worksheets.Add();
		
	  Книга.Application.Sheets(1).Name = Элемент.Имя;
		
	  мКнига = ExcelПриложение2.Workbooks.Open(ВрФайл);
	  мКнига.Application.Sheets(1).Cells.Select();
	  ExcelПриложение2.Selection.Copy();       
		
         Если Первый Тогда // Используем созданный автоматически
            НовыйЛист = Книга.Application.Sheets(1);
			ExcelПриложение.DisplayAlerts = 0;
	    Попытка	
			НовыйЛист.Paste(); 
			Исключение
	    КонецПопытки;	
			ExcelПриложение.DisplayAlerts = 1;

            Первый = Ложь;
        Иначе // добавляем новый
            НовыйЛист = Книга.Application.Sheets.Add(, ПрошлыйЛист); // Добавляем новый лист после прошлого
		КонецЕсли;
		ExcelПриложение2.DisplayAlerts = 0;
        мКнига = ExcelПриложение2.Workbooks.Close();		
		ExcelПриложение2.DisplayAlerts = 1;
     
		 
	КонецЕсли;	
	КонецЦикла;	
    ExcelПриложение.Quit();

Показать
11. пользователь 09.03.17 12:06
Сообщение было скрыто модератором.
...
12. Sashares 34 17.10.19 09:52 Сейчас в теме
В режиме совместимости 8.3.12 и выше в стандартном функционале появилась возможность сохранять несколько табличных документов в 1 эксель файл, на разные страницы.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)