Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

1С 8.3.12 сохранение нескольких табличных документов в Экселе на разных листах

1С 8.3.12 сохранение нескольких табличных документов в Экселе на разных листах
Я
   slasher
 
08.10.18 - 17:57
Добрый вечер!

Говорят, что в новой версии можно сохранять табличные документы на нескольких листах в Экселе. Кто-нибудь знает синтаксис, может кто-работал уже, поделитесь? В СП нет ничего.
 
 
   shuhard
 
1 - 08.10.18 - 18:51
(0) ПРОЧЕЕ

Экспорт пакета отображаемых документов. Несколько табличных документов "1С:Предприятия" можно сохранить на разных листах результирующего документа, имеющего формат табличного процессора (XLS, XLSX, ODT). Эта возможность позволит, например, сохранять отчет, содержащий несколько разделов, в формате Microsoft Excel.
   shuhard
 
2 - 08.10.18 - 18:53
(1) +1
Реализована возможность экспорта пакета отображаемых документов в форматы XLS (Microsoft Excel 97-2003), Microsoft Office OpenXML (Microsoft Excel 2007 и старше) и ODT (OpenDocument). При этом реализована возможность сохранения каждого табличного документа пакета на отдельном листе результирующего документа.

Реализовано свойство ЭлементПакетаОтображаемыхДокументов.Наименование, которое используется для указания имени листа.

Для объекта ПакетОтображаемыхДокументов реализованы методы Записать() и НачатьЗапись().
   shuhard
 
3 - 08.10.18 - 18:58
(2)+1
https://its.1c.ru/db/metod8dev#content:5792:hdoc:_top:пакетотображаемыхдокументов

Особенности пакетной печати табличных документов

Режим пакетной печати предназначен для печати нескольких табличных документов. Для печати используются объекты встроенного языка: ПакетОтображаемыхДокументов, ЭлементыПакетаОтображаемыхДокументов, ЭлементПакетаОтображаемыхДокументов.

ПакетОтображаемыхДокументов – это собственно сам пакет, который содержит документы и настройки печати. У него есть свойство Состав, представляющее собой объект ЭлементыПакетаОтображаемыхДокументов – коллекцию объектов  ЭлементПакетаОтображаемыхДокументов.

ЭлементПакетаОтображаемыхДокументов – объект, который содержит либо адрес временного хранилища, в котором расположен табличный документ, либо объект ПакетОтображаемыхДокументов, обозначающий вложенный пакет документов.

Настройки печати устанавливаются для всего пакета, индивидуальные настройки печати документов игнорируются. Доступны настройки КоличествоЭкземпляров, РазборПоКопиям, ИмяПринтера, ДвусторонняяПечать, ТочностьПечати, Вывод.

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

Например, необходимо распечатать 3 табличных документа, причем два из них по 5 экземпляров каждый, а третий - в 2 экземплярах:
Копировать в буфер обмена
// Создаем пакет

Пакет = Новый ПакетОтображаемыхДокументов;

// Документы, находящиеся в этом пакете, печатаются в 5 экземплярах

Пакет.КоличествоЭкземпляров = 5;

// Добавляем документы в пакет

ЭлементПакета1 = Пакет.Состав.Добавить();
ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент1, УникальныйИдентификатор);
ЭлементПакета2 = Пакет.Состав.Добавить();
ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент2, УникальныйИдентификатор);

// Добавляем вложенный пакет для третьего документа

ВложенныйПакет = Новый ПакетОтображаемыхДокументов;
ЭлементПакета3 = Пакет.Состав.Добавить();
ЭлементПакета3.Данные = ВложенныйПакет;

// Документ во вложенном пакете печатается в 2 экземплярах

ВложенныйПакет.КоличествоЭкземпляров = 2;

// Добавляем документ во вложенный пакет

ЭлементВложенногоПакета1 = ВложенныйПакет.Состав.Добавить();
ЭлементВложенногоПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент3, УникальныйИдентификатор);

// Печатаем пакет

Пакет.Напечатать(); 

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

Пакет позволяет также экспортировать табличные документы в один PDF файл. Для этого предназначен метод пакета ЗаписатьФайлДляПечати(), которому передается полное имя файла.
   slasher
 
4 - 08.10.18 - 19:28
shuhard, спасибо огромное, выручил!!!

кому надо вот рабочий кусок кода, для сохранения в эксель
Пакет = Новый ПакетОтображаемыхДокументов;
    Пакет.КоличествоЭкземпляров = 2;
    ЭлементПакета1 = Пакет.Состав.Добавить();
    ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабДокРеестр);
    ЭлементПакета2 = Пакет.Состав.Добавить();
    ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабДок);
    
    Пакет.Записать(СокрЛП(ИмяФайла)+".xls",ТипФайлаПакетаОтображаемыхДокументов.XLS);
   shuhard
 
5 - 08.10.18 - 19:32
(4) не вижу в твоем коде имен листов
   Cyberhawk
 
6 - 08.10.18 - 20:09
Еще и в xls пишешь - кому оно нужно?
   slasher
 
7 - 08.10.18 - 20:29
(5) они без имен, просто "Лист1" и "Лист2"
   slasher
 
8 - 08.10.18 - 20:29
(6) ну вдруг кому пригодится

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует