При разработке и тестировании функционала печати чеков в устаревших или сильно кастомизированных конфигурациях, таких как «Бухгалтерия предприятия 2.0» (БП 2.0), программисты часто сталкиваются с отсутствием физического оборудования под рукой. Использование эмулятора — это оптимальный выход, позволяющий отладить логику формирования чека, расчет налогов и вывод строк без реальной фискализации и затрат на чековую ленту. Однако процесс подключения эмулятора в старых конфигурациях на обычных формах имеет множество нюансов, связанных с разрядностью систем и особенностями регистрации библиотек.
В данной статье мы подробно разберем, как заставить 1С «увидеть» эмулятор, почему разрядность платформы играет критическую роль и как правильно зарегистрировать необходимые компоненты в операционной системе Windows 10.
Рассмотрим наиболее частую ситуацию: вы скачали драйвер эмулятора, установили его в систему или добавили в справочник торгового оборудования, но при попытке проверки система выдает ошибку «Драйвер не установлен». Проанализируем причину этого поведения.
Современные версии платформы 1С часто устанавливаются в 64-битной версии (x64). Однако большинство драйверов торгового оборудования, особенно те, что разрабатывались во времена актуальности БП 2.0, являются 32-битными (x86). 64-битный процесс платформы 1С физически не может загрузить 32-битную динамическую библиотеку (DLL).
Для решения этой проблемы выполним следующие шаги:
Существует несколько вариантов эмуляции. Выясним, какой из них лучше подходит для ваших задач.
Вариант 1: FPEmulatorKKT1C2. Это современная компонента, часто используемая в БСП. Она хорошо работает с новыми требованиями ККТ, но может потребовать ручной регистрации в системе, если конфигурация БП 2.0 не умеет устанавливать её автоматически через интерфейс.
Вариант 2: 1С:Печать чеков на принтер. Это классический эмулятор из состава Библиотеки подключаемого оборудования (БПО). Он позволяет выводить результат печати на обычный офисный принтер или в окно предварительного просмотра. Для БП 2.0 это самый стабильный вариант.
Вариант 3: Демо-режим драйверов АТОЛ или Штрих-М. Если вы планируете в будущем подключать реальный аппарат этих производителей, можно установить их официальные драйверы (например, АТОЛ ДТО 8 или 10) и в настройках свойств оборудования выбрать модель ККТ с передачей данных (включен демо-режим). В этом случае 1С будет «думать», что работает с реальным ФР.
Поскольку БП 2.0 использует обычные формы, механизм автоматической загрузки компонент из макетов там может работать некорректно или отсутствовать вовсе. Проанализируем процесс ручной регистрации библиотеки (например, FPEmulatorKKT.dll).
Для того чтобы Windows и 1С распознали компоненту, выполним следующие действия в командной строке:
regsvr32, которая находится в папке SysWOW64.
cd C:\Windows\SysWOW64
regsvr32.exe "C:\Путь_К_Вашей_Библиотеке\FPEmulatorKKT.dll"
Если регистрация прошла успешно, вы увидите сообщение DllRegisterServer в ... успешно выполнен. После этого 1С сможет обратиться к объекту драйвера.
Теперь перейдем к настройкам внутри самой программы. В конфигурациях на обычных формах работа с оборудованием строится через справочник «Торговое оборудование».
Рассмотрим последовательность действий:
Сервис — Торговое оборудование — Подключение и настройка торгового оборудования.Фискальные регистраторы создадим новую запись..epf). Для эмулятора 1С она обычно называется ATOMEmu.epf или аналогично.Модель выберем наш эмулятор.Параметры. Здесь крайне важно убедиться, что тест устройства проходит успешно. Если тест выдает ошибку «Объект драйвера не создан», вернемся к шагу с проверкой разрядности 1С и регистрации DLL.Если задача заключается только в визуальной проверке состава чека, мы можем использовать обходной путь. Рассмотрим ситуацию, когда не хочется возиться с регистрацией библиотек 1С:
Мы можем установить драйвер реального принтера чеков (например, любого производителя чековых принтеров, не обязательно фискальных) и в настройках Windows настроить его на порт FILE: или использовать виртуальный PDF-принтер.
В самой 1С при этом настраивается печатная форма, имитирующая чек. Однако этот метод не подходит, если вам нужно протестировать именно программное взаимодействие с объектом драйвера (методы Connect(), OpenCheck(), PrintReceipt()).
Проанализируем влияние операционной системы на работу эмулятора. Windows 10 обладает повышенными требованиями к безопасности, что может блокировать работу незарегистрированных библиотек в программных папках.
Совет: старайтесь не размещать DLL эмулятора в папках Program Files или Program Files (x86) вручную, если у вас нет полных прав доступа. Иногда помогает копирование библиотеки непосредственно в папку bin платформы 1С, из которой запускается клиент:
C:\Program Files (x86)\1cv8\8.x.x.x\bin\
Это позволит 1С найти файл драйвера даже без указания полного пути в реестре, так как папка запуска всегда является приоритетной для поиска зависимых библиотек.
Подводя итог, отметим, что ключ к успеху в подключении эмулятора для БП 2.0 лежит в использовании 32-битного клиента 1С и ручной регистрации библиотеки через regsvr32. Выполнив эти условия, вы сможете полноценно разрабатывать функционал печати чеков, не имея под рукой дорогостоящего кассового оборудования.