|
|
Как склеить несколько табличных документов в 1С
PLUT, Philix, Greeen, Garykom, Timon1405, ndrv, Fragster, Кирпич, Волшебник, Климов Сергей, Ногаминебить, alexxx961503, formista2000, Доминошник, Жеглофф, Lelly, ОператорПК, АнализДанных, Шурик71, Tatitutu, kittystark, PR, Мультук, Builder, ass1c, lEvGl, RomanYS, Злопчинский, Бычье сердце, BSV, nick86, DmitryKSL, Franchiser, H A D G E H O G s, okmail, Fish, Галахад, banco, hunter76, maxar, viraboy, paramedic, Hawk_1c, Ненавижу 1С, Калиостро, zuza, АНДР, RomaH, КонецЕсли, Prog_man, NorthWind, Гений 1С, evorle145, Elf_80_lvl, Fedor-1971, serpentt, 1cVandal, vis, ads55, глазковыколупыватель, Seriy_Volk, evgeniy_n, Sserj, Азат, ildary, Crusher, dergreche, d4rkmesa, Migens, Михаил_, stix2010, zippygrill, Bad_Aleks, 2S, Gucci76, DemonShinji2, zenik, KJlag, бегинер, takefive, Homer, Krendel, Прохожий, arsik, integer, toypaul, fserg84, Джордж1, GANR
| ☑ |
|
0
Гений 1С
гуру
01.10.26
✎
12:13
|
Вывожу в один файл листы КУДИР.
В итоге последующие листы подгонятются под формат первого.
Как выводить каждый в своем формате?
Пробовал через вывести область, получаю пустой результат
ТабДок = v8.NewObject("ТабличныйДокумент");
Для Каждого Лист ИЗ СписокСформированныхЛистов Цикл
ТабДок.Вывести(Лист.Значение);
//Область = Лист.Значение.Область();
//ТабДок.ВставитьОбласть(Область, ТабДок.Область(ТабДок.ВысотаТаблицы, 1, ТабДок.ВысотаТаблицы + Область.Низ - 1, Область.Право));
КонецЦикла;
|
|
|
1
PLUT
гуру
01.10.26
✎
12:18
|
(0) старость от 2014 года
©пижжено отсюда
https://its.1c.ru/db/metod8dev/content/5792/hdoc
// Создаем пакет
Пакет = Новый ПакетОтображаемыхДокументов;
// Документы, находящиеся в этом пакете, печатаются в 5 экземплярах
Пакет.КоличествоЭкземпляров = 5;
// Добавляем документы в пакет
ЭлементПакета1 = Пакет.Состав.Добавить();
ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент1, УникальныйИдентификатор);
ЭлементПакета2 = Пакет.Состав.Добавить();
ЭлементПакета2.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент2, УникальныйИдентификатор);
// Добавляем вложенный пакет для третьего документа
ВложенныйПакет = Новый ПакетОтображаемыхДокументов;
ЭлементПакета3 = Пакет.Состав.Добавить();
ЭлементПакета3.Данные = ВложенныйПакет;
// Документ во вложенном пакете печатается в 2 экземплярах
ВложенныйПакет.КоличествоЭкземпляров = 2;
// Добавляем документ во вложенный пакет
ЭлементВложенногоПакета1 = ВложенныйПакет.Состав.Добавить();
ЭлементВложенногоПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент3, УникальныйИдентификатор);
// Печатаем пакет
Пакет.Напечатать();
Для вложенного пакета можно установить те же параметры печати, что и для всего пакета, при этом если какие-то параметры не установлены, то они определяются из параметров родительского пакета.
Пакет позволяет также экспортировать табличные документы в один PDF файл. Для этого предназначен метод пакета ЗаписатьФайлДляПечати(), которому передается полное имя файла.
|
|
|
2
Garykom
гуру
01.10.26
✎
12:22
|
(0) ТабДок в 1С это по сути один объект
Или разные объекты использовать как (1)
Или в одном использовать мелкую сетку (ширина и высота ячеек минимальная) для подгонки
Ориентация разных страниц аналогично извращаться с направлением текста
|
|
|
3
Гений 1С
гуру
01.10.26
✎
12:26
|
(1) мне нужно не в пакет, а сразу в файл
|
|
|
4
Гений 1С
гуру
01.10.26
✎
12:26
|
(2) по сути надо формат строк новый задать. Вроде была такая команда, не?
|
|
|
5
Garykom
гуру
01.10.26
✎
12:28
|
(4) Тебе СП продать?
|
|
|
6
Fedor-1971
01.10.26
✎
12:32
|
(4) СоздатьФорматСтрок в СП, т.е. фиксируем ширины колонок для каждого выводимого листа
|
|
|
7
Прохожий
01.10.26
✎
12:38
|
(3) На одном листе или на разных? Ладно, долой интриги. В конце этой ветки придут умные и скажут "делай PDF и склеивай листы в одну книжку" потом хоть на печать, хоть в почту, хоть на экран.
|
|
|
8
Fragster
гуру
01.10.26
✎
12:44
|
нужно в исходном документе не выводить область, а копировать. перед этим у того места, куда вставляешь область нужно сделать ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
СоздатьФорматСтрок (CreateFormatOfRows)
Синтаксис:
СоздатьФорматСтрок()
Описание:
Создает у области новый формат строк. В новом формате строк размеры колонок будут соответствовать размерам колонок, которые были установлены в области.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
// ТДПриемник - табличный документ, в кот. устанавливается новый формат
// Отчет - табличный документ, на основании кот. будет установлен новый формат
Процедура ДобавитьОтчет(ТДПриемник, Отчет)
НачалоНовогоФорматаСтрок = ТДПриемник.ВысотаТаблицы + 1;
ОбластьПрямоугольная = Отчет.Область(1, , Отчет.ВысотаТаблицы, );
ТДПриемник.ВставитьОбласть(ОбластьПрямоугольная, ТДПриемник.Область(НачалоНовогоФорматаСтрок, 1));
ТДПриемник.Область(НачалоНовогоФорматаСтрок, ,
НачалоНовогоФорматаСтрок + Отчет.ВысотаТаблицы - 1, ).СоздатьФорматСтрок();
// назначим ширину колонок у новой области формата строк
Для Счетчик = 1 По Отчет.ШиринаТаблицы Цикл
ТДПриемник.Область(НачалоНовогоФорматаСтрок, Счетчик).ШиринаКолонки = Отчет.Область(1, Счетчик).ШиринаКолонки;
КонецЦикла;
ТДПриемник.ВывестиГоризонтальныйРазделительСтраниц();
КонецПроцедуры // ДобавитьОтчет
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
|
|
|
9
PLUT
гуру
01.10.26
✎
12:45
|
(3)
> мне нужно не в пакет, а сразу в файл
я х.з. что тебе нужно
ТипФайлаПакетаОтображаемыхДокументов (RepresentableDocumentBatchFileType)
Значения
DOCX (DOCX)
HTML4 (HTML4)
HTML5 (HTML5)
ODS (ODS)
PDF (PDF)
TXT (TXT)
XLS (XLS)
XLSX (XLSX)
Описание:
Типы файла для сохранения пакета отображаемых документов.
|
|
|
10
Fragster
гуру
01.10.26
✎
12:45
|
вон, в СП даже почти готовый код для (0)
|
|
|
11
Гений 1С
гуру
01.10.26
✎
14:57
|
(8) неплохо, спасибо. Клиент переиграл, хочет в отдельные файлы XLS сохранять. Можно и в листы, но 1С вроде не умеет в листы?
|
|
|
12
Волшебник
01.10.26
✎
15:03
|
(11) см. ПакетОтображаемыхДокументов
|
|
|
13
Гений 1С
гуру
01.10.26
✎
15:08
|
(12) интересно. они в платформу сие добавили... надо ж.
|
|
|
14
Волшебник
01.10.26
✎
15:10
|
(13) уже лет 10 или 12
|
|
|
15
H A D G E H O G s
01.10.26
✎
15:12
|
Нас еще нейросетками пугают. Сначала они лет 10 будут поджирать вот таких вот специалистов.
|
|
|
16
Fish
гуру
01.10.26
✎
15:50
|
Судя по
ТабДок = v8.NewObject("ТабличныйДокумент");
Это всё ещё и по КОМу делается. 🤦
|
|
|
17
PR
01.10.26
✎
17:10
|
О, очередная сложнейшая задача тысячелетия от генитального
|
|