При выводе на печать бланков регламентированной отчетности с двумерным штрихкодом (PDF417) в программе «1С:Бухгалтерия» пользователи нередко сталкиваются с аварийным завершением процесса и системным сообщением вида: «Ошибка при вызове метода контекста (PreviewFile1C)». В ряде случаев после этого платформа выдает предложение переустановить внешний компонент печати или сообщает о невозможности чтения из каталога временных файлов AppData\Local\Temp. Разберем по шагам, почему возникает данная неполадка и как быстро восстановить работоспособность печати машиночитаемых бланков.
Механизм генерации двумерного штрихкода базируется на внешнем COM-модуле от ГНИВЦ («Печать НД с PDF417»). Перед выводом бланка библиотека производит жесткую валидацию всех переданных из 1С реквизитов. Если хотя бы одно обязательное поле заполнено некорректно или отсутствует, компонент не может сформировать результирующий файл и генерирует исключение.
Проанализируем наиболее частую причину сбоя, которая кроется непосредственно в данных информационной базы, а не в настройках операционной системы. Если модуль печати не находит полного текстового наименования инспекции ФНС, метод PreviewFile1C завершается с ошибкой. Выполним проверку реквизитов:
Выясним системные ограничения компоненты формирования штрихкода. Модуль «Печать НД с PDF417» является 32-разрядной (x86) COM-библиотекой. Если на рабочем месте используется 64-битный тонкий или толстый клиент 1С (каталог Program Files\1cv8\...), прямое обращение платформы к 32-битному COM-объекту вызовет исключение контекста.
1cv8.exe из каталога Program Files (x86)\1cv8\...).При генерации машиночитаемой формы компонент создает временные файлы обмена. Если в пути к профилю пользователя Windows содержатся пробелы, нестандартные символы или кириллица, модуль может завершаться ошибкой чтения/записи.
%TEMP% (через диалог «Выполнить» сочетанием клавиш Win + R).TEMP и TMP, указав для них короткий путь без пробелов и кириллических знаков (например, C:\Temp), предварительно создав эту папку на диске и предоставив пользователю полные права доступа к ней.Если модуль был поврежден или зарегистрирован некорректно, выполним его ручную перерегистрацию в операционной системе:
regsvr32, указав точный путь к установленным DLL-файлам компонента.Если печать машиночитаемой формы со штрихкодом требуется выполнить срочно, рассмотрим обходные пути решения: