24 ноября, 2024

Сохранение документа в формате PDF

Women with a bright idea

Попросили меня недавно сделать в документе кнопку, нажав на которую можно получить файл со счетом-фактурой для отправки клиенту по электронной почте. Ну, самый примитивный вариант, в котором и в 1С ничего крутить не нужно – установить программу doPDF, которая добавляет в систему виртуальный принтер, печатая на котором получаем файл в формате PDF содержимым которого будет то, что было-бы на бумаге, если-бы отправили на обычный принтер. Но для самых ленивых можно и этот процесс “доавтоматизировать”.

Итак, нужно программно отправить документ на печать через нужный принтер. Для отправки на печать без просмотра используется стандартный метод таблиц: Напечатать(). Перед вызовом этого метода, чтобы задать имя нужного принтера используем метод ПараметрыСтраницы().

2010-12-11_195943

Здесь задана портретная ориентация страницы, автомасштаб по ширине листа, вызов печати без вызова окна настроек принтера. Но остается один недочет – при таком вызове печати откроется окно принтера doPDF с приглашением сохранить файл и имя файла нужно будет ввести вручную. Как программно сформировать и это имя? Для этого в 1С нужно обязательно печатную форму открыть, при ее открытии можно программно задать ей имя, потом вызвать печать, потом программно закрыть. Примерно вот так:

2010-12-11_200427

В этом примере имя таблицы задается с использованием кода покупателя.

Теперь при вызове печати откроется примерно такое окно:

2010-12-11_200616

И останется просто нажать на кнопку ОК для сохранения файла.