При работе в современных конфигурациях «1С:Предприятие» пользователи часто сталкиваются с неприятной ситуацией: при попытке распечатать регламентированный отчет (например, декларацию) с двухмерным штрихкодом программа выдает системную ошибку. В тексте ошибки обычно указывается, что печать бланка поддерживается только в 32-разрядной версии платформы. При этом попытки пользователя принудительно выставить в настройках запуска базы режим «32 (x86)» не приносят желаемого результата.
В этой статье мы подробно проанализируем технические причины возникновения этой проблемы, выясним, почему стандартные настройки запуска могут игнорироваться системой, и рассмотрим несколько эффективных способов решения задачи.
Для начала разберем природу двухмерного штрихкода, который часто называют «QR-кодом» на регламентированных отчетах ФНС. На самом деле на листах налоговых деклараций печатается специализированный двухмерный код формата PDF417. За формирование этого кода отвечает не сама платформа «1С», а сторонний внешний модуль печати — «Печать НД с PDF417» (библиотека Печать НД с PDF417.msi), разработанный АО «ГНИВЦ» ФНС России.
Этот модуль представляет собой классическую 32-разрядную компоненту ActiveX (COM-библиотеку). Разработчики из ГНИВЦ так и не выпустили этот системный модуль в 64-разрядном варианте. Поскольку 64-битный процесс (в данном случае клиентское приложение 1cv8.exe или 1cv8c.exe разрядности x64) по законам операционной системы Windows физически не способен загрузить в свое адресное пространство 32-битную DLL-компоненту, платформа 1С выдает ошибку совместимости.
Важно разделять понятия: обычные QR-коды (например, используемые для оплаты через Систему быстрых платежей (СБП), чеки ККТ или коды маркировки «Честный Знак») генерируются внутренними кроссплатформенными средствами самой платформы «1С» или современными Native API компонентами. Они работают на любой разрядности платформы (включая x64 и Linux-системы) без каких-либо ошибок. Проблема касается исключительно регламентированных отчетов ФНС и устаревшего модуля ГНИВЦ PDF417.
Проанализируем типичную ошибку администрирования. В окне запуска «1С:Предприятия» для конкретной информационной базы можно открыть параметры и вручную указать основной режим запуска. Пользователи выбирают значение «32 (x86)» в надежде запустить базу в нужном режиме. Однако на практике система продолжает запускать 64-битный клиент.
Выясним, почему это происходит. Программа запуска 1С (стартер 1cestart.exe) анализирует этот параметр, но его выполнение зависит от одного критического условия: на компьютере пользователя должна быть физически установлена 32-разрядная версия технологической платформы того же релиза. Если на вашем компьютере развернут только 64-битный дистрибутив платформы, стартер проигнорирует указанный ключ запуска x86 и автоматически откроет базу в доступном x64-клиенте.
Чтобы убедиться, какая именно версия клиента запущена в данный момент, выполним простую проверку:
1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент).---
Это классический и самый надежный метод решения проблемы, если вам обязательно требуется бумажная печать документов с двухмерным штрихкодом.
Рассмотрим этот процесс по шагам:
C:\Program Files (x86)\1cv8\.8.3.23.1688 (если требуется запуск конкретной версии).Практический совет: Чтобы не снижать общую производительность работы в системе, ведь 64-битная платформа работает с оперативной памятью эффективнее и быстрее, запускайте 32-разрядный клиент только тогда, когда вам действительно требуется распечатать регламентированную отчетность. В остальное время для повседневных задач можно использовать стандартный x64-клиент.
---
Проанализируем современную практику сдачи отчетности. В настоящее время подавляющее большинство организаций отправляют регламентированные отчеты в контролирующие органы исключительно в электронном виде (через сервисы «1С-Отчетность» или сторонних операторов ТКС). Бумажные копии документов чаще всего требуются лишь для внутреннего архива предприятия или для ознакомления руководства.
В таком случае устанавливать дополнительную платформу нет никакой необходимости. Рассмотрим, как отключить обязательное требование к печати двухмерного кода в программе:
---
В некоторых случаях, даже при наличии установленной 32-битной платформы, общий загрузчик 1cestart.exe из-за ошибок кэша или групповых политик может упорно открывать базу в 64-битном режиме. Если вы столкнулись с подобным поведением системы, применим метод прямого запуска.
Для этого нам необходимо создать отдельный ярлык для запуска базы в обход стандартного загрузчика. Разберем этот процесс:
C:\Program Files (x86)\1cv8\[Номер_Релиза_Платформы]\bin\.1cv8c.exe (или толстого клиента 1cv8.exe)."C:\Program Files (x86)\1cv8\8.3.23.1688\bin\1cv8c.exe" ENTERPRISE /F "C:\1C_Bases\MyBase".
Для клиент-серверного варианта строка будет выглядеть так:
"C:\Program Files (x86)\1cv8\8.3.23.1688\bin\1cv8c.exe" ENTERPRISE /S "ServerName\BaseName".Используя предложенные методики, вы сможете быстро диагностировать и устранить проблемы несовместимости разрядностей платформы «1С» и внешних компонент государственных органов.