Почему при потоковом сканировании в 1С:ERP в формате PDF сохраняется только последняя страница и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием
← На главную

При автоматизации документооборота в 1С:ERP Управление предприятием одной из наиболее востребованных функций является потоковое сканирование. Это механизм, позволяющий загружать в базу сразу целую пачку документов, которые программа должна автоматически разделить и прикрепить к нужным объектам. Однако на практике системные администраторы часто сталкиваются с проблемой: если формат TIFF для многостраничных изображений работает корректно, то при выборе PDF в итоговый документ попадает только последняя отсканированная страница.

В данной статье мы подробно разберем, почему возникает эта ошибка, как правильно настроить внешнюю компоненту ImageMagick и какие нюансы окружения необходимо учитывать для стабильной работы системы.

Разберем механизм работы потокового сканирования

Для начала проанализируем, как 1С взаимодействует со сканером и внешними утилитами. Процесс происходит в несколько этапов:

  1. Сканер через драйвер (TWAIN или WIA) передает изображения листов в 1С.
  2. 1С сохраняет каждый лист как отдельный временный файл в локальной папке пользователя %TEMP%.
  3. Если выбран многостраничный формат, 1С вызывает внешнюю программу (обычно ImageMagick) для "склейки" этих отдельных файлов в один общий PDF или TIFF.
  4. Готовый файл загружается в хранилище 1С, а временные файлы удаляются.

Проблема "одной последней страницы" обычно возникает на третьем этапе: когда команда на объединение файлов передается некорректно или внешняя программа не имеет доступа к промежуточным данным.

Решение 1: Указание полного пути к исполняемому файлу

Как показывает практика и опыт участников форума, наиболее распространенная причина ошибки заключается в том, как прописан путь к программе преобразования в настройках 1С. Выясним, как это проверить и исправить.

Рассмотрим порядок действий:

  1. Перейдем в раздел НСИ и администрирование — Настройка сканирования.
  2. Найдем поле, где указывается путь к программе ImageMagick (обычно это поле называется "Путь к программе преобразования").
  3. Убедимся, что вместо простого имени файла convert.exe указан полный путь к нему на локальном диске.

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

C:\Program Files\ImageMagick-7.1.0-Q16\convert.exe

Важный нюанс: Если в системе установлена современная версия ImageMagick (версия 7 и выше), основной файл называется magick.exe. 1С же по умолчанию ищет convert.exe. Чтобы это работало, при установке ImageMagick обязательно нужно отметить галочку "Install legacy utilities (e.g. convert)". Если вы этого не сделали, программа не найдет нужный исполнимый файл, и процесс сборки PDF прервется, оставив в базе лишь последний захваченный кадр, который 1С успела обработать своими силами.

Решение 2: Локальная установка vs Серверная установка

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

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

Решение 3: Установка и настройка Ghostscript

Выясним причину, по которой TIFF работает, а PDF — нет. Дело в том, что ImageMagick не является самостоятельным редактором PDF. Для чтения и записи файлов этого формата он использует сторонний интерпретатор — Ghostscript.

Если на компьютере не установлен Ghostscript, ImageMagick сможет собрать TIFF (так как это растровый формат, поддерживаемый нативно), но не сможет корректно сформировать структуру PDF. В этом случае часто происходит сбой, при котором в итоговый файл "пробрасывается" только последний обработанный графический буфер.

Для решения проблемы:

  1. Скачаем и установим Ghostscript (рекомендуется версия AGPL).
  2. Убедимся, что разрядность Ghostscript (x86 или x64) совпадает с разрядностью установленного ImageMagick и платформы 1С.
  3. Добавим путь к папке bin установленного Ghostscript в системную переменную среды Path.

Решение 4: Проверка прав доступа и политики безопасности (policy.xml)

В последних дистрибутивах ImageMagick разработчики ужесточили политики безопасности. По умолчанию может быть запрещено выполнение операций чтения/записи для формата PDF. Это сделано для предотвращения уязвимостей, но блокирует работу 1С.

Разберем, как отредактировать политику безопасности:

  1. Перейдем в папку установки ImageMagick (например, C:\Program Files\ImageMagick...\).
  2. Найдем подпапку etc\ImageMagick-7 (или аналогичную) и откроем файл policy.xml через текстовый редактор от имени администратора.
  3. Найдем строку: <policy domain="coder" rights="none" pattern="PDF" />
  4. Изменим значение rights="none" на rights="read|write": <policy domain="coder" rights="read|write" pattern="PDF" />
  5. Сохраним файл и перезапустим 1С.

Решение 5: Настройка драйверов (TWAIN vs WIA)

Проанализируем настройки самого сканера внутри 1С. Для потокового сканирования через автоподатчик (ADF) критически важно использовать TWAIN-драйвер. Драйвер WIA (Windows Image Acquisition) часто имеет ограниченный функционал при передаче управления внешним приложениям. Он может некорректно передавать сигнал о завершении страницы или не поддерживать пакетную передачу, из-за чего 1С получает данные рывками, и ImageMagick не успевает "подцепить" весь массив временных файлов.

В настройках сканирования 1С выберем источник, в названии которого явно указано TWAIN. Также проверим, чтобы в настройках самого драйвера (в сплывающем окне сканера) был выбран режим "Автоподатчик" (ADF), а не "Планшет".

Заключение и проверка результата

После того как мы выполнили все шаги — установили ImageMagick локально, указали полный путь к convert.exe, установили Ghostscript и проверили policy.xml — необходимо провести тестовое сканирование.

Проверим следующее:

  1. В настройках 1С установлена галочка "Использовать ImageMagick для формирования многостраничных PDF".
  2. В папке %TEMP% во время сканирования появляются файлы scantemp*.jpg (или .bmp).
  3. После завершения процесса в присоединенных файлах документа 1С появляется один файл .pdf, содержащий все страницы.

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

← На главную