При разработке, тестировании и отладке доработок в конфигурации 1С:Розница программисты и администраторы регулярно сталкиваются с необходимостью запустить Рабочее место кассира (РМК) и сымитировать продажу без подключения реального фискального регистратора. Использовать физическую кассу на этапе разработки неудобно, а иногда и вовсе невозможно, так как это расходует ресурс фискального накопителя и требует постоянного присутствия оборудования на рабочем столе разработчика.
В этой статье мы подробно разберем, как решить данную задачу штатными средствами платформы 1С и конфигурации 1С:Розница. Мы рассмотрим настройку режима работы кассы без подключения оборудования, установку программных фискальных эмуляторов для 32- и 64-разрядных систем, а также научимся обходить сопутствующие ошибки, возникающие при эмуляции торгового оборудования.
Самый быстрый способ запустить РМК для тестирования общей бизнес-логики (не затрагивающей формирование специфических XML-пакетов чеков для ККТ) — это использование штатного механизма виртуальной кассы. Разберем по шагам, как его настроить в актуальных релизах конфигурации 1С:Розница 2.2 и 2.3.
Выясним причину, почему разработчики часто не могут оперативно найти этот режим. Дело в том, что настройка выполняется не в форме подключаемого оборудования, а непосредственно через справочник касс ККМ:
ККМ без подключения оборудования.После этого перейдем к настройке операционной кассы предприятия. Откроем раздел Продажи, перейдем в справочник Кассы (операционные кассы), найдем нужную кассу, установим флаг Пробивать чеки по кассе ККМ и привяжем к ней созданную нами «ККМ без подключения оборудования».
Важная особенность отладки в веб-клиенте: если вы запускаете базу данных через веб-браузер, платформа 1С генерирует новое уникальное имя рабочего места при каждом входе. Это приводит к тому, что привязка виртуального оборудования «слетает». Для стабильного тестирования настоятельно рекомендуется использовать исключительно тонкий или толстый клиент 1С.
Если ваши доработки напрямую затрагивают печатные формы чеков, логику передачи реквизитов ФФД (Формата фискальных документов) или требуют полной имитации фискализации с открытием и закрытием кассовых смен, простой режим «ККМ без оборудования» не подойдет. В этом случае нам потребуется полноценный программный эмулятор фискального регистратора.
Проанализируем ситуацию с выбором версии эмулятора ККТ. Существует два основных типа программных эмуляторов от фирмы 1С:
Не удалось подключить обработчик драйвера. Если вам необходимо использовать именно его, убедитесь, что вы работаете под 32-битным клиентом 1С. Также может потребоваться ручная регистрация библиотеки в операционной системе Windows через утилиту регистрации. Для этого запустим командную строку от имени администратора и выполним регистрацию библиотеки:
C:\Windows\SysWOW64\regsvr32.exe "C:\PathToDriver\FPEmulatorKKT1C2.dll"
1С:Эмулятор ККТ (NativeApi). Он полностью совместим с 64-битными версиями платформы 1С и операционными системами семейства Linux. Нам не нужно регистрировать внешние компоненты в ОС — драйвер устанавливается и обновляется автоматически прямо из интерфейса 1С при создании нового подключаемого оборудования.Разберем, как подключить эмулятор ККТ через настройки программы:
ККТ с передачей данных.1С:Эмулятор ККТ (NativeApi) (или его старый аналог, если работаем в 32-битном клиенте).В процессе тестирования РМК кассира часто требуется проверить цепочку безналичных платежей. Чтобы не зависать на этапе ожидания ответа от реального банковского терминала, настроим виртуальный эквайринг.
Рассмотрим подробнее этот процесс:
Эквайринговые терминалы.Использовать эквайринговый терминал без подключения к системе.После этой настройки при выборе безналичного способа оплаты в РМК программа не будет обращаться к внешним драйверам банковского ПО, а просто предложит кассиру подтвердить успешность транзакции вручную, что идеально подходит для быстрой отладки кода.
В процессе работы с эмуляторами разработчики регулярно сталкиваются с типовыми ошибками. Разберем наиболее частые сценарии и способы их устранения.
Проблема 1: Ошибка несовпадения Системы налогообложения (СНО)
При пробитии чека на эмуляторе ККТ система может выдать ошибку о том, что выбранная СНО (например, УСН Доходы) не совпадает с настройками ККТ. В реальном оборудовании параметры СНО зашиты в фискальный накопитель. В эмуляторе эти параметры инициализируются программно. Если стандартные настройки эмулятора не позволяют указать вашу СНО, мы можем использовать временное расширение конфигурации для отключения этой проверки в модуле БПО. Код обхода проверки может выглядеть следующим образом:
&Вместо("ПроверитьСоответствиеСНО")
Процедура Тест_ПроверитьСоответствиеСНО(ПараметрыРегистрации, Отказ)
// Отключаем проверку систем налогообложения для целей отладки
Отказ = Ложь;
КонецПроцедуры
Проблема 2: Ошибка при использовании «1С:Принтер чеков»
Ранее для эмуляции часто использовался драйвер 1С:Принтер чеков. Однако в современных релизах 1С:Розница и Библиотеки подключаемого оборудования этот механизм заблокирован для фискальных операций. При попытке открыть смену система выдаст предупреждение о невозможности выполнения операции на принтере чеков. Настоятельно рекомендуем отказаться от использования принтера чеков в пользу полноценного 1С:Эмулятор ККТ (NativeApi).
Проблема 3: Бесконечный цикл при установке драйвера эмулятора
Иногда при попытке войти в параметры только что созданного эмулятора программа уходит в бесконечный цикл загрузки драйвера. Выясним причину: это происходит из-за некорректно кэшированных внешних компонент в каталоге пользователя. Для решения проблемы закройте сеанс 1С, очистите локальный кэш платформы (папки %localappdata%\1C\1Cv8) или принудительно укажите в свойствах драйвера способ подключения Драйвер установлен на локальном компьютере с помощью обработки «Групповое изменение реквизитов».
Применяя описанные в данной статье методы, мы сможем развернуть полноценный отладочный стенд для тестирования любых доработок в 1С:Розница без необходимости тратить средства на покупку и обслуживание физического торгового оборудования.