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

Важно понимать, что 1С не умеет напрямую редактировать PDF — система работает с ними как с двоичными данными (файлами-вложениями). Но есть нюансы: в зависимости от конфигурации (1С:Бухгалтерия, 1С:ЗУП, 1С:УТ и др.) и версии платформы (8.3.20+ рекомендуется) способы загрузки могут отличаться. Мы рассмотрим универсальные методы, которые работают в большинстве типовых решений, а также укажем на «подводные камни» при работе с большими файлами или пакетной обработкой.

1. Ручная загрузка PDF через интерфейс 1С

Самый простой способ — прикрепить PDF-файл к документу или справочнику вручную. Этот метод не требует знания программирования и подходит для разовых операций. Рассмотрим на примере 1С:Бухгалтерии 3.0:

Откройте карточку документа (например, Поступление (акты, накладные)) или справочника (Контрагенты). В нижней части формы найдите вкладку Файлы (в некоторых конфигурациях она может называться Вложения или Дополнительно). Нажмите кнопку Добавить файл и выберите нужный PDF на своём компьютере. Система автоматически прикрепит его к объекту.

  • 📁 Где искать вкладку: в документах — обычно внизу формы, в справочниках — на закладке «Прочее» или «Дополнительно».
  • 🔍 Ограничения: размер файла зависит от настроек базы (по умолчанию до 10 МБ, но может быть увеличен администратором).
  • 🔄 Синхронизация: прикреплённые файлы автоматически попадают в резервные копии базы.

Если вкладка Файлы отсутствует, проверьте:

  1. Версию конфигурации — в старых релизах (1С:Предприятие 8.2) этой функции может не быть.
  2. Права пользователя — требуется доступ на редактирование объекта.
  3. Настройки формы — иногда вкладку нужно включить через Ещё → Настроить форму.
💡

Если PDF не отображается после загрузки, обновите форму документа кнопкой F5 или перезапустите 1С. В некоторых конфигурациях вложения становятся видны только после сохранения объекта.

2. Загрузка PDF через обработку «Печать и отправка»

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

Инструкция:

  1. Откройте документ, для которого нужно создать PDF (например, Счёт на оплату).
  2. Нажмите Печать → Печать и отправка (или Ещё → Печать и отправка в новых версиях).
  3. В открывшемся окне выберите формат PDF и настройте параметры (ориентация, масштаб).
  4. Нажмите Сохранить и укажите путь для файла. Система предложит сразу прикрепить его к документу.
Конфигурация Путь к обработке Поддерживаемые форматы
1С:Бухгалтерия 3.0 Печать → Печать и отправка PDF, XPS, HTML, MXL
1С:Управление торговлей 11 Ещё → Печать и отправка PDF, XPS, OpenDocument
1С:Зарплата и управление персоналом Действия → Печать и отправка PDF, XPS

Обратите внимание: если в обработке отсутствует опция сохранения в PDF, проверьте:

  • 🖨️ Установлен ли в системе виртуальный PDF-принтер (например, Microsoft Print to PDF или CutePDF).
  • 📋 Обновлена ли конфигурация — в старых релизах (1С:Бухгалтерия 2.0) этой функции нет.
📊 Какой способ загрузки PDF в 1С вы используете чаще?
Ручная загрузка через интерфейс
Автоматическая обработка
Внешние обработки (например, "Загрузка из Excel")
Собственные разработки на 1С
Не работаю с PDF в 1С

3. Программная загрузка PDF через встроенный язык

Для автоматизации загрузки PDF (например, при импорте данных из внешних систем) используют встроенный язык . Ниже приведён универсальный код, который работает в большинстве конфигураций на платформе 8.3. Он загружает файл с диска и прикрепляет его к указанному документу:


// Пример кода для загрузки PDF в документ "ПоступлениеТоваровУслуг"

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

// Создаём объект "ХранилищеЗначения" для файла

Хранилище = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКФайлу));

// Получаем коллекцию файлов документа

Файлы = СсылкаНаДокумент.Файлы;

// Добавляем новый файл

НовыйФайл = Файлы.Добавить();

НовыйФайл.Имя = ПолучениеИмениФайлаИзПути(ПутьКФайлу);

НовыйФайл.Данные = Хранилище;

// Сохраняем документ

СсылкаНаДокумент.Записать();

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

// Вспомогательная функция для извлечения имени файла из пути

Функция ПолучениеИмениФайлаИзПути(ПутьКФайлу)

Возврат СтрЗаменить(ПутьКФайлу, Левое(ПутьКФайлу, НайтиС конца(ПутьКФайлу, "\")), "");

КонецФункции

Чтобы использовать этот код:

  1. Откройте конфигуратор (Файл → Конфигуратор в режиме предприятия).
  2. Создайте новую обработку (Файл → Новый → Обработка).
  3. Вставьте код в модуль обработки и сохраните.
  4. В режиме предприятия откройте обработку, укажите ссылку на документ и путь к PDF.

Проверьте права пользователя на редактирование документа

Убедитесь, что путь к файлу указан корректно (с учётом регистра!)

Создайте резервную копию базы перед массовой загрузкой

Тестируйте код на копии рабочей базы

-->

Критичный нюанс: при загрузке файлов размером более 50 МБ может возникнуть ошибка Недостаточно памяти. В этом случае используйте потоковое чтение файла или разбивайте его на части. Пример кода для больших файлов:

// Чтение файла по частям (для файлов >50 МБ)

Файл = Новый ЧтениеДвоичныхДанных(ПутьКФайлу);

Данные = Новый ДвоичныеДанные();

Пока Файл.ПрочитатьБлок(1024 * 1024) > 0 Цикл // Читаем по 1 МБ

Данные.Добавить(Файл.ПолучитьДанные());

КонецЦикла;

Файл.Закрыть();

4. Загрузка PDF через внешние обработки

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

  • 📄 "Загрузка файлов из папки" — позволяет пакетно загружать PDF в справочники или документы по шаблону имён файлов. Скачать на Инфостарт.
  • 📧 "Импорт писем и вложений из Outlook" — автоматически извлекает PDF из почты и прикрепляет к карточкам контрагентов. Работает с Microsoft Exchange и IMAP.
  • 🔄 "Обмен с Диадок/Контур" — загружает PDF-счета-фактуры и УПД из систем электронного документооборота.

Пример настройки обработки "Загрузка файлов из папки":

  1. Скачайте и установите обработку через Файл → Открыть.
  2. Укажите путь к папке с PDF-файлами (например, C:\Счета\2026\).
  3. Настройте правила соответствия имён файлов и объектов 1С (например, Счёт_ИНН{Контрагент.ИНН}.pdf).
  4. Запустите обработку — система автоматически создаст документы и прикрепит к ним файлы.
Как избежать дублирования файлов при пакетной загрузке?

При настройке внешних обработок всегда включайте проверку на дубли по:

1. Имени файла (с учётом регистра)

2. Контрольной сумме (MD5 или CRC32)

3. Дате создания файла

В обработке "Загрузка файлов из папки" это делается на закладке "Правила загрузки" → "Проверка дублей".

Преимущества внешних обработок:

  • Скорость: пакетная загрузка сотен файлов за несколько минут.
  • 🤖 Автоматизация: можно настроить расписание (например, загрузка каждый день в 20:00).
  • 🔧 Гибкость: поддерживаются сложные правила сопоставления файлов и объектов 1С.
⚠️ Внимание: перед использованием внешних обработок проверьте их совместимость с вашей версией 1С. Некоторые решения требуют платформы 8.3.18+ и могут конфликтовать с нетиповыми доработками конфигурации.

5. Интеграция с внешними системами (API, HTTP-сервисы)

Для предприятий, которые работают с большими объёмами PDF (например, логистические компании или банки), актуальна интеграция 1С с внешними системами через HTTP-сервисы или REST API. Это позволяет автоматически загружать файлы из облачных хранилищ (Google Drive, Yandex Disk), CRM или документооборота.

Пример интеграции с Yandex Disk:

  1. Получите OAuth-токен для доступа к API Яндекс.Диска (инструкция на официальном сайте).
  2. Создайте HTTP-запрос в 1С для скачивания файла:
// Пример кода для загрузки PDF с Yandex Disk

Функция СкачатьФайлСЯндексДиска(Токен, ПутьКФайлуНаДиске, КудаСохранить)

Запрос = Новый HTTPЗапрос("https://cloud-api.yandex.net/v1/disk/resources/download?path=" + ПутьКФайлуНаДиске);

Запрос.УстановитьЗаголовок("Authorization", "OAuth " + Токен);

Ответ = Новый HTTPСоединение().Получить(Запрос);

Если Ответ.КодСостояния <> 200 Тогда

Сообщить("Ошибка загрузки: " + Ответ.ПолучитьТекст());

Возврат Ложь;

Иначе

Данные = Ответ.ПолучитьТелоКакДвоичныеДанные();

Данные.Записать(КудаСохранить);

Возврат Истина;

КонецЕсли;

КонецФункции

После скачивания файл можно прикрепить к документу 1С стандартным способом (см. раздел 3). Для автоматической обработки настройте регламентное задание в 1С:

  • 🕒 Задайте расписание (например, каждый час).
  • 📂 Укажите папку на Яндекс.Диске для мониторинга.
  • 🔄 Настройте правила сопоставления файлов и объектов 1С.
⚠️ Внимание: при работе с API внешних сервисов учитывайте ограничения по количеству запросов. Например, у Yandex Disk лимит — 5000 запросов в сутки. Превышение может привести к блокировке токена.

6. Оптимизация хранения PDF в 1С

При активной работе с PDF-файлами база 1С может разрастаться до сотен гигабайт. Чтобы избежать проблем с производительностью, следуйте рекомендациям:

Проблема Решение Инструменты
База тормозит из-за большого количества вложений Храните файлы во внешней системе (например, 1С:Документооборот или облако), а в 1С — только ссылки 1С:Документооборот, Bitrix24, Yandex Disk
Дублирование файлов Настройте проверку по контрольным суммам (MD5) при загрузке Обработка ПроверкаДублейФайлов.epf
Ошибки при резервном копировании Исключите папку с вложениями из резервной копии или используйте инкрементальное копирование 1С:Администрирование сервера, Veeam Backup
Долгая загрузка файлов по сети Используйте сжатие (ZIP) или разбивайте большие PDF на части Объект.СжатьДанные()

Для автоматизации очистки старых файлов используйте следующий код (например, для удаления вложений старше 1 года):

Процедура УдалитьСтарыеФайлы(КаталогДокументов)

ТекущаяДата = ТекущаяДата();

ГодНазад = ТекущаяДата - 365;

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ФайлыСсылка КАК Ссылка

|ИЗ

| Документ.&КаталогДокументов.Файлы КАК Файлы

|ГДЕ

| Файлы.ДатаСоздания < &ГодНазад";

Запрос.УстановитьПараметр("ГодНазад", ГодНазад);

Результат = Запрос.Выполнить();

Пока Результат.Следующий() Цикл

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

Файл.Удалить();

КонецЦикла;

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

Перед запуском такой обработки обязательно сделайте резервную копию базы! Также рекомендуется:

  • 📅 Настроить архивацию старых файлов (а не удаление) — на случай, если они понадобятся.
  • 🔍 Проверять ссылки на файлы в документах — после удаления вложений они могут стать битыми.
💡

Храните большие PDF-файлы (более 10 МБ) вне базы 1С, используя ссылки. Это ускорит работу системы и упростит резервное копирование.

Распространённые ошибки и их решения

При работе с PDF в 1С пользователи часто сталкиваются с типовыми ошибками. Разберём самые частые из них и способы их устранения:

Ошибка Причина Решение
Недопустимый формат файла Повреждённый PDF или неверное расширение Проверьте файл через Adobe Acrobat или пересохраните его
Недостаточно памяти Файл слишком большой (>50 МБ) Используйте потоковое чтение или разбивайте файл на части
Доступ запрещён Не хватает прав на запись в базу Проверьте права пользователя в Администрирование → Пользователи
Ошибка при записи объекта Конфликт блокировок или повреждение базы Перезапустите 1С или выполните Тестирование и исправление
Не найден метод объекта (ЗаписатьФайл) Устаревшая версия платформы (<8.3.10) Обновите 1С до актуальной версии

Если при открытии загруженного PDF в 1С вы видите сообщение Невозможно отобразить файл, проверьте:

  • 🖥️ Установлена ли на компьютере программа для просмотра PDF (например, Adobe Reader или Foxit PDF).
  • 🔗 Связан ли файл с программой по умолчанию (проверьте через Свойства файла → Открыть с помощью).
  • 📥 Не блокирует ли антивирус доступ к временным файлам 1С (обычно папка %TEMP%\1C\1Cv8\).

Для диагностики ошибок используйте журнал регистрации 1С:

  1. Откройте Администрирование → Журнал регистрации.
  2. Установите фильтр по дате и типу события Ошибка.
  3. Найдите запись с текстом ошибки — там будет подробное описание и стек вызовов.
Как восстановить потерянные вложения после обновления 1С?

Если после обновления конфигурации пропали прикреплённые файлы:

1. Проверьте резервную копию базы (вложения хранятся в таблице "_File").

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

3. Если файлы критически важны, обратитесь в поддержку 1С с логами обновления.

FAQ: Ответы на частые вопросы

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

Нет, 1С не умеет редактировать PDF. Система работает с ними как с двоичными вложениями. Для редактирования:

  • Скачайте файл на компьютер.
  • Откройте его в Adobe Acrobat или другом редакторе.
  • После редактирования загрузите обратно в 1С.

Для автоматизации этого процесса можно использовать внешние обработки, например, "Редактор PDF для 1С" (плагин на основе iTextSharp).

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

Для мобильных устройств есть два способа:

  1. Через веб-клиент 1С:
    • Откройте веб-версию 1С в браузере телефона.
    • Найдите документ и нажмите Добавить файл.
    • Выберите PDF из галереи или файлового менеджера.
  • Через мобильное приложение 1С:Мобильная платформа:
    • Установите приложение из App Store или Google Play.
    • Подключитесь к своей базе.
    • В карточке документа нажмите + → Прикрепить файл.

    Обратите внимание: в мобильной версии могут быть ограничения на размер файла (обычно до 5 МБ).

  • Почему PDF не открывается после загрузки в 1С?

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

    • Файл повреждён: попробуйте открыть его вне 1С. Если не открывается — пересохраните исходный PDF.
    • Не хватает прав: проверьте, что у пользователя есть доступ к документу и его вложениям.
    • Блокировка антивирусом: временно отключите антивирус и попробуйте снова.
    • Устаревшая версия 1С: в платформе <8.3.10 могут быть проблемы с отображением PDF. Обновите систему.

    Если проблема остаётся, проверьте настройки браузера (для веб-клиента) или очистите кэш 1С (Файл → Очистить кэш).

    Как автоматически прикреплять PDF к документам при проведении?

    Для этого нужно доработать конфигурацию. Пример для документа ПоступлениеТоваровУслуг:

    1. Откройте конфигуратор и найдите модуль документа.
    2. В процедуре ПриПроведении добавьте код загрузки файла:
    Процедура ПриПроведении(Отказ, РежимПроведения)
    
    

    Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда

    ПутьКФайлу = "C:\Счета\" + ЭтотОбъект.Номер + ".pdf";

    Если НЕ ЗначениеЗаполнено(ЭтотОбъект.Файлы) Тогда

    ЭтотОбъект.Файлы = Новый Соответствие();

    КонецЕсли;

    ЗагрузитьPDFвДокумент(ЭтотОбъект, ПутьКФайлу);

    КонецЕсли;

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

    Где ЗагрузитьPDFвДокумент — это процедура из раздела 3.

    Для гибкой настройки (например, динамическое формирование пути к файлу) используйте планы обмена или регламентные задания.

    Можно ли извлечь текст из PDF в 1С для дальнейшей обработки?

    Да, но для этого потребуются внешние библиотеки. Самые популярные варианты:

    • iTextSharp (бесплатная): позволяет извлекать текст, таблицы и изображения из PDF. Для работы с ней в 1С нужна COM-обёртка.
    • PDFBox (Java): более мощный инструмент, но требует настройки взаимодействия 1С с Java.
    • 1С:Предприятие + Abbyy FineReader: плагин для OCR-распознавания отсканированных PDF.

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

    // Подключаем COM-объект iTextSharp (предварительно нужно зарегистрировать библиотеку)
    

    Попытка

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

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

    PDFReader.Initialize(ПутьКФайлу);

    Текст = Parser.GetTextFromPage(PDFReader, 1); // Извлекаем текст с первой страницы

    Сообщить(Текст);

    Исключение

    Сообщить("Ошибка: " + ОписаниеОшибки());

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

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