Как настроить печать машиночитаемых деклараций со штрихкодом PDF417 на 64-разрядной платформе 1С?

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

Переход на 64-разрядные версии клиентских приложений «1С:Предприятие 8» — это отличный способ повысить производительность системы, оптимизировать работу с оперативной памятью и избежать критических ошибок при обработке больших массивов данных. Однако этот шаг часто сопровождается локальными техническими трудностями. Одной из наиболее распространенных проблем является невозможность печати регламентированных отчетов и налоговых деклараций в машиночитаемом виде (двухмерный штрихкод PDF417).

В этой статье мы подробно проанализируем причины возникновения данной проблемы, разберем по шагам варианты ее решения как для локальных пользователей, так и для работы в терминальном режиме (RemoteApp/RDP), а также рассмотрим альтернативные способы вывода отчетности на печать.

Выясним причину: почему возникает проблема с печатью PDF417 на x64-платформе?

Для того чтобы понять суть проблемы, нам необходимо углубиться в технические нюансы взаимодействия платформы 1С с внешними компонентами. Основной модуль, который отвечает за формирование двухмерного штрихкода на бланках налоговых деклараций — это разработанный ГНИВЦ ФНС РФ библиотечный модуль «Печать НД с PDF417».

Исторически этот модуль поставляется в виде 32-разрядного COM-объекта (ActiveX). Архитектура операционной системы Windows накладывает жесткое ограничение: 64-битные процессы не могут напрямую загружать и вызывать 32-битные динамические библиотеки (DLL) и COM-компоненты внутри своего адресного пространства.

Когда вы запускаете 64-разрядный клиент 1С (файл 1cv8c.exe или 1cv8.exe x64) и пытаетесь открыть печатную форму декларации со штрихкодом, система пытается обратиться к библиотеке TAXDOCPrt.TAXDOCPrint. Происходит конфликт разрядности: 64-битная платформа 1С не видит 32-битный ActiveX-компонент ГНИВЦ. В результате система выдает ошибку о неподдерживаемой разрядности, зависает либо бесконечно предлагает пользователю установить модуль печати, даже если он уже успешно инсталлирован в операционной системе.


Решение №1: Принудительный запуск 32-разрядного клиента 1С для конкретной базы

Рассмотрим самый простой и надежный технический способ обхода этой проблемы. Если на рабочих станциях пользователей или на терминальном сервере установлена 64-разрядная платформа 1С, это вовсе не означает, что вы не можете использовать 32-разрядный клиент.

Проанализируем важный архитектурный нюанс: серверу 1С абсолютно все равно, какая разрядность у подключающегося к нему клиента. Главное условие — полное совпадение номера релиза (версии) платформы сервера и клиента. Таким образом, серверная часть может успешно функционировать в 64-битной среде, в то время как пользователи для выполнения определенных задач могут использовать 32-битное клиентское приложение.

Разберем по шагам процесс настройки запуска 32-битного клиента:

  1. Установка платформы: Установите на компьютер пользователя (или терминальный сервер) 32-разрядную (x86) версию клиента «1С:Предприятие 8» того же самого релиза, который запущен на сервере.
  2. Открытие списка баз: Запустите стандартное окно запуска 1С.
  3. Редактирование настроек базы: Выберите в списке нужную информационную базу (например, «Бухгалтерия предприятия») и нажмите кнопку «Изменить».
  4. Переход к параметрам запуска: В открывшемся диалоговом окне нажмите кнопку «Далее», чтобы перейти на страницу дополнительных параметров.
  5. Выбор разрядности: В нижней части окна найдите поле «Разрядность». Вместо значения по умолчанию («Выбирать автоматически» или «64 (x64)») принудительно установите значение «32 (x86)».
  6. Сохранение настроек: Нажмите кнопку «Готово» для применения параметров.

После выполнения этих действий система при запуске данной конкретной информационной базы автоматически выберет исполняемый файл 32-разрядного клиента. В этом режиме вызовы ActiveX-компонента печати PDF417 будут отрабатывать штатно, и печать деклараций будет выполнена без ошибок.


Решение №2: Настройка в условиях терминального сервера (RDP и RemoteApp)

Ситуация усложняется, когда пользователи работают в терминальной сессии на удаленном сервере, администрированием которого занимается стороннняя организация или провайдер облачных услуг. Часто системные администраторы таких серверов неохотно идут на установку дополнительных программных компонентов или требуют за это дополнительную плату.

Как решить эту задачу с минимальными затратами ресурсов? Рассмотрим практические рекомендации:

  1. Аргументация для администраторов: Администраторам удаленного сервера необходимо объяснить, что разворачивать заново всю систему не требуется. Достаточно потратить несколько минут на установку дополнительного дистрибутива тонкого клиента 1С x86 аналогичного релиза. Это стандартная и безопасная процедура, которая никак не влияет на стабильность сервера и работу других пользователей.
  2. Ограничение круга пользователей: Совсем не обязательно настраивать запуск 32-битного клиента для всех сотрудников компании. Выясним, кто именно занимается формированием и отправкой налоговой отчетности (как правило, это главный бухгалтер и несколько расчетчиков). Установите 32-разрядный клиент только для этих избранных учетных записей.
  3. Настройка ярлыков RemoteApp: Если доступ к базам осуществляется через технологию RemoteApp, администратор может опубликовать отдельный ярлык для запуска базы через 32-битный исполняемый файл 1cv8c.exe, находящийся в каталоге C:\Program Files (x86)\1cv8\.... Это позволит изолировать пользователей, печатающих отчетность, от остальных сотрудников.

Решение №3: Использование встроенного JS-генератора штрихкодов в новых релизах 1С

Фирма «1С» оперативно отреагировала на проблему несовместимости x64-систем с библиотекой ГНИВЦ и предложила встроенное решение на уровне прикладных конфигураций.

Начиная с конца 2020 года (в частности, в конфигурации «1С:Бухгалтерия предприятия» начиная с релиза 3.0.84.35) разработчики полностью переписали механизм генерации двухмерного штрихкода.

Вместо вызова устаревшего внешнего 32-разрядного COM-объекта ActiveX, в систему был интегрирован альтернативный генератор штрихкодов на базе технологии JavaScript (JS). Этот генератор выполняется непосредственно внутри платформы 1С и не зависит от разрядности операционной системы или клиентского приложения.

Если вы регулярно обновляете свои конфигурации до актуальных релизов, данная проблема решится сама собой «из коробки» без установки 32-разрядных клиентов. Однако, если ваша база сильно кастомизирована, снята с поддержки или по каким-то причинам не может быть обновлена до современных версий, вам придется использовать методы, описанные в Решениях №1, №2 или №4. Для экономии времени автоматизировать обновление и тестирование баз 1С можно по расписанию в тихом режиме.


Решение №4: Легальный обходной путь — печать деклараций без штрихкода PDF417

Посмотрим на проблему с практической точки зрения. В современных реалиях практически вся регламентированная и налоговая отчетность сдается в контролирующие органы в электронном виде через операторов электронного документооборота (ЭДО). Бумажные копии деклараций со штрихкодами требуются бухгалтерам крайне редко — в основном для внутреннего архива, предоставления учредителям или по запросу коммерческих банков для подтверждения финансовой отчетности.

Законодательство РФ допускает распечатку налоговых деклараций на стандартных бланках без двухмерного штрихкода PDF417. В платформе 1С для этого предусмотрена штатная опция, которая не требует использования внешних библиотек и прекрасно работает на любой разрядности платформы.

Проанализируем, как включить эту опцию:

  1. Откройте нужный регламентированный отчет (например, декларацию по НДС или налогу на прибыль).
  2. В верхней панели управления отчетом нажмите кнопку «Настройки».
  3. Перейдите на вкладку «Общие».
  4. Найдите и установите флажок «Разрешить печать без штрихкода PDF417».
  5. Нажмите кнопку «Записать и закрыть».
  6. После этого нажмите кнопку «Печать». В выпадающем меню выберите пункт вывода бланка без штрихкода. Система сформирует печатную форму на базе стандартных шаблонов Минфина, которые без проблем отправятся на любой принтер.

Решение №5: Внешние бесплатные программы для визуализации и печати XML

Если вам обязательно требуется бумажный лист декларации именно со штрихкодом PDF417, но на терминальном сервере категорически запрещено менять разрядность клиента 1С, рассмотрим варианты использования внешних бесплатных инструментов. Для этого вам сначала потребуется выгрузить файл декларации в формате XML из 1С на свой локальный компьютер (или сетевой диск). Чтобы не повторять эти действия вручную, настроить робота для переноса данных между окнами и формирования документов можно через RPA-платформу.

Для печати выгруженного XML-файла со штрихкодом можно использовать следующие бесплатные программные продукты:

Программа «Налогоплательщик ЮЛ»

Это официальное бесплатное программное обеспечение, разрабатываемое по заказу ФНС РФ. Оно предназначено для автоматизации процесса подготовки налоговой отчетности. Программа содержит в себе все актуальные шаблоны машиночитаемых бланков и встроенный модуль печати PDF417.

Для решения нашей задачи выполните следующие шаги:

  1. Скачайте и установите актуальную версию программы «Налогоплательщик ЮЛ» на локальный компьютер (где нет ограничений терминального сервера).
  2. Выгрузите XML-файл декларации из 1С.
  3. В программе «Налогоплательщик ЮЛ» воспользуйтесь функцией импорта документов (меню «Сервис» -> «Прием документов из внешних источников»).
  4. После успешной загрузки откройте документ и отправьте его на печать. Программа сама сформирует корректный двухмерный штрихкод и выведет декларацию на бумагу.

Программа «Tester» (Тестер) от ГНИВЦ

Еще один официальный инструмент от разработчиков налоговых форматов. Основное назначение программы — проверка файлов отчетности на соответствие XML-схемам ФНС. Однако в нее также встроен полноценный модуль визуализации.

  1. Установите программу «Tester» на свой локальный компьютер.
  2. Откройте выгруженный из 1С XML-файл в программе для проверки.
  3. После успешного прохождения контроля нажмите кнопку просмотра/печати документа. Программа сформирует готовый лист со штрихкодом PDF417 средствами локальной операционной системы.
← На главную