При переходе на 64-разрядные клиентские приложения «1С:Предприятия» либо при организации удаленной работы бухгалтеров пользователи часто сталкиваются с ситуацией, когда регламентированные отчеты формируются без двухмерного штрихкода или программа сообщает о невозможности сформировать машиночитаемый бланк PDF417. Проанализируем архитектурные причины этой ошибки и разберем проверенные способы восстановления корректной печати деклараций.
Печать титульных листов и разделов налоговых деклараций со специальным двухмерным штрихкодом выполняется не внутренними алгоритмами самой платформы 1С. Для этой задачи используется внешний единый модуль печати машиночитаемых бланков, разработанный подведомственным предприятием ФНС России (АО «ГНИВЦ»).
Технически данный модуль представляет собой COM/ActiveX-компонент (библиотека TAXDOCPrt, поставляемая в дистрибутиве PDF417.msi). Исторически эта библиотека скомпилирована исключительно как 32-разрядная (x86). Официального 64-битного аналога данного модуля разработчики не выпускали.
В операционных системах Windows 64-битный исполняемый процесс не может напрямую загрузить в свое адресное пространство 32-разрядную динамическую библиотеку DLL или вызывать 32-битный COM-объект «in-process». Следовательно, когда пользователь открывает регламентированный отчет в 64-разрядном клиенте 1С (толстом или тонком) и отправляет его на печать с двухмерным штрихкодом, платформа пытается инициализировать COM-объект печати и завершает операцию ошибкой.
При этом важно понимать ключевую особенность архитектуры: разрядность сервера «1С:Предприятия» никак не привязана к разрядности клиентских приложений. Серверная часть 1С, работающая в режиме x64 под управлением СУБД (например, Microsoft SQL Server), штатно и одновременно обслуживает подключения как 64-битных, так и 32-битных клиентов.
Самый простой, надежный и стандартный способ решения проблемы — использование 32-разрядного клиента на том рабочем месте, где пользователь формирует отчетность (будь то удаленный рабочий стол на терминальном сервере или локальный компьютер сотрудника). Разберем по шагам, как настроить запуск нужной разрядности:
C:\Program Files (x86)\1cv8\.PDF417.msi), если он не был установлен ранее. Инсталлятор также входит в состав шаблонов регламентированной отчетности конфигураций.Теперь клиентская сессия гарантированно откроется в 32-битном адресном пространстве, успешно подключится к 64-битному кластеру серверов 1С и сможет вызвать модуль TAXDOCPrt для корректной генерации штрихкодов.
Если бухгалтер работает удаленно и печатает отчетность на своем домашнем принтере, перенаправление печати через протокол RDP/терминальный сеанс иногда приводит к сбоям драйверов или искажению мелких элементов штрихкода. Оптимальным решением является перенос интерфейсной части на рабочий ПК пользователя:
PDF417.msi непосредственно в операционную систему домашнего компьютера.В этом сценарии вся визуализация отчета и обращение к компоненту PDF417 происходят локально в 32-битной среде, после чего документ направляется на локальный принтер без задержек и промежуточных преобразований.
Рассмотрим дополнительные методы, которые могут пригодиться в нестандартных инфраструктурных условиях:
dcomcnfg) в качестве серверного COM-приложения. В таком случае 64-битный клиент сможет обращаться к объекту через суррогатный межпроцессный мост dllhost.exe. Однако этот способ сложнее в сопровождении и может сбрасываться при обновлениях системы.1С-Отчетность или отправка файлов деклараций через операторов ТКС исключает необходимость формирования штрихкодов, так как проверка и отправка осуществляются в электронном формате XML.