Экспорт документов и печатных форм из 1С 8.3 в PDF
Сохранить документ или печатную форму из 1С 8.3 в PDF можно двумя основными способами: через стандартное меню «Файл» (для пользователей) или программно, используя метод Записать() объекта ТабличныйДокумент (для разработчиков). В современных версиях платформы (8.3.10 и выше) поддержка PDF встроена нативно и не требует установки сторонних конвертеров.
Сохранение в PDF через интерфейс пользователя
Этот способ подходит для бухгалтеров, менеджеров и других пользователей, которым нужно быстро отправить документ контрагенту или сохранить его в архиве. Интерфейс может незначительно отличаться в зависимости от версии конфигурации («Управление торговлей», «Бухгалтерия», «ERP») и типа формы (управляемая или обычная), но логика остается единой.
Алгоритм действий в управляемых формах
- Откройте нужный документ или отчет.
- Сформируйте печатную форму, нажав кнопку Печать и выбрав необходимый макет (например, «Счет на оплату», «Накладная»).
- В открывшемся окне предпросмотра найдите значок дискеты (Сохранить) или меню Файл.
- Выберите пункт Сохранить как... или Сохранить копию.
- В выпадающем списке «Тип файла» выберите PDF (*.pdf).
- Укажите путь сохранения и нажмите ОК.
Если кнопка сохранения неактивна, убедитесь, что у вашей роли есть право на интерактивное сохранение файлов. В некоторых строгих политиках безопасности эта функция может быть отключена администратором.
Нюансы для разных версий платформы
- Версии 8.3.15 и новее: Интерфейс предпросмотра унифицирован. Кнопка сохранения часто расположена в верхней панели инструментов рядом с настройками печати.
- Старые версии (до 8.3.10): Могут требовать использования виртуального PDF-принтера (например, Microsoft Print to PDF или Bullzip PDF Printer), если прямая выгрузка не поддерживается конфигурацией. В этом случае вместо «Сохранить как» выбирается «Печать», а в списке принтеров указывается PDF-принтер.
Программная выгрузка в PDF (для разработчиков)
Для автоматизации процессов, например, при массовой рассылке счетов или сохранении документов в регистр сведений, используется встроенный язык 1С. Объект ТабличныйДокумент имеет встроенный метод записи в различные форматы, включая PDF.
Базовый пример кода
Для экспорта необходимо получить объект табличного документа, заполнить его данными (или использовать готовую печатную форму) и вызвать метод Записать.
// 1. Получаем ссылку на документ
ДокСсылка = СсылкаНаДокумент;
// 2. Формируем печатную форму (пример для универсального механизма)
МассивДокументов = Новый Массив;
МассивДокументов.Добавить(ДокСсылка);
// Предполагаем, что у нас есть модуль менеджера или общий модуль печати
// ТабДок = МенеджерПечати.СформироватьПечатнуюФорму("Счет", МассивДокументов);
// Для примера создадим простой табличный документ вручную
ТабДок = Новый ТабличныйДокумент;
ТабДок.ОтображатьСетку = Ложь;
Область = ТабДок.Область("R1C1");
Область.Текст = "Пример документа в PDF";
ТабДок.Вывести(Область);
// 3. Задаем путь для сохранения
ИмяФайла = "C:\Temp\Schet_001.pdf";
// 4. Сохраняем в PDF
// ТипФайлаТабличногоДокумента.PDF доступен в платформах 8.3.10+
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
Сообщить("Файл сохранен: " + ИмяФайла);
Важные параметры метода Записать
Метод Записать позволяет гибко настраивать процесс сохранения. Основные параметры:
- Имя файла: Полный путь к создаваемому файлу.
- Тип файла: Перечисление
ТипФайлаТабличногоДокумента. ЗначениеPDFявляется стандартным. - Качество/Параметры: В некоторых реализациях можно передать дополнительные параметры через структуру, но базовый метод обычно использует настройки по умолчанию.
Убедитесь, что папка назначения существует и у сервера 1С (или клиента, если код выполняется на клиенте) есть права на запись в эту директорию. При выполнении кода на сервере путь должен быть доступен серверному процессу.
Сравнение способов выгрузки
Выбор метода зависит от задачи: разовая операция пользователя или регламентный процесс системы.
| Характеристика | Через интерфейс (Ручной) | Программный метод (Код) |
|---|---|---|
| Целевая аудитория | Пользователи (бухгалтеры, менеджеры) | Разработчики, администраторы |
| Скорость работы | Зависит от человека | Мгновенная, пакетная обработка |
| Гибкость настроек | Стандартные параметры | Возможность менять качество, масштаб, ориентацию |
| Автоматизация | Невозможна | Полная интеграция с бизнес-логикой |
| Требования к правам | Права на просмотр и печать | Права на запись на диск/файловое хранилище |
Частые ошибки и проблемы
При работе с экспортом в PDF в 1С пользователи и разработчики часто сталкиваются со следующими проблемами:
-
Кракозябры вместо текста.
- Причина: Отсутствие необходимых шрифтов на сервере или компьютере, где происходит генерация PDF.
- Решение: Установите недостающие шрифты (часто это Arial, Times New Roman или специфические шрифты конфигурации) в систему. Для сервера Linux могут потребоваться пакеты
fonts-core.
-
Ошибка «Неверный формат файла» или отсутствие пункта PDF.
- Причина: Устаревшая версия платформы 1С (ниже 8.3.8–8.3.10).
- Решение: Обновите платформу до актуальной версии или используйте виртуальный PDF-принтер.
-
Файл сохраняется пустым или обрезанным.
- Причина: Некорректно заданы поля печати или масштаб в объекте
ТабличныйДокументперед сохранением. - Решение: Проверьте свойства
ОриентацияСтраницы,ПолеСверху,ПолеСлеваи убедитесь, что контент помещается на листе A4.
- Причина: Некорректно заданы поля печати или масштаб в объекте
-
Блокировка файла антивирусом.
- Причина: Антивирусное ПО может блокировать создание исполняемых или скриптовых файлов, иногда ошибочно реагируя на PDF, создаваемые сервером 1С.
- Решение: Добавьте папку временных файлов 1С в исключения антивируса.
FAQ
Нужно ли устанавливать Adobe Acrobat для сохранения в PDF из 1С? Нет, начиная с платформы 8.3.10, функционал экспорта в PDF встроен непосредственно в ядро 1С:Предприятие. Сторонние программы требуются только для старых версий или для сложной пост-обработки файлов.
Как сохранить несколько документов в один PDF-файл?
Штатными средствами одного вызова Записать это сделать нельзя. Необходимо либо склеивать файлы сторонними утилитами после сохранения, либо использовать COM-объекты (например, Word или Acrobat Pro) для объединения, что сложнее и медленнее. Проще всего сохранять каждый документ отдельным файлом.
Можно ли защитить PDF паролем при сохранении из 1С?
Стандартный метод ТабличныйДокумент.Записать() не поддерживает установку паролей. Для защиты файлов требуется использование внешних библиотек или COM-объектов специализированного ПО для работы с PDF.
Почему файл весит слишком много? Если в документе много изображений высокого разрешения, размер PDF будет большим. Попробуйте уменьшить разрешение картинок перед вставкой в макет или используйте сторонние оптимизаторы PDF после выгрузки.