Сохранить в exel

1. juvv873 30.11.14 18:14 Сейчас в теме
Функция Печать() Экспорт 
Эксель = ПолучитьCOMОбъект("", "Excel.Application");
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ИНФО");
Область = Макет.ПолучитьОбласть("ПервыйЛист");
Область.Параметры.Организация = СсылкаНаОбъект.Организация;
Область.Параметры.ИНН = СсылкаНаОбъект.Организация.ИНН;
Область.Параметры.РС = СсылкаНаОбъект.Банк.ОсновнойБанковскийСчет.НомерСчета;
Область.Параметры.ДатаФайла = ДатаРеестра;
ТабДок.Вывести(Область);
ТабДок.Записать("C:\1c\1.xls","xls");
 Эксель.DisplayAlerts = 0; //Не выводить предупреждения Excel
Книга = Эксель.WorkBooks.Open("C:\1c\1.xls");

Макет1 = ПолучитьМакет("Реестр");
Область = Макет1.ПолучитьОбласть("Шапка");
Область.Параметры.НомерРеестра = НомерРеестра;
Область.Параметры.Организация = СсылкаНаОбъект.Организация;
Область.Параметры.Номер = НомерПлатежногоПоручения;
Область.Параметры.Дата = Формат(ДатаРеестра,"ДЛФ=DD");
ТабДок.Вывести(Область);
Область = Макет1.ПолучитьОбласть("ЛицевыеСчета");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Наименование КАК Физлицо,
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Сумма,
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.ДатаРождения КАК ДатаРождения,
		               |	ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета
		               |ИЗ
		               |	РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
		               |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
		               |		ПО (ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Ссылка = ЛицевыеСчетаРаботниковОрганизации.ФизЛицо.Ссылка)
		               |ГДЕ
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Ссылка = &Ссылка
		               |	И ЛицевыеСчетаРаботниковОрганизации.Банк = &Банк
		               |
		               |СГРУППИРОВАТЬ ПО
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.ДатаРождения,
		               |	ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета,
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Сумма,
		               |	ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Наименование
		               |
		               |УПОРЯДОЧИТЬ ПО
		               |	Физлицо";
					   	Запрос.УстановитьПараметр("Ссылка" , СсылкаНаОбъект);
		Запрос.УстановитьПараметр("Банк", СсылкаНаОбъект.Банк);
		ВЫборка = Запрос.Выполнить().Выбрать();
		Пока Выборка.Следующий() Цикл
			ФИО = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(Выборка.Физлицо, " ");
			Область.Параметры.Фио = ФИО[0]+ " "+ФИО[1] +" "+ФИО[2];;
			Область.Параметры.ЛицевСчет = Выборка.НомерЛицевогоСчета;
			Область.Параметры.Сумма = Формат(Выборка.Сумма,"ЧДЦ=2");
			ТабДок.Вывести(Область);
		КонецЦикла;
		ТабДок.Записать("C:\1c\2.xls","xls");
		Книга1 = Эксель.WorkBooks.Open("C:\1c\2.xls");
		Макет2 = ПолучитьМакет("Payments");
		Область = Макет2.ПолучитьОбласть("ТретийЛист");
			Пока Выборка.Следующий() Цикл
			
			Область.Параметры.НомерСчета = Выборка.НомерЛицевогоСчета;
			Область.Параметры.Сумма = Формат(Выборка.Сумма,"ЧДЦ=2");
			ТабДок.Вывести(Область);
		КонецЦикла;
		ТабДок.Записать("C:\1c\3.xls","xls");
		Книга2 = Эксель.WorkBooks.Open("C:\1c\3.xls");
		
		
		
	Файл = Эксель.Workbooks.Add(); 
	Лист = Файл.WorkSheets.Add();
    Лист =  Книга.Copy;
	КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. juvv873 30.11.14 18:15 Сейчас в теме
Доброго времени суток, ребят как Мне нужно три файла запихать в одну Эксель, направьте меня на верный путь...Пожалуйста
3. dimalf 30.11.14 18:27 Сейчас в теме
Добрый день!

А в один макет всё нельзя закинуть?

Если нет, тогда можно
ТабДок Новый ТабличныйДокумент;
ТабДок1 Новый ТабличныйДокумент;
ТабДок2 Новый ТабличныйДокумент;
ТабДок3 Новый ТабличныйДокумент;

<< что-то там строиттся >>

ТабДок = ТабДок1 + ТабДок2 + ТабДок3;
4. juvv873 30.11.14 21:40 Сейчас в теме
ругается что прировнять к числу нельзя
5. juvv873 30.11.14 22:17 Сейчас в теме
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(69)}: Преобразование значения к типу Число не может быть выполнено
Документ = ТабДок + ТабДок1 + ТабДок2;
6. omut 01.12.14 00:59 Сейчас в теме
что-то непонятно, что вы имели виду. Чтобы одно под другим в одной таблице расположено было? Так выводите в одну таблицу, зачем вам несколько и в них потом сохранять? Или на разные листы одной таблицы сделать? Тогда так, конечно, не получится. Тогда или сразу в эксель выводите. Или через seets экселя например так же, как в вашем примере было (после того, Как открыли книги). А временные файлы, в которые сохранили, потом можно и удалить.
7. juvv873 01.12.14 16:25 Сейчас в теме
Вы могли бы привести пример, запутался не могу разобраться.
9. omut 01.12.14 21:46 Сейчас в теме
(7) juvv873, во всех непонятных ситуациях с экселем смотри справку по VBA ;)
А так, вот пример:
ИсходнаяКнига = Эксель.WorkBooks.Open(ДиалогОткрытия.ПолноеИмяФайла);
ИтоговаяКнига = Эксель.WorkBooks.Add();
ИтоговыйЛист = ИтоговаяКнига.Sheets(1);
ИсходныйЛист = ИсходнаяКнига1.Sheets(1);
ИсходныйЛист.Range(ИсходныйЛист.Cells(1, 1), ИсходныйЛист.Cells(СтрокТаблица1, КолонокТаблица1)).Copy(ИтоговыйЛист.Range(ИтоговыйЛист.Cells(1, 1), ИтоговыйЛист.Cells(СтрокТаблица1, КолонокТаблица1)));
ИсходныйЛист = ИсходнаяКнига2.Sheets(1);
ИсходныйЛист.Range(ИсходныйЛист.Cells(1, 1), ИсходныйЛист.Cells(СтрокТаблица2, КолонокТаблица2)).Copy(ИтоговыйЛист.Range(ИтоговыйЛист.Cells(1, 1), ИтоговыйЛист.Cells(СтрокТаблица2, КолонокТаблица2)));


Размеры областей (СтрокТаблица1, СтрокТаблица2, КолонокТаблица1, КолонокТаблица2) можете получить, например, предварительно из ваших же табличных документов в коде 1С (высота таблицы оно самое после формирования всего табличного документа, ширину и того проще заранее узнать).
8. tusv 212 01.12.14 16:41 Сейчас в теме
Давно это делал. Вроде бы приблизительно так
Создаешь новую книгу
Книга = Эксель.WorkBooks.ADD();
И копируешь туда листы
Книга.Copy("C:\1c\1.xls");
Книга.Copy("C:\1c\2.xls");
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот