Загрузка PDF-файлов в 1С — типичная задача для бухгалтеров, кадровиков и специалистов по документообороту. Нужно прикрепить скан договора к карточке контрагента? Сохранить акты выполненных работ в базе? Или автоматически загрузить счета-фактуры из электронного документооборота? В этой статье разберём все актуальные способы — от ручного импорта до программных решений для массовой загрузки.

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

Если вы ищете способ загрузить PDF именно как вложение к документу (например, скан паспорта к карточке сотрудника) — переходите к разделу про хранение файлов в справочниках. Если же нужно извлечь данные из PDF (например, реквизиты счета) — читайте про OCR и парсинг.

1. Загрузка PDF как вложения к документам и справочникам

Самый простой способ — прикрепить файл к существующему объекту базы (договору, сотруднику, номенклатуре). Для этого в предусмотрен механизм хранения внешних файлов, который работает во всех типовых конфигурациях (1С:Бухгалтерия, 1С:ЗУП, 1С:УТ и др.).

Инструкция:

  • 📁 Откройте карточку объекта (например, Справочники → Контрагенты → [выберите контрагента]).
  • 📎 Найдите поле Файлы или Вложения (в зависимости от версии конфигурации). В 1С:Бухгалтерия 3.0 оно обычно расположено на закладке Дополнительно.
  • 🖥️ Нажмите Добавить файл и выберите PDF на своём компьютере. Система автоматически создаст ссылку на файл в базе.
  • 💾 Сохраните изменения (Ctrl+S или кнопка Записать и закрыть).

⚠️ Внимание: В некоторых конфигурациях (например, 1С:Документооборот) файлы хранятся не в базе, а в отдельной файловой системе. Уточните настройки хранения в Администрирование → Настройки программы → Хранение файлов.

Файл не превышает лимит размера (обычно 50–100 МБ)

Имя файла не содержит запрещённых символов (?, *, ", <, >)

У пользователя есть права на редактирование объекта

PDF не защищён паролем (иначе его нельзя будет просмотреть)

-->

2. Массовая загрузка PDF через обработку «Загрузка файлов»

Если нужно загрузить десятки или сотни файлов (например, сканы первичных документов), ручной метод не подойдёт. В этом случае используйте стандартную обработку ЗагрузкаФайлов.epf, которая есть в большинстве типовых конфигураций.

Как найти и запустить обработку:

  1. Перейдите в Файл → Открыть.
  2. Выберите путь к обработке (обычно она лежит в каталоге установки , папка ExtForms или Templates).
  3. В открывшемся окне укажите:
    • 📂 Папку с PDF-файлами на диске.
    • 📋 Тип объекта для прикрепления (например, Документы → Поступление товаров).
    • 🔗 Поле для хранения файла (обычно Файлы или Вложения).
  • Нажмите Выполнить.
  • Обработка создаст новые документы или обновит существующие, прикрепив к ним PDF. Если файлов много, процесс может занять несколько минут — не закрывайте окно до завершения.

    Ежедневно

    1–2 раза в неделю

    Реже 1 раза в месяц

    Только при настройке системы

    -->

    3. Автоматическая загрузка PDF из электронного документооборота (ЭДО)

    Если вы работаете с Диадок, Контур.Диадок, СБИС или другими системами ЭДО, PDF-файлы (счета, акты, УПД) можно загружать автоматически. Для этого:

    1. Настройте обмен данными между и ЭДО через Администрирование → Обмен данными с внешними системами.
    2. В настройках обмена укажите:
      • 🔄 Формат данных (обычно XML или JSON + PDF как вложение).
      • 📥 Папку для сохранения входящих файлов.
      • 🔗 Правила привязки PDF к документам (по номеру, дате или контрагенту).
  • Запустите синхронизацию (Обмен → Выполнить обмен).
  • ⚠️ Внимание: При настройке обмена с ЭДО проверьте, поддерживает ли ваша версия работу с подписанными PDF (с ЭЦП). В некоторых конфигурациях для этого требуется дополнительный модуль криптографии (например, КриптоПро CSP).

    Система ЭДО Поддерживаемые форматы Требуется ли доработка 1С
    Контур.Диадок PDF, PDF/A, XML + PDF Нет (есть готовые обработки)
    СБИС PDF, XML, OFD Да (нужен модуль интеграции)
    Такском PDF, XML, ZIP с вложениями Частично (зависит от версии)
    1С-ЭДО PDF, XML, OFD Нет (встроенная поддержка)

    4. Загрузка PDF через программный код (для разработчиков)

    Если стандартные методы не подходят, можно написать собственную обработку на встроенном языке . Ниже приведён пример кода для загрузки PDF в справочник Контрагенты:

    
    

    // Пример загрузки PDF-файла к элементу справочника "Контрагенты"

    Процедура ЗагрузитьPDF(ИмяФайла, СсылкаНаКонтрагента) Экспорт

    // Создаём объект для работы с файлами

    Файлы = Новый Соответствие();

    Файлы.Вставить("Файл", Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла)));

    // Прикрепляем файл к контрагенту

    СсылкаНаКонтрагента.Файлы.Добавить(Файлы["Файл"], Новый ОписаниеТипов("ХранилищеЗначения"));

    СсылкаНаКонтрагента.Записать();

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

    // Вызов процедуры (пример)

    Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка");

    ЗагрузитьPDF("C:\Счета\счет_123.pdf", Контрагент);

    Для массовой загрузки используйте цикл по файлам в папке:

    Каталог = Новый ФайловыеОбъекты();
    

    ФайлыPDF = Каталог.НайтиФайлы("C:\Входящие\*.pdf");

    Для Каждого ИмяФайла Из ФайлыPDF Цикл

    Контрагент = ... // Логика поиска контрагента по имени файла

    ЗагрузитьPDF(ИмяФайла.ПолноеИмя, Контрагент);

    КонецЦикла;

    ⚠️ Внимание: При работе с большими файлами (>50 МБ) может возникнуть ошибка Недостаточно памяти. В этом случае:

    • 🔄 Разбейте загрузку на партии по 10–20 файлов.
    • 🖥️ Увеличьте лимит памяти в настройках запуска (параметр /M в ярлыке).
    • 🗑️ Удалите временные файлы после загрузки (Платформа.ОчиститьВременныеФайлы()).
    💡

    Если PDF содержит табличные данные (например, прайс-лист), перед загрузкой конвертируйте его в Excel или CSV с помощью инструментов вроде Adobe Acrobat или ABBYY FineReader. Это упростит дальнейшую обработку в 1С.

    5. Извлечение данных из PDF (OCR и парсинг)

    Иногда PDF нужно не просто сохранить, а извлечь из него данные — например, реквизиты счета или таблицу с номенклатурой. Для этого используют:

    • 📖 OCR-технологии (распознавание текста) — если PDF отсканирован как изображение.
    • 🔍 Парсинг — если PDF содержит selectable текст.

    В для этого подключают внешние компоненты:

    • 🛠️ ABBYY FineReader Engine — для OCR (распознавания сканов).
    • 📄 iTextSharp или PdfPig — для извлечения текста из PDF (требует .NET-мост).
    • 🤖 1С:Предприятие + Python — для сложного парсинга (через HTTP-Сервисы).

    Пример кода для извлечения текста с помощью PdfPig (требуется настройка интеграции с .NET):

    // Подключаем внешнюю компоненту (предварительно зарегистрированную)
    

    PdfParser = Новый COMОбъект("PdfPig.PdfDocument");

    ТекстPDF = PdfParser.ExtractText("C:\счет.pdf");

    // Разбираем текст (пример для счета)

    Если Найти(ТекстPDF, "Счёт на оплату №") > 0 Тогда

    НомерСчета = Сред(ТекстPDF, Найти(ТекстPDF, "№") + 2, 10);

    Сообщить("Найден счёт №" + НомерСчета);

    КонецЕсли;

    ⚠️ Внимание: Парсинг PDF — неточная наука. Форматы счетов и актов у всех разные, поэтому универсального решения нет. Для стабильной работы:

    • 📌 Заранее договоритесь с контрагентами о едином шаблоне документов.
    • 🔄 Тестируйте парсинг на 50–100 реальных документах перед внедрением.
    • 🤖 Настройте ручную проверку извлечённых данных (например, через бизнес-процессы ).
    Что делать, если PDF защищён паролем?

    Для работы с защищёнными PDF в 1С потребуется:

    1. Установить компоненту PdfBox или iTextSharp с поддержкой шифрования.

    2. В коде добавить метод разблокировки:

    ```1c

    PdfReader = Новый COMОбъект("iTextSharp.text.pdf.PdfReader");

    PdfReader.SetPassword("C:\защищенный.pdf", "пароль123");

    ```

    3. Учитывайте, что хранение паролей в базе 1С небезопасно — используйте Хранилище секретов (например, 1С:Коннектор секретов).

    6. Хранение и резервное копирование загруженных PDF

    После загрузки PDF в важно обеспечить их сохранность. Файлы могут храниться:

    • 🗃️ В базе данных — в виде двоичных данных (поле ХранилищеЗначения).
    • 💾 Во внешней файловой системе — по ссылке (настройка в Администрирование → Хранение файлов).
    • ☁️ В облаке — через интеграцию с 1С:Документооборот или Yandex Disk.

    Рекомендации по резервному копированию:

    • 🔄 Включите PDF в регулярные бэкапы базы (1С:Технология автоматизированного резервирования).
    • 📂 Если файлы хранятся отдельно, резервируйте и папку с ними (например, через Robocopy или Acronis).
    • 🔐 Для критичных документов (договоры, лицензии) настройте версионность — сохраняйте историю изменений файлов.

    Внимание: При миграции на новую версию 1С (например, с 8.3.18 на 8.3.22) проверьте целостность загруженных PDF. В некоторых случаях двоичные данные могут повредиться — тестируйте процесс на копии базы.

    💡

    Для долговременного хранения PDF в 1С используйте формат PDF/A — он оптимизирован для архивного сохранения и не зависит от внешних шрифтов.

    FAQ: Частые вопросы по загрузке PDF в 1С

    Можно ли загрузить PDF в 1С с телефона или планшета?

    Да, если у вас установлено мобильное приложение 1С:Предприятие (для Android/iOS) или веб-клиент. Инструкция:

    1. Откройте карточку документа в мобильном приложении.
    2. Нажмите Прикрепить файл (значок скрепки).
    3. Выберите PDF из галереи или облачного хранилища (Google Drive, Yandex Disk).

    ⚠️ Ограничение: в мобильной версии нельзя загружать файлы >30 МБ.

    Почему при загрузке PDF в 1С появляется ошибка «Неверный формат файла»?

    Причины и решения:

    • 🔍 Файл повреждён — откройте его в Adobe Acrobat и сохраните заново.
    • 📏 Размер превышает лимит — разбейте PDF на части (например, через PDF24 Tools).
    • 🔐 Файл защищён паролем — снимите защиту перед загрузкой.
    • 🖼️ PDF создан как изображение (без текстового слоя) — используйте OCR.
    Как автоматически переименовывать PDF при загрузке в 1С?

    Используйте обработку с кодом:

    ИмяФайла = Новый СтроковыеФункцииКлиентСервер();
    

    НовоеИмя = ИмяФайла.Лев(ИмяФайла.Длина(ПолноеИмяФайла) - 4) + "_" + ТекущаяДата() + ".pdf";

    Файл.Переименовать(ПолноеИмяФайла, НовоеИмя);

    Пример: счет_123.pdfсчет_123_20260515.pdf.

    Можно ли из 1С отправить PDF по email автоматически?

    Да, через встроенный механизм Почта:

    Письмо = Новый ПочтовоеСообщение();
    

    Письмо.Текст = "Документы во вложении";

    Письмо.Вложения.Добавить(Новый ВложениеФайла("C:\отчёт.pdf"));

    Письмо.Отправить("client@example.com", "Отчёт по заказу №123");

    Для массовой рассылки используйте бизнес-процессы или регламентные задания.

    Как извлечь таблицу из PDF в документ 1С (например, в «Поступление товаров»)?

    Порядок действий:

    1. Конвертируйте PDF в Excel через Adobe Acrobat или онлайн-сервисы (Smallpdf, iLovePDF).
    2. Загрузите Excel в 1С через обработку УниверсальныйОбменДаннымиXML.
    3. Настройте правила преобразования колонок Excel в реквизиты документа.

    Для автоматизации используйте 1С:Интеграцию с Microsoft Office.