При переходе на онлайн-кассы по требованиям 54-ФЗ разработчики часто сталкиваются с задачей интеграции новых фискальных регистраторов (например, Атол FPrint-22ПТК или Атол 22Ф) в нетиповые или устаревшие конфигурации платформы 1С:Предприятие. В процессе подключения стандартной внешней компоненты возникают ошибки загрузки библиотеки, неочевидные моменты с получением дескриптора устройства (DeviceID), а также вопросы организации тестовой печати чеков без расхода боевого фискального накопителя.
Разберем по шагам, как правильно зарегистрировать внешнюю компоненту в 64-битной операционной системе, устранить ошибку создания COM-объекта, взаимодействовать с драйвером и подготовить рабочее место к тестированию.
Типичная попытка инициализировать драйвер ККТ в коде конфигурации выглядит следующим образом:
ЗагрузитьВнешнююКомпоненту("C:\Drivers\FprnM1C82_54FZ.dll");
ФР = Новый("AddIn.ATOL_KKM_1C82_54FZ");
Если после выполнения этого фрагмента платформа возвращает ошибку создания объекта или значение НеизвестныйОбъект, выясним причину такого поведения. Платформа 1С:Предприятие версии 8.1 является 32-разрядным приложением (x86). При работе в 64-битных версиях Windows системный вызов стандартного средства регистрации пытается обработать библиотеку через 64-битный утилизатор из каталога System32, что приводит к ошибке несовместимости архитектур.
Для корректной работы 32-битной компоненты FprnM1C82_54FZ.dll ее необходимо регистрировать с использованием 32-битной версии утилиты regsvr32.exe, расположенной в каталоге SysWOW64. Выполним правильную последовательность действий:
FprnM1C82_54FZ.dll в системную папку C:\Windows\SysWOW64.
cd C:\Windows\SysWOW64
regsvr32.exe FprnM1C82_54FZ.dll
После успешной регистрации библиотека регистрирует программный идентификатор в реестре Windows, и конструктор Новый("AddIn.ATOL_KKM_1C82_54FZ") начинает корректно создавать экземпляр объекта.
После создания объекта драйвера разработчики часто задаются вопросом, откуда взять строковый или числовой параметр DeviceID, требуемый методами PrintXReport(DeviceID), OpenCheck(DeviceID, ...) и другими сервисными функциями.
Проанализируем архитектуру библиотеки FprnM1C82_54FZ.dll. Данная компонента создана компанией Атол строго по спецификации стандарта «1С:Совместимо» для Библиотеки подключаемого оборудования (БПО). В этой архитектуре идентификатор устройства не является статическим номером кассы, серийным номером или портом подключения. Это динамический дескриптор открытой сессии.
Рассмотрим типовую схему получения DeviceID:
Подключить() или функцию открытия канала связи).Чтобы увидеть реализацию этого механизма на практике, полезно открыть типовую конфигурацию «Управление торговлей 10.3» или «Розница» и изучить общий модуль ПодключаемоеОборудованиеАтолФискальныеРегистраторы, обратив особое внимание на экспортную функцию ПодключитьУстройство.
Поскольку компонента FprnM1C82_54FZ.dll рассчитана на работу по стандарту БПО через сложные пакеты XML, ее внедрение в самописную конфигурацию на платформе 8.1 требует написания объемных процедур формирования фискальных XML-структур. В старых конфигурациях гораздо проще и надежнее использовать прямое подключение через родной драйвер торгового оборудования (ДТО) Атол без промежуточной БПО-обертки.
В зависимости от версии установленных драйверов можно создать COM-объект напрямую:
// Для ДТО версии 8:
Драйвер = Новый COMОбъект("AddIn.FprnM45");
// Для современного ДТО версии 10:
Драйвер = Новый COMОбъект("AddIn.Fptr10");
Преимущество прямого подключения заключается в том, что вам не требуется передавать и контролировать DeviceID или собирать сложные XML-документы. Настройка параметров связи, открытие фискального чека, добавление товарных позиций и закрытие смены выполняются прямыми методами и свойствами самого драйвера производителя по его официальной документации.
При отладке кассового модуля возникает вопрос: как проверить печать чеков и корректность пробития сумм, не испортив кассу и отчетность?
Разберем основные правила тестирования под требования 54-ФЗ:
9999...), поддерживает многократную перерегистрацию и сброс, а также позволяет пробивать любые учебные чеки с отправкой данных в тестовые песочницы ОФД.При подключении кассы к ПК обратите внимание на технические нюансы:
EthernetOverUsb (EoU) для автоматической отправки фискальных документов оператору фискальных данных (ОФД). Служба должна быть установлена и постоянно запущена на рабочем месте кассира.