При автоматизации документооборота в 1С:ERP Управление предприятием одной из наиболее востребованных функций является потоковое сканирование. Это механизм, позволяющий загружать в базу сразу целую пачку документов, которые программа должна автоматически разделить и прикрепить к нужным объектам. Однако на практике системные администраторы часто сталкиваются с проблемой: если формат TIFF для многостраничных изображений работает корректно, то при выборе PDF в итоговый документ попадает только последняя отсканированная страница.
В данной статье мы подробно разберем, почему возникает эта ошибка, как правильно настроить внешнюю компоненту ImageMagick и какие нюансы окружения необходимо учитывать для стабильной работы системы.
Для начала проанализируем, как 1С взаимодействует со сканером и внешними утилитами. Процесс происходит в несколько этапов:
%TEMP%.PDF или TIFF.Проблема "одной последней страницы" обычно возникает на третьем этапе: когда команда на объединение файлов передается некорректно или внешняя программа не имеет доступа к промежуточным данным.
Как показывает практика и опыт участников форума, наиболее распространенная причина ошибки заключается в том, как прописан путь к программе преобразования в настройках 1С. Выясним, как это проверить и исправить.
Рассмотрим порядок действий:
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С успела обработать своими силами.
Проанализируем ситуацию, когда база 1С работает в клиент-серверном режиме. Часто системные администраторы устанавливают ImageMagick на сервер приложений, полагая, что обработка файлов должна происходить там. Однако сканирование — это интерактивное действие, выполняемое на стороне клиента.
Правило: Программа преобразования изображений должна быть установлена на локальном компьютере пользователя, к которому физически подключен сканер. 1С запускает процесс convert.exe именно из-под локального сеанса пользователя. Если программа установлена только на сервере, локальный клиент 1С просто не увидит исполняемый файл по указанному пути, что приведет к ошибкам формирования многостраничных документов.
Выясним причину, по которой TIFF работает, а PDF — нет. Дело в том, что ImageMagick не является самостоятельным редактором PDF. Для чтения и записи файлов этого формата он использует сторонний интерпретатор — Ghostscript.
Если на компьютере не установлен Ghostscript, ImageMagick сможет собрать TIFF (так как это растровый формат, поддерживаемый нативно), но не сможет корректно сформировать структуру PDF. В этом случае часто происходит сбой, при котором в итоговый файл "пробрасывается" только последний обработанный графический буфер.
Для решения проблемы:
bin установленного Ghostscript в системную переменную среды Path.В последних дистрибутивах ImageMagick разработчики ужесточили политики безопасности. По умолчанию может быть запрещено выполнение операций чтения/записи для формата PDF. Это сделано для предотвращения уязвимостей, но блокирует работу 1С.
Разберем, как отредактировать политику безопасности:
C:\Program Files\ImageMagick...\).etc\ImageMagick-7 (или аналогичную) и откроем файл policy.xml через текстовый редактор от имени администратора.<policy domain="coder" rights="none" pattern="PDF" />
rights="none" на rights="read|write":
<policy domain="coder" rights="read|write" pattern="PDF" />
Проанализируем настройки самого сканера внутри 1С. Для потокового сканирования через автоподатчик (ADF) критически важно использовать TWAIN-драйвер. Драйвер WIA (Windows Image Acquisition) часто имеет ограниченный функционал при передаче управления внешним приложениям. Он может некорректно передавать сигнал о завершении страницы или не поддерживать пакетную передачу, из-за чего 1С получает данные рывками, и ImageMagick не успевает "подцепить" весь массив временных файлов.
В настройках сканирования 1С выберем источник, в названии которого явно указано TWAIN. Также проверим, чтобы в настройках самого драйвера (в сплывающем окне сканера) был выбран режим "Автоподатчик" (ADF), а не "Планшет".
После того как мы выполнили все шаги — установили ImageMagick локально, указали полный путь к convert.exe, установили Ghostscript и проверили policy.xml — необходимо провести тестовое сканирование.
Проверим следующее:
%TEMP% во время сканирования появляются файлы scantemp*.jpg (или .bmp)..pdf, содержащий все страницы.Соблюдение этих технических условий позволит организовать надежный процесс потокового ввода документов, значительно сократив время на обработку первичной документации в вашей организации.