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

В этой статье мы разберем все актуальные способы открытия PDF непосредственно из интерфейса 1С:Предприятие 8.3 (включая последние релизы), а также рассмотрим варианты для пользователей, у которых нет прав на изменение конфигурации. Особое внимание уделим типичным ошибкам, таким как блокировка файлов антивирусом или отсутствие ассоциации с программой для просмотра. Если вы ищете решение для автоматизации работы с PDF (например, массовая печать или извлечение данных), в конце статьи есть раздел с полезными обработками и внешними компонентами.

Прежде чем переходить к инструкциям, проверьте: 1С не предназначена для полноценной работы с PDF — это формат документов, а не баз данных. Все описанные методы позволяют только просматривать или печатать файлы, но не редактировать их. Для изменений потребуются внешние программы вроде Adobe Acrobat или Foxit Reader.

1. Открытие PDF через стандартный просмотрщик Windows

Самый простой способ — использовать встроенные средства операционной системы. 1С:Предприятие может передавать файлы во внешние программы по умолчанию, если они правильно ассоциированы в Windows. Этот метод работает во всех версиях платформы, включая 8.3.20 и новее.

Чтобы открыть PDF таким способом:

  1. Найдите в базе ссылку на файл (например, в документе "Поступление товаров" или справочнике "Файлы").

  2. Кликните по файлу правой кнопкой мыши и выберите Открыть или Просмотреть (в зависимости от конфигурации).

  3. Если система запросит программу для открытия, укажите путь к Adobe Reader, Foxit PDF Reader или другому просмотрщику.

  • Плюсы: не требует доступа к конфигуратору, работает на любых версиях .
  • Минусы: если ассоциация файлов сбита, придется настраивать её вручную через "Параметры Windows".
  • ⚠️ Ограничение: некоторые антивирусы (например, Kaspersky) могут блокировать передачу файлов из во внешние программы.
📊 Какой просмотрщик PDF вы используете?
Adobe Acrobat Reader
Foxit PDF Reader
Браузер (Chrome/Edge)
Другой
Не знаю

Если при клике на файл ничего не происходит, проверьте:

  • 📁 Путь к файлу: возможно, файл физически отсутствует на диске (например, если он был прикреплен по сети, а сетевой диск отключен).
  • 🔗 Ассоциации: в Windows перейдите в Параметры → Приложения → Приложения по умолчанию и назначьте программу для .pdf.
  • 🛡️ Антивирус: временно отключите защиту и повторите попытку.
💡

Если файл открывается, но отображается иероглифами, проверьте кодировку PDF. Некоторые документы сохраняются в UTF-16, что может вызывать проблемы в старых версиях просмотрщиков. Попробуйте открыть файл в браузере Chrome — он обычно корректно обрабатывает кодировки.

2. Использование обработки "Просмотр файлов" (для пользователей без прав конфигуратора)

Если у вас нет доступа к конфигуратору , но нужно регулярно просматривать PDF, можно использовать готовые обработки. Одна из самых популярных — "Просмотр файлов" от Инфостарт или аналогичные решения с портала 1С-Сообщество. Эти обработки не требуют изменений в конфигурации и работают в режиме 1С:Предприятие.

Как подключить обработку:

  1. Скачайте файл обработки (обычно имеет расширение .epf или .erf) с проверенного источника (например, infostart.ru).

  2. В перейдите в Файл → Открыть и выберите скачанный файл.

  3. В открывшемся окне обработки укажите путь к PDF-файлу (можно перетащить файл прямо в поле ввода).

  4. Нажмите Просмотреть — файл откроется в связанной программе.

Обработка Источник Особенности
Просмотр файлов Инфостарт Поддерживает PDF, DOCX, XLSX. Есть версия для управляемых форм.
Универсальный просмотрщик 1С-Сообщество Работает с архивами (ZIP, RAR) и изображениями.
PDF Viewer GitHub (открытый код) Требует подключения внешней компоненты PDFium.

Важно: обработки с открытых источников (например, GitHub) могут содержать вредоносный код. Перед использованием проверьте файл антивирусом и на тестовой базе.

Как проверить обработку на безопасность?

1. Откройте файл .epf в текстовом редакторе (например, Notepad++).

2. Проверьте наличие подозрительных строк, таких как вызов внешних EXE-файлов или подключение к неизвестным серверам.

3. Запустите обработку на тестовой базе с отключенным интернетом — если она запрашивает доступ к сети без причины, это тревожный знак.

3. Программное открытие PDF через 1С:Код (для разработчиков)

Если вы разрабатываете или поддерживаете конфигурацию, можно добавить функционал открытия PDF прямо в код. Для этого используется объект WScript.Shell (для Windows) или платформенные методы . Ниже приведены примеры кода для разных сценариев.

Способ 1: Через WScript.Shell (только для Windows)

Процедура ОткрытьPDF(ПутьКФайлу) Экспорт

Попытка

WScript = Новый COMОбъект("WScript.Shell");

WScript.Run(ПутьКФайлу, 1, Истина);

Исключение

Сообщить("Ошибка открытия файла: " + ОписаниеОшибки());

КонецПопытки;

КонецПроцедуры

Способ 2: Через стандартные механизмы 1С (кроссплатформенно)

Процедура ОткрытьPDFСтандартно(ПутьКФайлу) Экспорт

Если Не ЗначениеЗаполнено(ПутьКФайлу) Тогда

Возврат;

КонецЕсли;

Попытка

ОткрытьФайл(ПутьКФайлу);

Исключение

Сообщить("Не удалось открыть файл. Проверьте ассоциации в системе.");

КонецПопытки;

КонецПроцедуры

  • 📌 Примечание 1: код с WScript.Shell работает только на Windows и требует прав на выполнение COM-объектов.
  • 📌 Примечание 2: метод ОткрытьФайл() использует системные ассоциации, поэтому если PDF не открывается, проверьте настройки по умолчанию в ОС.

Сделать резервную копию конфигурации|Проверить права пользователя на изменение кода|Тестировать изменения на копии базы|Документировать внесенные правки-->

Для автоматизации можно создать обработку с кнопкой, которая будет открывать PDF из текущего документа:

Процедура КоманднаяПанельОткрытьPDF(Команда)

Если Команда = "ОткрытьPDF" Тогда

ПутьКФайлу = Объект.СсылкаНаФайл.ПолучитьФайл();

ОткрытьPDF(ПутьКФайлу);

КонецЕсли;

КонецПроцедуры

💡

Использование COM-объектов (например, WScript.Shell) может быть заблокировано политиками безопасности компании. Перед внедрением согласуйте изменения с администратором сети.

4. Просмотр PDF через браузер (для тонкого клиента и веб-клиента)

Если вы работаете в тонком клиенте или веб-клиенте 1С, стандартные методы открытия файлов могут не срабатывать из-за ограничений безопасности. В этом случае проще всего использовать браузер в качестве просмотрщика. Большинство современных браузеров (Chrome, Edge, Firefox) имеют встроенную поддержку PDF.

Алгоритм действий:

  1. Получите физический путь к файлу в (например, через поле "Файл" в документе).

  2. Скопируйте путь в буфер обмена (Ctrl+C).

  3. Откройте новую вкладку в браузере и вставьте путь в адресную строку (например, file://C:/Documents/contract.pdf).

  4. Нажмите Enter — файл откроется в браузере.

⚠️ Внимание: в веб-клиенте 1С доступ к локальным файлам ограничен по умолчанию. Если файл хранится на сервере, его сначала нужно скачать через Файл → Сохранить как, а затем открывать в браузере.

Для автоматизации этого процесса можно создать внешнюю обработку, которая будет:

  • 🔗 Генерировать ссылку вида file:///C:/path/to/file.pdf (обратите внимание на три слэша после file:).
  • 🌐 Открывать её в браузере через ShellExecute или аналогичные методы.

Пример кода для открытия в браузере:

Процедура ОткрытьВБраузере(ПутьКФайлу)

ПутьКФайлу = СтроковыеФункции.Клиент.Заменить(ПутьКФайлу, "\", "/");

ПутьКФайлу = "file:///" + ПутьКФайлу;

Попытка

СистемаОткрытьURL(ПутьКФайлу);

Исключение

Сообщить("Не удалось открыть файл в браузере. Проверьте путь: " + ПутьКФайлу);

КонецПопытки;

КонецПроцедуры

5. Работа с PDF через внешние компоненты (продвинутый уровень)

Для интеграции полноценного просмотрщика PDF непосредственно в интерфейс потребуется подключить внешнюю компоненту. Наиболее популярные решения:

  • 📄 PDFium: бесплатная компонента от Google для рендеринга PDF. Требует навыков программирования для подключения.
  • 📄 Adobe Acrobat SDK: платное решение с расширенными функциями (например, заполнение форм).
  • 📄 Foxit PDF SDK: альтернатива Adobe с гибкими тарифами.

Пример подключения PDFium:

  1. Скачайте библиотеку PDFium с официального сайта или через NuGet.

  2. Разместите файлы pdfium.dll и pdfium_viewer.dll в каталоге с базой .

  3. Подключите компоненту в конфигураторе через Сервис → Внешние компоненты.

  4. Напишите код для отображения PDF в форме (пример ниже).

Перем м_PDFium;

Процедура ПриСозданииНаСервере()

Попытка

м_PDFium = Новый COMОбъект("PDFium.PDFViewer");

Исключение

Сообщить("Не удалось загрузить компоненту PDFium!");

КонецПопытки;

КонецПроцедуры

Процедура ОткрытьPDF(ПутьКФайлу)

м_PDFium.LoadFile(ПутьКФайлу);

м_PDFium.Show();

КонецПроцедуры

⚠️ Внимание: подключение внешних компонент может нарушить лицензионные соглашения или вызвать конфликты с антивирусом. Перед использованием проконсультируйтесь с администратором системы и проверьте совместимость с вашей версией платформы.

Преимущества этого метода:

  • 🔹 Просмотр прямо в форме 1С без переключения между окнами.
  • 🔹 Поддержка дополнительных функций (поиск по тексту, масштабирование).
  • 🔹 Работа в тонком клиенте (при правильной настройке).

Недостатки:

  • ⚠️ Сложность настройки — требует знаний и API внешней компоненты.
  • ⚠️ Лицензионные ограничения — некоторые компоненты платные или имеют ограничения на коммерческое использование.

6. Альтернативные способы: печать и конвертация

Если открыть PDF напрямую не получается, можно пойти обходным путем:

  • 🖨️ Печать PDF: многие документы в поддерживают печать в PDF через виртуальный принтер (например, Microsoft Print to PDF или CutePDF). Для этого:

    1. Откройте документ в (например, счет-фактуру).
    2. Нажмите Печать → Печать в файл.
    3. Выберите виртуальный принтер PDF и сохраните файл.
  • 🔄 Конвертация в другой формат: если PDF содержит табличные данные, их можно извлечь в Excel через специализированные сервисы (например, Smallpdf или iLovePDF), а затем импортировать в .
  • Для автоматизации печати в PDF можно использовать следующий код:

    Процедура ПечатьВДокументPDF(Объект)
    

    Макет = Объект.ПолучитьМакет("ПечатнаяФорма");

    ТабличныйДокумент = Новый ТабличныйДокумент;

    ТабличныйДокумент.Вывести(Макет);

    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);

    Диалог.Заголовок = "Сохранить как PDF";

    Диалог.Фильтр = "PDF файлы (.pdf)|.pdf";

    Если Диалог.Выбрать() Тогда

    ТабличныйДокумент.Записать(Диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);

    КонецЕсли;

    КонецПроцедуры

    Если вам нужно извлечь данные из PDF в , рассмотрите следующие инструменты:

    Инструмент Назначение Стоимость
    ABBYY FineReader Распознавание текста и таблиц из PDF Платный (от 5 000 руб.)
    Tabula Извлечение таблиц из PDF в CSV Бесплатный
    1С:Предприятие + Python Автоматизация через PyPDF2 или pdfplumber Бесплатно (требует навыков программирования)

    7. Типичные ошибки и их решения

    При работе с PDF в пользователи часто сталкиваются с следующими проблемами:

    • 🚫 "Файл не найден": проверьте, существует ли файл по указанному пути. В пути могут отличаться для сервера и клиента. Используйте ПолучитьИмяВременногоФайла(), если нужно работать с копией.
    • 🔒 "Доступ запрещен": убедитесь, что у пользователя есть права на чтение файла и каталога. В Windows проверьте разрешения в свойствах папки.
    • 📛 "Неизвестный формат": файл может быть поврежден или сохранен в нестандартной кодировке. Попробуйте открыть его в другом просмотрщике (например, Sumatra PDF).
    • 🖥️ "Не открывается в тонком клиенте": тонкий клиент имеет ограничения на доступ к локальным ресурсам. Используйте серверные пути или передавайте файл через HTTP.
    • Если PDF открывается, но отображается некорректно (например, шрифты заменены на иероглифы), причины могут быть следующими:

      • 🔤 Отсутствие шрифтов: PDF может использовать нестандартные шрифты, которые не установлены в системе. Установите недостающие шрифты или откройте файл в браузере.
      • 📏 Повреждение файла: попробуйте открыть PDF в Adobe Acrobat и выполнить Файл → Сохранить как для восстановления структуры.
      • 🛠️ Ошибки рендеринга: обновите просмотрщик PDF до последней версии.
      • ⚠️ Внимание: если вы работаете с PDF, содержащими конфиденциальные данные (например, паспортные сведения или банковские реквизиты), избегайте открытия файлов через браузер или облачные сервисы. Используйте локальные просмотрщики с шифрованием кэша.

        FAQ: Частые вопросы по работе с PDF в 1С

        Можно ли редактировать PDF прямо в 1С?

        Нет, 1С:Предприятие не поддерживает редактирование PDF. Для изменений используйте внешние программы (Adobe Acrobat Pro, Foxit PhantomPDF) или конвертируйте PDF в редактируемый формат (DOCX, XLSX).

        Почему при открытии PDF из 1С появляется ошибка "Не удалось найти приложение"?

        Эта ошибка возникает, если в Windows не назначена программа для открытия файлов .pdf по умолчанию. Исправьте это через Параметры → Приложения → Приложения по умолчанию.

        Как массово открыть все PDF, прикрепленные к документам в 1С?

        Для этого напишите обработку, которая:

        1. Выгружает список документов с прикрепленными файлами.
        2. Фильтрует файлы по расширению .pdf.
        3. Последовательно открывает каждый файл через WScript.Shell или ОткрытьФайл().

      Готовые решения можно найти на Инфостарт по запросу "массовый просмотр вложений".

      Можно ли встроить просмотрщик PDF в форму документа 1С?

      Да, но для этого потребуется:

      1. Подключить внешнюю компоненту (например, PDFium).
      2. Создать реквизит формы типа ПолеHTMLДокумента или ЭлементУправленияActiveX.
      3. Написать код для загрузки и отображения PDF в этом поле.

    Пример реализации есть в публикации на Инфостарт (указать актуальную ссылку).

    Как защитить PDF, создаваемые из 1С, от редактирования?

    При печати в PDF через виртуальный принтер (Microsoft Print to PDF) защиту добавить нельзя. Для этого используйте:

    • Специальные компоненты (например, Amyuni PDF Converter).
    • Внешние сервисы (например, iLovePDF для добавления пароля).
    • Код на Python с библиотекой PyPDF2 (для программистов).