Как сохранить несколько файлов 1с
есть обработка, которая одновременно выводит несколько печатных форм, стоит задача сохранить их в один файл excel, как это реализовать чтобы формировался один файл excel но каждый табличный документ прописывался в свой лист
(0) Через ПакетОтображаемыхДокументов
(1) а он записывать в файл умеет в сп вроде сказано, что он печатает
(1) набросал вот так
ОднаКнига = Новый ПакетОтображаемыхДокументов;
Элт = ОднаКнига.Состав.Добавить();
Элт.Данные = ПоместитьВоВременноеХранилище(ТабДок);
ОднаКнига.Записать(ИмяФайла, ТипФайлаПакетаОтображаемыхДокументов.XLSX);
Реально работает, только открыв файл excel, вместо данных отображаются параметры табличного документа, что я не так сделал подскажите?
Элт.Записать() пробовал?
и еще возможно ли перенести график с табличного документа в excel таким же способом
(4) точно, щас попробую
(4) нет такого метода, есть наименование и данные
ОднаКнига = Новый ПакетОтображаемыхДокументов;
Элт = ОднаКнига.Состав.Добавить(ПоместитьВоВременноеХранилище(ТабДок));
ОднаКнига.Записать(ИмяФайла, ТипФайлаПакетаОтображаемыхДокументов.XLSX);
(3) Наименование добавь
(7) ПакетОтображаемыхДокументов (RepresentableDocumentBatch)
Записать (Write)
Синтаксис:
Записать(, )
Параметры:
(обязательный)
Тип: Строка.
Содержит полное имя файла, в который нужно записать пакет отображаемых документов.
(обязательный)
Тип: ТипФайлаПакетаОтображаемыхДокументов.
Содержит формат файла, в котором будет сохранен пакет отображаемых документов.
Описание:
Записывает пакет отображаемых документов в файл.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ПакетОтображаемыхДокументов, метод НачатьЗапись
Использование в версии:
Доступен, начиная с версии 8.3.12.
(8) такая же фигня
(9) наименование я так понял отвечает за названия листа
Табличный документ я получаю так
ОтчетОбъект = РеквизитФормыВЗначение(«Отчет»);
Макет = ОтчетОбъект.ПолучитьМакет(«МакетПодразделение»);
далее по стандарту обращаюсь в облостям строк и колонок и заполняю параметры
(10) это я у себя тоже прочитал, но так до сих пор и не понятно, почему вместо данных записывается макет с параметрами
Как сохранить несколько файлов 1с
Дата публикации 31.05.2021
Использован релиз 3.0.93
В программе «1С:Бухгалтерия 8» (ред. 3) из журнала документов можно сформировать список документов в табличном или текстовом формате, отправить его на печать или сохранить в файл. Рассмотрим, как это сделать, на примере документов поступления:
- Раздел: Покупки – Поступление (акты, накладные, УПД) (рис. 1).
- По кнопке «Еще» выберите «Вывести список».
- В открывшейся форме выберите формат списка (табличный документ / текстовый документ) и установите флажки у тех колонок, которые должны отображаться в списке.
- Кнопка «ОК».
- Сформированный табличный / текстовый документ можно сохранить в файл (значок «Дискета») или распечатать (значок «Принтер») на командной панели в правом верхнем углу списка (рис. 2).

Смотрите также
Подпишитесь на новости
Не пропускайте последние новости — подпишитесь
на бесплатную рассылку сайта:
- десятки экспертов ежедневно мониторят изменения законодательства и судебную практику;
- рассылка бесплатная, независимо от наличия договора 1С:ИТС;
- ваш e-mail не передается третьим лицам;
Сохранение из 1С в EXCEL несколько листов
он сохраняет файл как положено, но в файле должно быть еще 2 листа,
создал еще 2 макета с данными, которые постоянные. их нужно добавить как отдельные листы файла Excel.
Вопрос: Как мне добавить остальные 2 макета к файлу в виде листов?
По теме из базы знаний
- Отчет по продажам на нескольких вкладках
- Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)
- Выгрузка зарплатной ведомости для Альфабанк: АЗОН или создаем файл xls с несколькими листами без использования Excel
- Универсальная загрузка данных формата Excel
- Выгрузка данных в формате NEON (НЕОН) в Excel, с разделением на несколько листов (из конфигураций: УТ 11, УТ 10.3)
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
9. starik-2005 2895 02.05.20 18:26 Сейчас в теме
https://infostart.ru/public/979007/ — вот решение. Странно, что человек из (2), плюсанувший эту статью, уже все забыл )))
12. BARDER 35 03.05.20 19:12 Сейчас в теме
диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); диалог.Фильтр = "Файл Excel (*.xls)|*.xls|Файл Excel 2007 (*.xlsx)|*.xlsx"; Если диалог.Выбрать() Тогда ТабДок2Лист = ПолучитьВторойЛист(); ОднаКнига = Новый ПакетОтображаемыхДокументов; Элт = ОднаКнига.Состав.Добавить(); Элт.Наименование = "Заказ"; Элт.Данные = ПоместитьВоВременноеХранилище(ЭлементыФормы.Результат.Данные); Элт2 = ОднаКнига.Состав.Добавить(); Элт2.Наименование = "Образец заполнения"; Элт2.Данные = ПоместитьВоВременноеХранилище(ТабДок2Лист); ОднаКнига.Записать(диалог.ПолноеИмяФайла, ТипФайлаПакетаОтображаемыхДокументов.XLSX); КонецЕсли;
Выдает ошибку:
: Ошибка при вызове метода контекста (Записать) ОднаКнига.Записать(диалог.ПолноеИмяФайла, ТипФайлаПакетаОтображаемыхДокументов.XLSX); по причине: Ошибка экспорта табличного документа: Документ Excel 2007 не может содержать более 16384 колонок и 1048576 строк
В макете 16 колонок и 8 строк
13. starik-2005 2895 03.05.20 23:13 Сейчас в теме
ПоместитьВоВременноеХранилище(ЭлементыФормы.Результат.Данные);
Трудная жизнь 1С-негов.
14. BARDER 35 04.05.20 09:26 Сейчас в теме
(13) Возможно Вы правы какая у Вас жизнь.
Но давайте к сути. что не так тут: ПоместитьВоВременноеХранилище(ЭлементыФормы.Результат.Данные);
17. blandinko 16.03.21 17:10 Сейчас в теме
(12) Добрый день, столкнулась с такой же ошибкой, как у Вас при попытке использовать ПакетОтображаемыхДокументов для выгрузки нескольких табличных документов в одну Excel-книгу:
Ошибка экспорта табличного документа: Документ Excel 2007 не может содержать более 16384 колонок и 1048576 строк
Табличные документы так же, как и у Вас, содержат малое количество строк и столбцов и по отдельности этим же методом прекрасно выгружаются.
Вы случайно не нашли причину появления этой ошибки и как ее исправить?
18. blandinko 16.03.21 17:55 Сейчас в теме
Помогло принудительное задание нового уникального идентификатора при помещении табличных документов во временное хранилище:
Соответствие.Вставить("АдресВХранилище", ПоместитьВоВременноеХранилище(ТабДок, Новый УникальныйИдентификатор));
m0zg153; vika64; user1673094; + 3 – Ответить
19. vika64 75 27.04.22 16:34 Сейчас в теме
2. acanta 02.05.20 11:02 Сейчас в теме
Оле- подключением к екселю или макросом в готовом екселе собирать файлы в книгу.
3. BARDER 35 02.05.20 11:39 Сейчас в теме
(2) Хорошо бы примерчик)
4. lefthander 02.05.20 11:49 Сейчас в теме
(3) Вот тут можно посмотреть
То о чем вы спросили выглядит так
Лист = Книга.WorkSheets.Add(); //Добавление нового листа в книгу.
6. BARDER 35 02.05.20 12:45 Сейчас в теме
В макетах есть такая фишка: Двоичные данные, может как то закачать шаблон и с ним работать, только не пойму как.
(4) тут мне не понятно как заполнить из имеющихся макетов лист 2 и лист 3.
Процедура ДействияФормыСохранитьВExcel(Кнопка) диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); диалог.Фильтр = "Файл Excel (*.xls)|*.xls|Файл Excel 2007 (*.xlsx)|*.xlsx"; Если диалог.Выбрать() Тогда файл = Новый Файл(диалог.ПолноеИмяФайла); Если НРЕГ(файл.Расширение) = ".xlsx" Тогда ЭлементыФормы.Результат.Записать(диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX) Иначе ЭлементыФормы.Результат.Записать(диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS) КонецЕсли; КонецЕсли; Попытка Эксель= СоздатьОбъект("Excel.Application"); Эксель.Visible = 0; Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; Книга=Эксель.WorkBooks.Open(диалог.ПолноеИмяФайла); Лист = Книга.WorkSheets.Add(); Лист.Лист = Книга.WorkSheets(2); Лист.Name = "Образец заполнения"; Попытка Книга.SaveAs(диалог.ПолноеИмяФайла); Исключение Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); Возврат; КонецПопытки; КонецПроцедуры
8. Sanario 25 02.05.20 15:08 Сейчас в теме
(6) Вам же посоветовали — воспользуйтесь добавлением листа. Правда скорее всего придется высчитать высоту таблицы в листе, чтобы правильно определить какие данные на какой лист пойдут
5. acanta 02.05.20 12:02 Сейчас в теме
(3) в екселе есть макрорекордер. Это такая кнопочка, которая записывает все ваши действия в екселе в виде кода. При использовании оле-соединения его придется отредактировать для вызова из 1с как в (4)
11. BARDER 35 03.05.20 18:34 Сейчас в теме
Ребят, подскажите как мне табличный документ полученый сохранить в эксель, не могу инфы найти нигде как сохранять несколько листов.
диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); диалог.Фильтр = "Файл Excel (*.xls)|*.xls|Файл Excel 2007 (*.xlsx)|*.xlsx"; Если диалог.Выбрать() Тогда ТабДокЛист2 = Новый ТабличныйДокумент; ТабДок2Лист = ПолучитьВторойЛист(); Попытка Эксель= Новый COMОбъект("Excel.Application"); Эксель.Visible = 0; Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; Попытка Книга = Эксель.WorkBooks.Add(); Лист = Книга.WorkSheets.Add(); Лист.Name = "Заказ"; ЭлементыФормы.Результат.Записать(Лист); Лист = Книга.WorkSheets.Add(); Лист.Name = "Образец заполнения"; Лист = Книга.WorkSheets(2); ТабДок2Лист.Записать(Лист); Книга.SaveAs(диалог.ПолноеИмяФайла); Исключение Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); Возврат; КонецПопытки; КонецЕсли;
Выдает ошибку доступа к ComОбъект на строчке ЭлементыФормы.Результат.Записать(Лист);
Когда один лист нужно было, было проще: ЭлементыФормы.Результат.Записать(диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS);
7. acanta 02.05.20 12:52 Сейчас в теме
Как вариант, контейнер doc файла можно попробовать раззиповать и зазиповть с листами ексель и описанием.
10. BARDER 35 02.05.20 19:50 Сейчас в теме
диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); диалог.Фильтр = "Файл Excel (*.xls)|*.xls|Файл Excel 2007 (*.xlsx)|*.xlsx"; Если диалог.Выбрать() Тогда файл = Новый Файл(диалог.ПолноеИмяФайла); Если НРЕГ(файл.Расширение) = ".xlsx" Тогда ЭлементыФормы.Результат.Записать(диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX) Иначе ЭлементыФормы.Результат.Записать(диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLS) КонецЕсли; КонецЕсли; ТабДокЛист2 = Новый ТабличныйДокумент; ТабДок2Лист = ПолучитьВторойЛист(); Попытка Эксель= Новый COMОбъект("Excel.Application"); Эксель.Visible = 0; Исключение Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); Возврат; КонецПопытки; Книга=Эксель.WorkBooks.Open(диалог.ПолноеИмяФайла); Лист = Книга.WorkSheets.Add(); Лист.Name = "Образец заполнения"; ТабДокЛист2.Записать(Лист); Попытка Книга.SaveAs(диалог.ПолноеИмяФайла); Исключение Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); Возврат; КонецПопытки;
Пишет ошибку:
Ошибка при вызове метода контекста (Записать)
ТабДокЛист2.Записать(Лист);
по причине:
Ошибка доступа к файлу ‘COMОбъект’
Я что то неправильно сделал?
15. BARDER 35 04.05.20 12:37 Сейчас в теме
Сделал так:
диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); диалог.Фильтр = "Файл Excel (*.xls)|*.xls|Файл Excel 2007 (*.xlsx)|*.xlsx"; Если диалог.Выбрать() Тогда ТабДок1Лист = ПечатьСчетаЗаказа("Заказ"); ТабДок2Лист = ПолучитьВторойЛист("ЛистОбразецЗаполнения"); ТабДок3Лист = ПолучитьВторойЛист("ЛистСправочник"); ОднаКнига = Новый ПакетОтображаемыхДокументов; Элт = ОднаКнига.Состав.Добавить(); Элт.Наименование = "Заказ"; Элт.Данные = ПоместитьВоВременноеХранилище(ТабДок1Лист); Элт = ОднаКнига.Состав.Добавить(); Элт.Наименование = "Образец заполнения"; Элт.Данные = ПоместитьВоВременноеХранилище(ТабДок2Лист); Элт = ОднаКнига.Состав.Добавить(); Элт.Наименование = "Справочники"; Элт.Данные = ПоместитьВоВременноеХранилище(ТабДок3Лист); ОднаКнига.Записать(диалог.ПолноеИмяФайла, ТипФайлаПакетаОтображаемыхДокументов.XLSX); КонецЕсли;
Теперь новая проблема, 3 лист у меня идет с группировками, а сохраняет безгруппировок
Функция получения макета такая:
Функция ПолучитьВторойЛист(НаименованиеМакета) ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет(НаименованиеМакета); ОблЗаголовок = Макет.ПолучитьОбласть("Макет"); ОблЗаголовок.НачатьАвтогруппировкуСтрок(); ТабДокумент.Вывести(ОблЗаголовок); Возврат ТабДокумент; КонецФункции
Сохранение
Для любого документа в сервисе предусмотрена возможность сохранить отдельный файл документа или несколько файлов, либо файл с протоколом передачи документа и подписями.
- Сохранение одного документа
- Сохранение одного или нескольких документов
Сохранение одного документа
Чтобы сохранить файл документа, выполните следующее:
- Откройте документ, нажав на ссылку с его названием.

- «Документ в исходном формате» — если нужно скачать только файл документа.
- «Документ в формате PDF» — если нужно скачать файл документа, подходящий для печати.
- «Документооборот целиком» — если нужно скачать файл вместе с протоколом передачи документа и подписями. При этом сохранится архив с расширением *.ZIP, содержащий файлы: документ, протокол передачи, файлы подписей, файл с комментарием к документу (если он был).
Сохранение одного или нескольких документов
Чтобы сохранить сразу несколько файлов с документами, выполните следующее:
- Установите флажки напротив нужных документов.


- «Документ в исходном формате» — скачивается только файл документа.
- «Документ в формате PDF» — сохранится файл в формате PDF с синим штампом подписи, подходящий для печати. Каждый документ будет преобразован в отдельный файл pdf.Если был выбран только один документ, то он сразу будет преобразован в печатную форму и скачен, а если более одного документа, то Диадок сформирует архив с созданными печатными формами.
- «Документы с подписями» — сохранится комплект документов для представления в ИФНС (файл документа и файл с ЭП). Для накладных и актов также сохраняются титулы всех сторон (сохранить комплект документов можно только для подписанных документов).
- «Документооборот целиком» — сохраняются все документы, участвующие в документообороте (файл документа с протоколом передачи, извещениями и подписями).
Все файлы сохраняются в одном архиве.
При скачивании PDF документа, если установлен Acrobat Reader как просмотрщик pdf файлов по умолчанию, то можно отправить на печать до 15 файлов одновременно. Для этого:
- Выделите документы.
- Нажмите правой кнопкой мыши и выберите «Печать».

Если Acrobat Reader не установлен, то используйте другие программы для работы с pdf.
