Почему не печатается штрихкод PDF417 (QR-код) из 64-разрядной версии 1С и как это исправить

Системный администратор 1С v8.3 (Управляемые формы) Налоговый учет IT и автоматизация бизнеса
← На главную

При работе в современных конфигурациях «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.

Почему не сработала настройка разрядности «32 (x86)» в списке баз?

Проанализируем типичную ошибку администрирования. В окне запуска «1С:Предприятия» для конкретной информационной базы можно открыть параметры и вручную указать основной режим запуска. Пользователи выбирают значение «32 (x86)» в надежде запустить базу в нужном режиме. Однако на практике система продолжает запускать 64-битный клиент.

Выясним, почему это происходит. Программа запуска 1С (стартер 1cestart.exe) анализирует этот параметр, но его выполнение зависит от одного критического условия: на компьютере пользователя должна быть физически установлена 32-разрядная версия технологической платформы того же релиза. Если на вашем компьютере развернут только 64-битный дистрибутив платформы, стартер проигнорирует указанный ключ запуска x86 и автоматически откроет базу в доступном x64-клиенте.

Чтобы убедиться, какая именно версия клиента запущена в данный момент, выполним простую проверку:

  1. Откроем диспетчер задач Windows во время активного сеанса «1С».
  2. Перейдем на вкладку «Подробности» или «Процессы».
  3. Найдем исполняемый файл 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент).
  4. Посмотрим на разрядность процесса. Если рядом с именем процесса нет пометки «32 бита» (или в столбце «Платформа» указано «64-разрядная»), значит, база работает в 64-битном режиме, что и блокирует печать PDF417.

---

Способ 1. Физическая установка и настройка запуска 32-разрядного клиента

Это классический и самый надежный метод решения проблемы, если вам обязательно требуется бумажная печать документов с двухмерным штрихкодом.

Рассмотрим этот процесс по шагам:

  1. Перейдем на портал поддержки пользователей «1С» и скачаем дистрибутив тонкого или технологического клиента требуемой версии (релиза) в 32-разрядном исполнении (x86).
  2. Запустим установку скачанного пакета. При установке убедимся, что компоненты будут инсталлированы по стандартному пути для 32-битных программ: C:\Program Files (x86)\1cv8\.
  3. После успешного завершения установки откроем окно запуска «1С:Предприятия», выделим нужную информационную базу и нажмем кнопку «Изменить».
  4. Перейдем на последнюю вкладку настроек. В поле «Разрядность» принудительно установим значение «32 (x86)». Также в поле «Версия платформы» можно жестко зафиксировать номер релиза, например, 8.3.23.1688 (если требуется запуск конкретной версии).
  5. Запустим базу. Теперь программа запуска найдет установленный физически x86-клиент и успешно инициализирует его. Печать модуля ГНИВЦ PDF417 заработает без ошибок.

Практический совет: Чтобы не снижать общую производительность работы в системе, ведь 64-битная платформа работает с оперативной памятью эффективнее и быстрее, запускайте 32-разрядный клиент только тогда, когда вам действительно требуется распечатать регламентированную отчетность. В остальное время для повседневных задач можно использовать стандартный x64-клиент.

---

Способ 2. Печать документов без двухмерного штрихкода

Проанализируем современную практику сдачи отчетности. В настоящее время подавляющее большинство организаций отправляют регламентированные отчеты в контролирующие органы исключительно в электронном виде (через сервисы «1С-Отчетность» или сторонних операторов ТКС). Бумажные копии документов чаще всего требуются лишь для внутреннего архива предприятия или для ознакомления руководства.

В таком случае устанавливать дополнительную платформу нет никакой необходимости. Рассмотрим, как отключить обязательное требование к печати двухмерного кода в программе:

  1. Откроем нужную форму регламентированного отчета в программе «1С».
  2. Перейдем в настройки отчета (кнопка «Настройки» на верхней панели).
  3. Найдем опцию, которая звучит как «Разрешить печать без штрихкода PDF417» или аналогичную настройку в свойствах вывода печатных форм. Установим напротив нее флажок.
  4. Сохраним настройки и нажмем кнопку «Печать». Программа сформирует стандартный лист декларации без штрихкода ГНИВЦ, используя встроенный табличный документ «1С». Этот документ будет успешно распечатан на любом принтере из-под 64-битного клиента.

---

Способ 3. Прямой запуск 32-битного исполняемого файла

В некоторых случаях, даже при наличии установленной 32-битной платформы, общий загрузчик 1cestart.exe из-за ошибок кэша или групповых политик может упорно открывать базу в 64-битном режиме. Если вы столкнулись с подобным поведением системы, применим метод прямого запуска.

Для этого нам необходимо создать отдельный ярлык для запуска базы в обход стандартного загрузчика. Разберем этот процесс:

  1. Перейдем в каталог установленной 32-битной платформы на диске. По умолчанию путь выглядит следующим образом: C:\Program Files (x86)\1cv8\[Номер_Релиза_Платформы]\bin\.
  2. Найдем в этой папке исполняемый файл тонкого клиента 1cv8c.exe (или толстого клиента 1cv8.exe).
  3. Нажмем на файл правой кнопкой мыши и выберем пункт «Создать ярлык», отправив его на рабочий стол.
  4. Нажмите правой кнопкой мыши на созданном ярлыке и откройте его «Свойства».
  5. В поле «Объект» после указанного пути к файлу добавим параметры подключения к вашей информационной базе. Пример строки запуска для файловой базы: "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".
  6. Сохраним изменения. Запуск через этот ярлык гарантированно откроет базу в 32-битной среде, что позволит безболезненно осуществлять печать любых регламентированных отчетов.

Используя предложенные методики, вы сможете быстро диагностировать и устранить проблемы несовместимости разрядностей платформы «1С» и внешних компонент государственных органов.

← На главную