|
Как склеить несколько табличных документов в 1С PLUT, Михаил Козлов, PR, Кирпич, Kongo2019, tulke, Злопчинский, trk415e76, Caesar, Lama12, Fragster, Bigbro, Frya, bolder, Волшебник, Garykom, laeg, Timon1405, 1cVandal, kittystark, Гений 1С, ЯнСмит, H A D G E H O G s, Philix, Greeen, ndrv, Климов Сергей, Ногаминебить, alexxx961503, formista2000, Доминошник, Жеглофф, Lelly, ОператорПК, АнализДанных, Шурик71, Tatitutu, Мультук, Builder, ass1c, lEvGl, RomanYS, Бычье сердце, BSV, nick86, DmitryKSL, Franchiser, okmail, Fish, Галахад, banco, hunter76, maxar, viraboy, paramedic, Hawk_1c, Ненавижу 1С, Калиостро, zuza, АНДР, RomaH, КонецЕсли, Prog_man, NorthWind, evorle145, Elf_80_lvl, Fedor-1971, serpentt, vis
| ☑ | ||
|---|---|---|---|---|
|
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
|
О, очередная сложнейшая задача тысячелетия от генитального
|
|||
|
18
Гений 1С
гуру
01.10.26
✎
20:12
|
(15) не будут, ИИ сильно преувеличена. Поисковик не заменит программиста
|
|||
|
19
Гений 1С
гуру
01.10.26
✎
20:13
|
(16) в обновляторе
|
|||
|
20
Garykom
гуру
01.10.26
✎
20:31
|
(18) Вероятно ты еще не видел реально умные LLM типа Claude Opus/Sonnet 5 и сравнимые аналоги
Особенно в правильном окружении для 1С |
|||
|
21
Garykom
гуру
01.10.26
✎
20:32
|
(19) Еще раз для гениев
Напиши цуко внешнюю обработку И вызывай ее через обновлятор внутри нужной базы 1С Хорош уже того стюардессу |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |