Как настроить 1С:Розница для работы без подключения физической ККМ при отладке и тестировании?

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

При разработке, тестировании и отладке доработок в конфигурации 1С:Розница программисты и администраторы регулярно сталкиваются с необходимостью запустить Рабочее место кассира (РМК) и сымитировать продажу без подключения реального фискального регистратора. Использовать физическую кассу на этапе разработки неудобно, а иногда и вовсе невозможно, так как это расходует ресурс фискального накопителя и требует постоянного присутствия оборудования на рабочем столе разработчика.

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

Способ 1. Использование встроенного режима «ККМ без подключения оборудования»

Самый быстрый способ запустить РМК для тестирования общей бизнес-логики (не затрагивающей формирование специфических XML-пакетов чеков для ККТ) — это использование штатного механизма виртуальной кассы. Разберем по шагам, как его настроить в актуальных релизах конфигурации 1С:Розница 2.2 и 2.3.

Выясним причину, почему разработчики часто не могут оперативно найти этот режим. Дело в том, что настройка выполняется не в форме подключаемого оборудования, а непосредственно через справочник касс ККМ:

  1. Перейдем в раздел меню НСИ, выберем пункт Предприятие и откроем справочник Кассы ККМ.
  2. Если база данных уже настроена на работу с реальной кассой и нам нужно временно переключить ее на виртуальную, откроем существующую карточку кассы ККМ. Обратите внимание, что поля выбора оборудования в существующей карточке заблокированы системой от случайного изменения. Чтобы обойти это ограничение, нажмем кнопку Еще в правом верхнем углу формы и выберем команду Разрешить редактирование реквизитов. После подтверждения операции поля станут доступны.
  3. В поле Тип кассы выберем значение ККМ без подключения оборудования.
  4. Заполним обязательные реквизиты: укажем организацию, магазин, склад и наименование нашей тестовой кассы. Поле Рабочее место заполнится автоматически текущим рабочим местом пользователя компьютера.
  5. Сохраним изменения по кнопке Записать и закрыть.

После этого перейдем к настройке операционной кассы предприятия. Откроем раздел Продажи, перейдем в справочник Кассы (операционные кассы), найдем нужную кассу, установим флаг Пробивать чеки по кассе ККМ и привяжем к ней созданную нами «ККМ без подключения оборудования».

Важная особенность отладки в веб-клиенте: если вы запускаете базу данных через веб-браузер, платформа 1С генерирует новое уникальное имя рабочего места при каждом входе. Это приводит к тому, что привязка виртуального оборудования «слетает». Для стабильного тестирования настоятельно рекомендуется использовать исключительно тонкий или толстый клиент 1С.

Способ 2. Подключение программного эмулятора ККТ от фирмы 1С

Если ваши доработки напрямую затрагивают печатные формы чеков, логику передачи реквизитов ФФД (Формата фискальных документов) или требуют полной имитации фискализации с открытием и закрытием кассовых смен, простой режим «ККМ без оборудования» не подойдет. В этом случае нам потребуется полноценный программный эмулятор фискального регистратора.

Проанализируем ситуацию с выбором версии эмулятора ККТ. Существует два основных типа программных эмуляторов от фирмы 1С:

  1. Классический COM-эмулятор (FPEmulatorKKT1C2 или EmulatorKKT1C2). Этот компонент работает только в 32-разрядной среде. Если ваша платформа 1С запущена в 64-битной версии, попытка подключить этот эмулятор вызовет критическую ошибку Не удалось подключить обработчик драйвера. Если вам необходимо использовать именно его, убедитесь, что вы работаете под 32-битным клиентом 1С. Также может потребоваться ручная регистрация библиотеки в операционной системе Windows через утилиту регистрации. Для этого запустим командную строку от имени администратора и выполним регистрацию библиотеки: C:\Windows\SysWOW64\regsvr32.exe "C:\PathToDriver\FPEmulatorKKT1C2.dll"
  2. Современный кроссплатформенный эмулятор NativeApi (EmulatorKKT1C5). Начиная с новых версий Библиотеки подключаемого оборудования (БПО), фирма 1С поставляет встроенный драйвер 1С:Эмулятор ККТ (NativeApi). Он полностью совместим с 64-битными версиями платформы 1С и операционными системами семейства Linux. Нам не нужно регистрировать внешние компоненты в ОС — драйвер устанавливается и обновляется автоматически прямо из интерфейса 1С при создании нового подключаемого оборудования.

Разберем, как подключить эмулятор ККТ через настройки программы:

  1. Перейдем в раздел Администрирование ➔ Подключаемое оборудование.
  2. Установим флаг Использовать подключаемое оборудование, если он не был установлен ранее.
  3. Перейдем по ссылке Подключаемое оборудование и создадим новую запись с типом оборудования ККТ с передачей данных.
  4. В поле Драйвер оборудования выберем значение 1С:Эмулятор ККТ (NativeApi) (или его старый аналог, если работаем в 32-битном клиенте).
  5. Нажмем кнопку Записать, после чего станет доступна кнопка Настроить. В открывшейся форме параметров настроим виртуальные параметры (ширину ленты, печать XML-пакета чека на экран) и выполним тест устройства. При успешном подключении система выдаст сообщение о том, что тест пройден успешно.

Способ 3. Эмуляция эквайрингового терминала для безналичных оплат

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

Рассмотрим подробнее этот процесс:

  1. В разделе Подключаемое оборудование создадим новое устройство с типом Эквайринговые терминалы.
  2. В качестве драйвера выберем встроенный эмулятор или создадим терминал с признаком работы без подключения к системе.
  3. Перейдем в карточку настройки эквайрингового терминала и установим флаг Использовать эквайринговый терминал без подключения к системе.
  4. В табличной части укажем доступные виды платежных карт (например, Visa, MasterCard, МИР) и привяжем созданную ранее кассу ККМ.

После этой настройки при выборе безналичного способа оплаты в РМК программа не будет обращаться к внешним драйверам банковского ПО, а просто предложит кассиру подтвердить успешность транзакции вручную, что идеально подходит для быстрой отладки кода.

Решение частых проблем при отладке РМК

В процессе работы с эмуляторами разработчики регулярно сталкиваются с типовыми ошибками. Разберем наиболее частые сценарии и способы их устранения.

Проблема 1: Ошибка несовпадения Системы налогообложения (СНО)

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


&Вместо("ПроверитьСоответствиеСНО")
Процедура Тест_ПроверитьСоответствиеСНО(ПараметрыРегистрации, Отказ)
    // Отключаем проверку систем налогообложения для целей отладки
    Отказ = Ложь;
КонецПроцедуры

Проблема 2: Ошибка при использовании «1С:Принтер чеков»

Ранее для эмуляции часто использовался драйвер 1С:Принтер чеков. Однако в современных релизах 1С:Розница и Библиотеки подключаемого оборудования этот механизм заблокирован для фискальных операций. При попытке открыть смену система выдаст предупреждение о невозможности выполнения операции на принтере чеков. Настоятельно рекомендуем отказаться от использования принтера чеков в пользу полноценного 1С:Эмулятор ККТ (NativeApi).

Проблема 3: Бесконечный цикл при установке драйвера эмулятора

Иногда при попытке войти в параметры только что созданного эмулятора программа уходит в бесконечный цикл загрузки драйвера. Выясним причину: это происходит из-за некорректно кэшированных внешних компонент в каталоге пользователя. Для решения проблемы закройте сеанс 1С, очистите локальный кэш платформы (папки %localappdata%\1C\1Cv8) или принудительно укажите в свойствах драйвера способ подключения Драйвер установлен на локальном компьютере с помощью обработки «Групповое изменение реквизитов».

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

← На главную