При работе в современных конфигурациях 1С, таких как 1С:ERP, Комплексная автоматизация или Бухгалтерия предприятия, пользователи часто сталкиваются с ситуацией, когда при попытке напечатать налоговую декларацию программа выдает сообщение «Обработка отчета...», но само окно предварительного просмотра не открывается. Особенно часто это происходит при выборе варианта «Форма со штрих-кодом PDF417 (рекомендуется)». В то же время печать без штрих-кода может работать абсолютно корректно.
В этой статье мы подробно разберем, почему возникает эта ошибка, как работает механизм генерации двухмерного штрих-кода и какие шаги необходимо предпринять системному администратору или квалифицированному пользователю для восстановления работоспособности печати.
Для начала проанализируем ситуацию и выясним, чем отличается печать обычной формы от формы с PDF417. Когда мы выбираем печать без штрих-кода, 1С формирует табличный документ стандартными средствами платформы и сразу передает его на драйвер принтера. В этом случае мы видим пиктограмму принтера в углу экрана.
Однако формирование формы с машиночитаемым кодом — это гораздо более сложный процесс. Программа 1С не умеет генерировать этот специфический код самостоятельно. Для этого используется внешняя компонента — «Единый модуль печати налоговых деклараций», разработанный ГНИВЦ ФНС РФ. Процесс выглядит так:
Если в этой цепочке происходит сбой (модуль не установлен, заблокирован или не имеет доступа к временным файлам), процесс «зависает» на этапе «Обработка отчета...» с пиктограммой дискеты, что означает попытку записи или чтения данных через внешний компонент.
Как показывает практика и разбор реальных обращений на форумах, основной причиной является отсутствие установленного дистрибутива печать нд с pdf417. В норме 1С пытается установить этот модуль автоматически при первом обращении, если его нет в системе. Однако на терминальных серверах (например, Windows Server 2012 R2 и выше) механизмы безопасности блокируют автоматический запуск инсталляторов из-под учетной записи обычного пользователя.
Рассмотрим ситуацию подробнее: пользователь нажимает кнопку печати, 1С понимает, что библиотеки модуля отсутствуют, и пытается запустить внутренний инсталлятор. Операционная система блокирует это действие из-за отсутствия прав администратора, и процесс формирования формы прерывается без вывода явной ошибки. Пользователь видит бесконечную «обработку».
Чтобы решить проблему, необходимо выполнить установку модуля вручную под учетной записью администратора. Если вы работаете в терминальном режиме, крайне важно использовать правильную процедуру установки приложений.
Выполним следующие действия:
change user /install
ПечатьНДсPDF417.msi.
change user /execute
Проанализируем технические нюансы систем. Долгое время модуль PDF417 существовал только в 32-битной версии. Если вы используете 64-битный клиент 1С (1cv8c.exe x64), он может испытывать сложности при взаимодействии с 32-битной компонентой. В последних версиях модуля (3.2.4 и выше) поддержка x64 была улучшена, но иногда требуется ручная регистрация библиотек.
Если после установки печать все равно не работает, попробуем принудительно зарегистрировать библиотеку v8p_pdf417.dll (или аналогичную из состава модуля) через утилиту regsvr32. Важно делать это от имени администратора.
Модуль печати PDF417 сильно зависит от среды выполнения Microsoft Visual C++ Redistributable. Если на сервере отсутствуют пакеты версий 2005, 2008 или 2010 годов, модуль может просто не запуститься. Проанализируем список установленных программ на сервере. Рекомендуем установить полный набор библиотек Visual C++ (от 2005 до последней версии) как для архитектуры x86, так и для x64. Это исключит большинство проблем с «тихим» падением внешних компонент.
Рассмотрим еще одну частую причину: проблемы с временными файлами. Как мы уже выяснили, 1С обменивается данными с модулем через папку TEMP. Если путь к этой папке содержит кириллические символы (например, C:\Users\Иван\AppData\Local\Temp), модуль печати может не найти файл из-за некорректной обработки кодировки.
Посмотрим на пути к временным файлам в переменных окружения. Хорошей практикой является создание общей папки для временных файлов в корне диска, например C:\TEMP, и назначение на нее полных прав для группы «Пользователи». Также убедитесь, что антивирусное ПО не блокирует создание файлов с расширением .tif в этой папке, так как именно в этом формате модуль часто генерирует промежуточный результат.
Функция предотвращения выполнения данных (DEP) в Windows Server часто блокирует работу старых библиотек. Проанализируем настройки системы: если DEP включен для всех программ и служб, кроме выбранных, добавьте исполняемый файл 1С и компоненты модуля печати в список исключений. Это позволит избежать блокировки модуля в момент, когда он пытается выполнить код в защищенном сегменте памяти.
Если отчет нужно отправить срочно, а системного администратора нет на месте, воспользуемся советом опытных бухгалтеров: в форме декларации нажмите на иконку дискеты (сохранить) в верхней панели. Попробуйте сохранить отчет в формате PDF или Excel. Иногда это позволяет «протолкнуть» процесс формирования данных, и программа предложит сохранить результат по частям или целиком, минуя прямой вывод на экран через модуль предварительного просмотра.
Подведем итог: проблема с отсутствием печатной формы со штрих-кодом в 90% случаев решается корректной установкой Единого модуля печати на терминальный сервер под правами администратора. Оставшиеся 10% приходятся на нехватку библиотек Visual C++ и ограничения прав доступа к временным папкам пользователей.