Загрузка PDF-файлов в 1С — типичная задача для бухгалтеров, кадровиков и специалистов по документообороту. Нужно прикрепить скан договора к карточке контрагента? Сохранить акты выполненных работ в базе? Или автоматически загрузить счета-фактуры из электронного документооборота? В этой статье разберём все актуальные способы — от ручного импорта до программных решений для массовой загрузки.
Важно понимать, что 1С:Предприятие не работает с PDF как с нативным форматом (в отличие от .dt или .xml). Поэтому для интеграции потребуются дополнительные инструменты: стандартные обработки, внешние компоненты или код на встроенном языке. Мы рассмотрим варианты для пользователей без навыков программирования и для разработчиков, которые могут написать собственное решение.
Если вы ищете способ загрузить PDF именно как вложение к документу (например, скан паспорта к карточке сотрудника) — переходите к разделу про хранение файлов в справочниках. Если же нужно извлечь данные из PDF (например, реквизиты счета) — читайте про OCR и парсинг.
1. Загрузка PDF как вложения к документам и справочникам
Самый простой способ — прикрепить файл к существующему объекту базы (договору, сотруднику, номенклатуре). Для этого в 1С предусмотрен механизм хранения внешних файлов, который работает во всех типовых конфигурациях (1С:Бухгалтерия, 1С:ЗУП, 1С:УТ и др.).
Инструкция:
- 📁 Откройте карточку объекта (например,
Справочники → Контрагенты → [выберите контрагента]). - 📎 Найдите поле
ФайлыилиВложения(в зависимости от версии конфигурации). В 1С:Бухгалтерия 3.0 оно обычно расположено на закладкеДополнительно. - 🖥️ Нажмите
Добавить файли выберите PDF на своём компьютере. Система автоматически создаст ссылку на файл в базе. - 💾 Сохраните изменения (
Ctrl+Sили кнопкаЗаписать и закрыть).
⚠️ Внимание: В некоторых конфигурациях (например, 1С:Документооборот) файлы хранятся не в базе, а в отдельной файловой системе. Уточните настройки хранения в Администрирование → Настройки программы → Хранение файлов.
Файл не превышает лимит размера (обычно 50–100 МБ)
Имя файла не содержит запрещённых символов (?, *, ", <, >)
У пользователя есть права на редактирование объекта
PDF не защищён паролем (иначе его нельзя будет просмотреть)
-->
2. Массовая загрузка PDF через обработку «Загрузка файлов»
Если нужно загрузить десятки или сотни файлов (например, сканы первичных документов), ручной метод не подойдёт. В этом случае используйте стандартную обработку ЗагрузкаФайлов.epf, которая есть в большинстве типовых конфигураций.
Как найти и запустить обработку:
- Перейдите в
Файл → Открыть. - Выберите путь к обработке (обычно она лежит в каталоге установки 1С, папка
ExtFormsилиTemplates). - В открывшемся окне укажите:
- 📂 Папку с PDF-файлами на диске.
- 📋 Тип объекта для прикрепления (например,
Документы → Поступление товаров). - 🔗 Поле для хранения файла (обычно
ФайлыилиВложения).
Выполнить.Обработка создаст новые документы или обновит существующие, прикрепив к ним PDF. Если файлов много, процесс может занять несколько минут — не закрывайте окно 1С до завершения.
Ежедневно
1–2 раза в неделю
Реже 1 раза в месяц
Только при настройке системы
-->
3. Автоматическая загрузка PDF из электронного документооборота (ЭДО)
Если вы работаете с Диадок, Контур.Диадок, СБИС или другими системами ЭДО, PDF-файлы (счета, акты, УПД) можно загружать автоматически. Для этого:
- Настройте обмен данными между 1С и ЭДО через
Администрирование → Обмен данными с внешними системами. - В настройках обмена укажите:
- 🔄 Формат данных (обычно
XMLилиJSON+ PDF как вложение). - 📥 Папку для сохранения входящих файлов.
- 🔗 Правила привязки PDF к документам 1С (по номеру, дате или контрагенту).
- 🔄 Формат данных (обычно
Обмен → Выполнить обмен).⚠️ Внимание: При настройке обмена с ЭДО проверьте, поддерживает ли ваша версия 1С работу с подписанными PDF (с ЭЦП). В некоторых конфигурациях для этого требуется дополнительный модуль криптографии (например, КриптоПро CSP).
| Система ЭДО | Поддерживаемые форматы | Требуется ли доработка 1С |
|---|---|---|
| Контур.Диадок | PDF, PDF/A, XML + PDF | Нет (есть готовые обработки) |
| СБИС | PDF, XML, OFD | Да (нужен модуль интеграции) |
| Такском | PDF, XML, ZIP с вложениями | Частично (зависит от версии) |
| 1С-ЭДО | PDF, XML, OFD | Нет (встроенная поддержка) |
4. Загрузка PDF через программный код (для разработчиков)
Если стандартные методы не подходят, можно написать собственную обработку на встроенном языке 1С. Ниже приведён пример кода для загрузки PDF в справочник Контрагенты:
// Пример загрузки PDF-файла к элементу справочника "Контрагенты"
Процедура ЗагрузитьPDF(ИмяФайла, СсылкаНаКонтрагента) Экспорт
// Создаём объект для работы с файлами
Файлы = Новый Соответствие();
Файлы.Вставить("Файл", Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла)));
// Прикрепляем файл к контрагенту
СсылкаНаКонтрагента.Файлы.Добавить(Файлы["Файл"], Новый ОписаниеТипов("ХранилищеЗначения"));
СсылкаНаКонтрагента.Записать();
КонецПроцедуры
// Вызов процедуры (пример)
Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка");
ЗагрузитьPDF("C:\Счета\счет_123.pdf", Контрагент);
Для массовой загрузки используйте цикл по файлам в папке:
Каталог = Новый ФайловыеОбъекты();
ФайлыPDF = Каталог.НайтиФайлы("C:\Входящие\*.pdf");
Для Каждого ИмяФайла Из ФайлыPDF Цикл
Контрагент = ... // Логика поиска контрагента по имени файла
ЗагрузитьPDF(ИмяФайла.ПолноеИмя, Контрагент);
КонецЦикла;
⚠️ Внимание: При работе с большими файлами (>50 МБ) может возникнуть ошибка Недостаточно памяти. В этом случае:
- 🔄 Разбейте загрузку на партии по 10–20 файлов.
- 🖥️ Увеличьте лимит памяти в настройках запуска 1С (параметр
/Mв ярлыке). - 🗑️ Удалите временные файлы после загрузки (
Платформа.ОчиститьВременныеФайлы()).
Если PDF содержит табличные данные (например, прайс-лист), перед загрузкой конвертируйте его в Excel или CSV с помощью инструментов вроде Adobe Acrobat или ABBYY FineReader. Это упростит дальнейшую обработку в 1С.
5. Извлечение данных из PDF (OCR и парсинг)
Иногда PDF нужно не просто сохранить, а извлечь из него данные — например, реквизиты счета или таблицу с номенклатурой. Для этого используют:
- 📖 OCR-технологии (распознавание текста) — если PDF отсканирован как изображение.
- 🔍 Парсинг — если PDF содержит selectable текст.
В 1С для этого подключают внешние компоненты:
- 🛠️ 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 реальных документах перед внедрением.
- 🤖 Настройте ручную проверку извлечённых данных (например, через бизнес-процессы 1С).
Что делать, если 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С важно обеспечить их сохранность. Файлы могут храниться:
- 🗃️ В базе данных — в виде двоичных данных (поле
ХранилищеЗначения). - 💾 Во внешней файловой системе — по ссылке (настройка в
Администрирование → Хранение файлов). - ☁️ В облаке — через интеграцию с 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) или веб-клиент. Инструкция:
- Откройте карточку документа в мобильном приложении.
- Нажмите
Прикрепить файл(значок скрепки). - Выберите 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С (например, в «Поступление товаров»)?
Порядок действий:
- Конвертируйте PDF в
Excelчерез Adobe Acrobat или онлайн-сервисы (Smallpdf, iLovePDF). - Загрузите
Excelв 1С через обработкуУниверсальныйОбменДаннымиXML. - Настройте правила преобразования колонок Excel в реквизиты документа.
Для автоматизации используйте 1С:Интеграцию с Microsoft Office.