Сохранить табличный документ в pdf 1с программно
Пользователю потребовалось создавать файл договора с контрагентом программно из 1с. В результате должны формироваться файлы word и pdf. Все данные для договоров уже были у нас в справочниках (наименование, дата договора, номер договора и т.д). Задача сводится к формированию готовых файлов на основании шаблона word-документа. Для заполнения шаблона данными было принято правило: параметры, которые подлежат в тексте шаблона замене заключаются в квадратные скобки [ ].
Для обращения к файлу используем COMОбъект Word.Application. Для сохранения файла в pdf формат решено было использовать возможности самого wordа. Ниже код, который из хранилища значений получает шаблон, производит замену параметров и сохраняет файлы. Данный код должен находится в модуле объекта, так как для получения значения параметра используется метод Вычислить().
ДанныеМакета = Справочники.ДоговорыСКонтрагентами.МакетДоговора.Получить();
ИмяФайла = "D:file.docx";
ИмяФайлаПДФ = "D:file.pdf";
ДанныеМакета.Записать(ИмяФайла);
MSWord = Новый COMОбъект("Word.Application");
MSWord.Visible = Ложь;
MSWord.Documents.Open(ИмяФайла);
Документ = MSWord.Application.Documents(1);
Документ.Activate();
ТекстМакета = Документ.Content.Text;
//Получим массив параметров
МассивПараметров = РазбитьСтроку(ТекстМакета, "[", "]");
ТаблицаЗначенийПараметров = Новый ТаблицаЗначений;
ТаблицаЗначенийПараметров.Колонки.Добавить("НазваниеПараметра");
ТаблицаЗначенийПараметров.Колонки.Добавить("ПреобразованноеЗначение");
Для Каждого ТекПараметр Из МассивПараметров Цикл
Попытка
СсылкаНаОбъект = Вычислить(ТекПараметр);
СтрПреобразование = ТаблицаЗначенийПараметров.Добавить();
СтрПреобразование.НазваниеПараметра = ТекПараметр;
СтрПреобразование.ПреобразованноеЗначение = СсылкаНаОбъект;
Исключение
Сообщить("Невозможно интерпретировать параметр ["+ ТекПараметр+ "]");
КонецПопытки;
КонецЦикла;
//Заменим названия параметров на значения
Замена = Документ.Content.Find;
Для Каждого ТекСтрока Из ТаблицаЗначенийПараметров Цикл
Попытка
Замена.Execute("["+ ТекСтрока.НазваниеПараметра +"]", , , , , , , , , ТекСтрока.ПреобразованноеЗначение, 2);
Исключение
Сообщить("Невозможно преобразовать параметр ["+ ТекСтрока.НазваниеПараметра +"]");
КонецПопытки;
КонецЦикла;
//Сохраним в word
Документ.Save();
//Сохраним в pdf
Документ.SaveAs(ИмяФайлаПДФ, 17);
СОХРАНЕНИЕ ДОКУМЕНТОВ ИЗ 1С В PDF
Порой при создании выходной документации, можно столкнуться с задачей, как сохранять документы 1С в PDF формат. В процессе работы с системами управленческого и бухгалтерского учета, такими, как 1С Предприятие, возникает необходимость в создании большого количества документов в печатной форме, а формат PDF позволяет передавать эту документацию другим отделам, либо в другие организации, так как он является весьма распространенным и популярным. Как это можно сделать, рассмотрим на примерах.
Рисунок 1: Сохранение документа в формате PDFв системе 1С Предприятие 8.2 и выше.
Как сохранять документы 1С в PDF формат в случае, если вы используете более ранние платформы, особенно 1С Предприятие 7.7, тогда нужно будет установить одну из программ, которая позволяет сохранять документы в различных форматах, в том числе и PDF так, как будто вы печатаете его на принтере. Только вместо вывода на принтер, документ будет сохранен, как файл. Как бы это не звучало, на самом деле это очень просто и мы в этом сможем убедиться, рассмотрев следующий пример. По сути, такие программы позволяют сохранять документы в файлы нужных форматов не только в 1С, но из любой программы, которая позволяет выводить документы на принтер, что может стать очень полезным.
Итак, ваши счета, служебные записки и накладные, созданные в 1С теперь могут передаваться в различные организации в открытом формате PDF легко и просто. Достаточно выбрать в качестве принтера, когда нажимаете кнопку «печать» не ваш привычный принтер, а виртуальный принтер PDF, который вы установите на своём компьютере. Когда снова понадобится обычная печать на бумаге, просто выберите свой обычный принтер. А если он отмечен, как принтер по-умолчанию, то не нужно будет и перевыбирать. При следующей печати документа он сам вернется на своё место.
Вы можете использовать любой из виртуальных принтеров, мы же покажем, как это работает на примете принтера bioPDF. Для начала скачаем его по ссылке с официального сайта. Найдите на странице ссылку со словом download, нажмите её, сохранив файл на свой компьютер. Затем запустите его и установите программу. С этим проблем быть не должно, программа устанавливается очень просто. После установки этот виртуальный принтер появится в списке принтеров, который вы видите при печати документации.
Рисунок 2: Выбор виртуального принтера во время печати для сохранения документа в файл в формате PDF.
Если вы выберете виртуальный принтер, то будет показано окно, в котором нужно указать формат, в котором будет сохранен файл и путь, куда его сохранять.
Рисунок 3: Выбор формата сохранения файла и пути, куда сохранять.
Теперь вы знаете, как поросто сохранять документы 1С в PDF формат независимо от версии 1С Предприятие, с которой работает ваш отдел. Желаем успехов в работе!
В программных продуктах 1С:Предприятия имеется возможность сохранения печатных форм в нужных форматах.
Для сохранения необходимо вывести печатную форму на экран и воспользоваться кнопкой Сохранить.
При нажатии на эту кнопку открывается форма, где необходимо с помощью переключателя выбрать (отметить признак) необходимый формат файла и указать путь сохранения. При этом можно указать одновременно несколько форматов для сохранения, например, .pdf и .exel.
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Посмотреть все результаты поиска похожих
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Функция загружает весь табличный документ в таблицу значений 6
// Вариант 1 // По переданному табличному документу возвращает таблицу значений, // при условии что в первой строке таблицы - идентификаторы колонок // Автор : dimoff Функция ПолучитьТЗИзМакета(ТабДок, КолонкаИндекса = 1) Экспорт ТаблицаДанн Посмотреть все в категории Табличный документ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Посмотреть все результаты поиска похожих
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Функция загружает весь табличный документ в таблицу значений 6
// Вариант 1 // По переданному табличному документу возвращает таблицу значений, // при условии что в первой строке таблицы - идентификаторы колонок // Автор : dimoff Функция ПолучитьТЗИзМакета(ТабДок, КолонкаИндекса = 1) Экспорт ТаблицаДанн Посмотреть все в категории Табличный документ
Прописал новую обработку ввода на основании. Она на основании документа "Букинг" (доработанный документ) делает "Счет на оплату" и выводит его сразу в табличный документ печати. А как предусмотреть его автоматическое сохранение в формате pdf.
Вот команда Ввода на Основании
Метод:
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Вариант синтаксиса: В файл
Синтаксис:
Записать(, , )
Параметры:
(обязательный)
Тип: Строка.
Имя файла, в котором сохраняется табличный документ.
(необязательный)
Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL.
(необязательный)
Тип: КоллекцияВложенийPDF.
Объект, содержащий вложения PDF-документов.
Используется только при записи в форматы PDF и PDF/A-3.
Если табличный документ записывается в формате PDF или PDF/A-3 и указан параметр , то вложения добавляются в документ в формате PDF и PDF/A-3.
Описание варианта метода:
Запись табличного документа в файл.
Вариант синтаксиса: В поток
Синтаксис:
Записать(, , )
Параметры:
(обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи табличного документа.
(необязательный)
Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL.
(необязательный)
Тип: КоллекцияВложенийPDF.
Объект, содержащий вложения PDF-документов.
Если табличный документ записывается в формате PDF или PDF/A-3 и указан параметр , то вложения добавляются в документ в формате PDF и PDF/A-3.
Описание варианта метода:
Запись табличного документа в поток.
При записи в поток допускается использование только форматов: ANSITXT, DOCX, XLSX, MXL, MXL7, ODS, PDF, TXT.
Внимание! В веб-клиенте использование данного варианта недоступно.
Описание:
Записывает табличный документ в файл.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
При работе на сервере, веб-клиенте или через внешнее соединение:
нет возможности сохранять в формате XLS95;
нет возможности сохранять в формате MXL7 табличные документы, содержащие картинки. При попытке сохранить такой документ в формате MXL7 будет сгенерировано исключение.
Не поддерживается сохранение в PDF картинок типа Метафайл.
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
При работе на мобильной платформе возможно сохранение только в форматах MXL и PDF.
При выводе в формат PDF шрифты, которые нельзя внедрять, а также шрифты, не являющиеся TrueType или OpenType, будут заменены на шрифт Arial. Если данный шрифт не обнаружен, то будет использован шрифт Helvetica.
Пример:
// запись документа в файл
// запись документа в поток в формате XLSX
Поток = ФайловыеПотоки.ОткрытьДляЗаписи(имяФайла);
ТабДок2.Записать(Поток, ТипФайлаТабличногоДокумента.XLSX);
Поток.Закрыть();
(2) В этом фрагменте кода табдока еще нет.
(1) Надо либо дорабатывать общую форму ПечатьДокументов, как выше говорили, либо
Тогда табдок автоматом сохранится во временной папке в формате pdf и будет открыт системным приложением, но сама печатная форма не откроется.
Все платформы 1С, начиная с версии 8.2, а следовательно 8.3 и 8.4 могут сохранять табличные документы, печатные формы и отчеты в формате PDF, причем для этого не нужно устанавливать другие программы. Как сохранить из 1С 8.2 в PDF Для этого нужно подготовить документ к печати и перейти в меню “Файл – Сохранить как…” и в […]
Все платформы 1С, начиная с версии 8.2, а следовательно 8.3 и 8.4 могут сохранять табличные документы, печатные формы и отчеты в формате PDF, причем для этого не нужно устанавливать другие программы.
Как сохранить из 1С 8.2 в PDF
Для этого нужно подготовить документ к печати и перейти в меню “Файл – Сохранить как…” и в поле “Тип файла” выберите Документ PDF (*.pdf). Для примера сохраним в программе 1С Управление торговлей, редакция 10.3 печатную форму “Приходный кассовый ордер (ПКО)”:
Как сохранить документ из 1С 8.3 в файл PDF
В платформе 8.3 сохранение происходит аналогично, только здесь меню “Файл – Сохранить как…” находится под кнопочкой со стрелкой внизи в поле “Тип файла” выберите Документ PDF (*.pdf). Дальше, аналогично – в поле “Тип файла” выбрать “Документ PDF.
Если пункт меню “Сохранить как…” недоступен в 1С, то сначала нажмите левой кнопкой мыши в любом месте документа, который хотите сохранить и после этого пункт меню должен стать доступным:
Куда пропало меню “Сохранить” в 1С 8.3.15
После обновления платформы на версию 8.3.15 изменилось расположение пунктов “Сохранить как…”, теперь для его вызова нужно нажать на кнопку с тремя вертикальными точками, в правом верхнем углу формы:
Как программно сохранить табличный документ в PDF?
Часто программистам нужно программно сохранить табличный документ 1С в формате PDF. Для этого нужно использовать метод Записать() и в качестве второго параметра указать ТипФайлаТабличногоДокумента.PDF
Читайте также: