Как сохранить счет из 1с в pdf
(0) ТабличныйДокумент (SpreadsheetDocument) Записать (Write)
Синтаксис:
Записать(, )
Параметры:
(обязательный)
Тип: Строка.
Имя файла, в котором сохраняется табличный документ.
(необязательный)
Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL
Описание:
Записывает табличный документ в файл.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:
При работе на сервере, веб клиенте или через внешнее соединение нет возможности сохранять в формате XLS95.
Не поддерживается сохранение в PDF картинок типа Метафайл.
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
Пример:
ТабДок.Записать(«C:\My Documents\Таблица2.mxl»);
(2) Более конкретно:
///Формируем печ. форму
ТабДок = Новый ТабличныйДокумент;
.
Подскажите еще, как имея ссылку на документ (счет на оплату) выдернуть его печатную форму для сохранения в файл.
(5) Я бы, наверное, сделал печатную форму внешней, сохраняемой в нужный формат. Или, что проще, дописать в процедуру Печать() формы сохранение по условию(например нажатие кнопки или исходя из данных), но это менее целесообразно, поскольку придется менять конфигурацию поставщика
(5) Делай ВПФ и не парься 🙂
(5) У меня сделано так:
— на панельке с кнопками есть кнопка «Мыло».
— при нажатии на эту кнопку проверяется: открытая форма (должна быть печ. форма) и наличие мыла у контрагента (документ — контрагент).
— если все условия сошлись, то открывается диалог отправки: адреса, заголовок письма, тело письма (кроме адресов, все доступно для редактирования, заполняется по умолчанию).
— в диалоге давят кнопку «Отправить» — и усё.
Печ. форма сохраняется в файл (по желанию можно удалить файл после отправки).
Почему так: печ. форма доступна для редактирования (мало ли) до отправки; пользователь видит, что уходит; короче, все довольны.
(8) Мне надо по другому. Нужно обойти все документы за период, у каждого выдернуть печатную форму и отправить по соответствующему e-mail адресу. Все это обработкой, пользователь только один раз кнопочку тыкает своими кривыми ручонками.
(9) тык просто подаставая с каждого документа процедуру Печать() которая вернет тебе ТАбДок и повыводи эти доки в pdf
Как сохранить счет из 1С в pdf
Чтобы сохранить созданный и проведенный Счет на оплату покупателю необходимо зайти в журнал Счета покупателям (раздел Продажи – Счета покупателям)
Выбрать нужный счет и вывести печатную форму на экран с помощью кнопки Печать
При необходимости, в настройках организации можно загрузить подпись и печать, которые будут отображаться на счете (раздел Главное – Организации)
Для вывода подписи и печати необходимо установить галку в соответствующем поле
Для сохранения счета в формате pdf нажимаем на кнопку, показанную на рисунке и устанавливаем галку в поле Документ Adobe PDF (.pdf)
Завершаем кнопкой Сохранить.
Поделиться ответом
Комментарии
- Вконтакте

Автор ответа:
Ирина Дидушок
Бухгалтер-методолог
Не нашли ответа на свой вопрос?
Задайте его нам! Задать вопрос
Другие ответы
- Внедрение 1С
- Внедрение 1C:ERP
- Внедрение БИТ.Финанс
- Разработка на 1С
- Внедрение 1С:Медицина
- Внедрение 1С:Розница для сети
- Переход ЗУП 2.5 — 3.1
Сопровождение
- Аутсорсинг программистов 1С
- Техподдержка 1С
- Поддержка БИТ.Финанс
- Аутсорсинг расчета зарплаты и кадрового учета
Выгрузка в PDF из 1С (Средствами OpenOffice)
Возникла задача отправлять счета почтой. PDFcreator не подошёл поскольку не удалось вместить счёт на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашёл быстро, а вот как уместить счёт на одну страницу вширь искал долго.
В версии 1С 8.2.232 появилась возможность сохранять табличный документ в xls файл на сервера под линуксом. А вот работать с Опеном офисом из-под линукса пока не получается. Собственно комментари ненужны. Вот весь код. Самое интересное это бодание со стилями страниц в Опене Офисе. Жаль что этот фрагмент работает только на клиенте. На сервере вопрос не решается
Код 1C v 8.2 УП
Процедура КнопкаВыполнитьНажатие(Кнопка)
Если Письмо.Основание.Пустая() Тогда
Возврат
КонецЕсли;
// Открыть OpenOffice
Попытка
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Исключение
Возврат // опен офис не установлен :-(
КонецПопытки;
// получим печатную форму и запишем её во временный XLS файл
Заказ = Письмо.Основание.ПолучитьОбъект();
//Получим печатную форму
Расшифровка=Новый Структура;
Расшифровка.Вставить("СсылкаНаВнешнююОбработку",Константы.ПФСчетаДляКлиента.Получить());
Расшифровка.Вставить("ВидПечатнойФормы",Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма);
Расшифровка.Вставить("НомерСтроки",1);
тд = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Заказ, Расшифровка);
ВременныйФайл =ПолучитьИмяВременногоФайла();
ВременныйФайлXLS =ВременныйФайл + ".xls";
ВременныйФайлPDF =ВременныйФайл + ".pdf";
тд.Записать(ВременныйФайлXLS, ТипФайлаТабличногоДокумента.XLS97);
// Преобразовываем временный xls файл В PDF
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
НастройкиОткрытия = Новый COMSafeArray("VT_VARIANT", 1);
PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
PropertyValue.Name = "Hidden";
PropertyValue.Value = Истина;
НастройкиОткрытия.SetValue(0, PropertyValue);
ВременныйФайлXLS_какУРЛ = "file:///" + СтрЗаменить(ВременныйФайлXLS, "\", "/"); // приводим путь к файлу из виндового формата в опен офисный
// Откроем файл в опене офисе
ОпенОфис = Desktop.LoadComponentFromURL(ВременныйФайлXLS_какУРЛ, "_blank", 0, НастройкиОткрытия);
//ПараметрыСтраницы = ОпенОфис.createInstance("com.sun.star.style.PageStyle");
//ПараметрыСтраницы.ScaleToPagesX = 1;
//
// Установим масштаб, чтобы счёт помещался на одной странице вширь
// страниц почему-то много, поэтому устанавливаем масштаб для всех
Стили = ОпенОфис.StyleFamilies.getByName("PageStyles");
Для поз = 0 по Стили.count - 1 Цикл
МойСтиль = Стили.getByIndex(поз);
МойСтиль.ScaleToPagesX = 1; // уместить на одной странице вширь
//МойСтиль.PageScale = 50; // масштаб 50%
КонецЦикла;
НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 1);
PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
PropertyValue.Name = "FilterName";
PropertyValue.Value = "calc_pdf_Export";
НастройкиСохранения.SetValue(0, PropertyValue);
ВременныйФайлPDF_какУРЛ = "file:///" + СтрЗаменить(ВременныйФайлPDF, "\", "/"); // приводим путь к файлу из виндового формата в опен офисный
ОпенОфис.storeToURL(ВременныйФайлPDF_какУРЛ, НастройкиСохранения); // сохранили PDF файл
ОпенОфис.close(-1);
ОпенОфис = Неопределено;
// С опеном офисом разобрались. Прикрепляем вложение к письму и удаляем временные файлы.
//Файл = Новый Файл(ВременныйФайлPDF);
объектПисьмо = Письмо.ПолучитьОбъект();
стрВложение = объектПисьмо.Вложения.Добавить();
стрВложение.ИмяФайла = "Счёт " + Строка(Заказ.Номер) + ".pdf";
стрВложение.Файл = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ВременныйФайлPDF));
объектПисьмо.Записать();
Попытка
УдалитьФайлы(ВременныйФайлXLS);
УдалитьФайлы(ВременныйФайлPDF);
Исключение
КонецПопытки;
КонецПроцедуры
Автор: Трактор
Функция позволяющая выполнить выгрузку табличного документа в PDF средствами OpenOffice
Код 1C v 8.х
// Функция превращает табличный документ в PDF документ
// Возвращаемое значение: тип "Строка" - имя созданного PDF файла, 0 - в случае ошибки
// Параметры: ДанныеВыгрузки - Табличный или текстовый документ, который нужно выгрузить в PDF
// ПутьВыгрузки - тип "Строка", путь для сохраниения PDF файла (без имени и расширения файла)
// ИмяФайлаБезРасширения - тип "Строка", имя для вновь сформированного PDF файла
// Тестировалось на OpenOffice 3.x
Функция ВыгрузитьТабличныйДокументВPDF(ДанныеВыгрузки, ПутьВыгрузки, ИмяФайлаБезРасширения)
Если НЕ ЗначениеЗаполнено(ПутьВыгрузки) Тогда
ПутьВыгрузки = КаталогВременныхФайлов();
КонецЕсли;
ПутьВыгрузки = ?(Прав(ПутьВыгрузки, 1) = "\", ПутьВыгрузки, ПутьВыгрузки + "\");
РасширениеXSL = ".xls";
РасширениеPDF = ".pdf";
ПолноеИмяФайлаXLS = ПутьВыгрузки + ИмяФайлаБезРасширения + РасширениеXSL;
//Выгрузка данных печати в файл XLS
#Если Клиент Тогда
Состояние("Создание временного файла. ");
#КонецЕсли
Попытка
Если ТипЗнч(ДанныеВыгрузки) = Тип("ТабличныйДокумент") Тогда
ДанныеВыгрузки.Записать(ПолноеИмяФайлаXLS, "XLS");
ИначеЕсли ТипЗнч(ДанныеВыгрузки) = Тип("ТекстовыйДокумент") Тогда
ДанныеВыгрузки.Записать(ПолноеИмяФайлаXLS, "XLS");
Иначе
#Если Клиент Тогда
Сообщить("Данные для выгрузки переданы в неподдерживаемом формате. Дальнейшее выполнение невозможно." + Символы.ПС + ОписаниеОшибки());
#КонецЕсли
Возврат 0;
КонецЕсли;
Исключение
#Если Клиент Тогда
Сообщить("Произошла ошибка при выгрузке временного файла. Возможно ошибка доступа к папке, в которую происходит запись." + Символы.ПС + ОписаниеОшибки());
#КонецЕсли
Возврат 0;
КонецПопытки;
Попытка
#Если Клиент Тогда
Состояние("Открытие компоненты OpenOffice. ");
#КонецЕсли
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.language = "javascript";
Скрипт.AddObject("OpenOffice", ServiceManager);
//Открытие временного файла без отображения его окна
#Если Клиент Тогда
Состояние("Открытие временного файла. ");
#КонецЕсли
Скрипт.eval("Массив=new Array()");
Массив = Скрипт.eval("Массив");
Скрипт.eval("Массив[0] = OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
Скрипт.eval("Массив[0].Name = 'Hidden'");
Скрипт.eval("Массив[0].Value = true");
Скрипт.AddCode("function SetItem(ind,val)");
Скрипт.AddObject("ServiceManager",ServiceManager);
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
Document = Desktop.LoadComponentFromURL("file:///" + ПолноеИмяФайлаXLS, "_blank", 0, Массив);
//Сохранение в PDF встроенными средствами OpenOffice
#Если Клиент Тогда
Состояние("Запись в PDF. ");
#КонецЕсли
Скрипт.eval("Массив2=new Array()");
Массив2 = Скрипт.eval("Массив2");
Скрипт.eval("Массив2[0] = OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
Скрипт.eval("Массив2[0].Name = 'FilterName'");
Скрипт.eval("Массив2[0].Value = 'writer_pdf_Export'");
ПолноеИмяФайлаPDF = "file:///" + СтрЗаменить(ПолноеИмяФайлаXLS, РасширениеXSL, РасширениеPDF);
ПолноеИмяФайлаPDF = СтрЗаменить(ПолноеИмяФайлаPDF, ВРег(РасширениеXSL), РасширениеPDF);
ПолноеИмяФайлаPDF = СтрЗаменить(ПолноеИмяФайлаPDF, "\", "/");
Document.storeToURL(ПолноеИмяФайлаPDF, Массив2);
Document.close(-1); //Закрыть документ
//Контрольная очистка переменных
Document = Неопределено;
Desktop = Неопределено;
//Удаление временного файла
#Если Клиент Тогда
Состояние("Удаление временного файла. ");
#КонецЕсли
Попытка
УдалитьФайлы(ПолноеИмяФайлаXLS);
Исключение
#Если Клиент Тогда
Сообщить("Произошла ошибка при удалении временного файла. Возможно, потребуется удалить его вручную." + Символы.ПС + ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
ПолноеИмяФайлаPDF = СтрЗаменить(ПолноеИмяФайлаPDF, "file:///", "");
ПолноеИмяФайлаPDF = СтрЗаменить(ПолноеИмяФайлаPDF, "/", "\");
#Если Клиент Тогда
Состояние("Выгрузка выполнена.");
Предупреждение("Выгрузка выполнена." + Символы.ПС + ПолноеИмяФайлаPDF);
#КонецЕсли
Возврат ПолноеИмяФайлаPDF;
Исключение
Document.close(-1);
#Если Клиент Тогда
Предупреждение(ОписаниеОшибки());
#КонецЕсли
Возврат 0;
КонецПопытки
КонецФункции
Как сохранить документ из 1С в PDF
Все платформы 1С, начиная с версии 8.2, а следовательно 8.3 и 8.4 могут сохранять табличные документы, печатные формы и отчеты в формате PDF, причем для этого не нужно устанавливать другие программы. Как сохранить из 1С 8.2 в PDF Для этого нужно подготовить документ к печати и перейти в меню “Файл – Сохранить как…” и в […]
Содержание скрыть
- 1. Как сохранить из 1С 8.2 в PDF
- 2. Как сохранить документ из 1С 8.3 в файл PDF
- 3. Куда пропало меню “Сохранить” в 1С 8.3.15
- 4. Как программно сохранить табличный документ в 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
Пример программного сохранения из 1С табличное документа в PDF:
Процедура ПримерСохраненияТабличногоДокумента() // Создаем или получаем табличный документ ТабличныйДокумент = Новый ТабличныйДокумент; // . // . здесь должна быть процедура вывода данных в табличный документ // . // Задаем имя файла ИмяФайла = КаталогВременныхФайлов() + "test.pdf"; // Записываем документ в указанный файл, в формате PDF ТабличныйДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF); КонецПроцедуры
Канал про 1С появился в telegram

Следите за выходом отчетов и расширений для 1С на новом Telegram-канале здесь. Нас уже более 700 человек!
