Skip to content

Касса и KKMServer

Dashboard печатает чеки через объект window.KkmServer, который обычно добавляет браузерное расширение KKMServer. Если объекта нет, dashboard открывает обычную страницу чека вместо печати через ККТ.

Что такое KKMServer

KKMServer - внешний HTTP web-server для работы с ККТ, принтерами чеков, эквайринговыми терминалами и другим торговым оборудованием. Beex/Dostavix формирует команды печати, а фактическое выполнение зависит от KKMServer, драйверов, ККТ, ФН, ОФД, лицензии и локальной сети клиента.

Полезные официальные источники:

Важно

Версии и интерфейс KKMServer меняются. На момент проверки 4 мая 2026 года на официальной странице была указана версия 2.3.15.16 от 12 февраля 2026 года. Перед установкой сверяйте актуальную версию на сайте KKMServer.

Что использует dashboard

Локальные источники:

  • frontend/dostavix_dashboard/src/utils/receipt.js;
  • frontend/dostavix_dashboard/src/utils/kkm/kkmShift.js;
  • frontend/dostavix_dashboard/src/utils/kkm/kkmSlipShiftReport.js;
  • frontend/dostavix_dashboard/src/utils/kkm/kkmCallback.js.

Команды:

  • RegisterCheck - фискальный чек или нефискальный пречек;
  • OpenShift - открыть кассовую смену;
  • CloseShift - закрыть кассовую смену;
  • Settlement - сверка итогов по терминалу;
  • TerminalReport - отчет терминала;
  • GetLineLength - ширина строки принтера для крупного номера заказа.

Базовая схема печати

  1. Оператор нажимает Пречек или Чек.
  2. Dashboard собирает данные заказа.
  3. Dashboard вызывает window.KkmServer.GetDataCheck().
  4. В объект команды добавляются строки, товары, суммы, тип чека, кассир и оплата.
  5. Выполняется Data.Execute(callback).
  6. При успехе dashboard обновляет флаги заказа.
  7. При ошибке показывается текст ошибки.

Фискальный чек и пречек

Фискальный чек:

  • Data.IsFiscalCheck = true;
  • регистрируется на ККТ/ФН;
  • должен передаваться в ОФД;
  • влияет на фискальную отчетность.

Пречек или слип:

  • Data.IsFiscalCheck = false;
  • используется как нефискальный документ;
  • может печатать состав заказа для кухни, клиента или сменного отчета;
  • не заменяет фискальный чек, если по регламенту нужен фискальный документ.

Типы оплаты

Dashboard обрабатывает оплаты так:

  • online - ElectronicPayment, без проведения через терминал;
  • pos и qr_code - ElectronicPayment, а PayByProcessing зависит от department.kkm_pay_by_processing;
  • cash и bank_transfer - наличная логика, при rest_from печатаются получено и сдача.

Ошибка

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

Номер устройства терминала

В dashboard для Settlement и TerminalReport используется NumDevice = 2. Это локальная договоренность проекта. На клиентской точке номер устройства в KKMServer должен совпадать с фактической настройкой.

Если при закрытии смены не проходит сверка терминала:

  1. Проверить, есть ли устройство терминала в KKMServer.
  2. Проверить его номер.
  3. Проверить связь терминала.
  4. Проверить kkm_pay_by_processing.
  5. Проверить лог команды.

Настройка перед запуском точки

На компьютере или кассовом узле клиента:

  1. Установить KKMServer.
  2. Установить и включить браузерное расширение, если используется печать из браузера.
  3. Подключить ККТ.
  4. Установить драйверы ККТ и USB-COM/RNDIS/Ethernet, если они требуются.
  5. Проверить ККТ в интерфейсе KKMServer.
  6. Напечатать тестовый чек из KKMServer.
  7. Проверить состояние ФН и связь с ОФД.
  8. Проверить печать из dashboard.

Частые проверки

При ошибке печати запросите у клиента:

  • город и точку;
  • номер заказа;
  • способ оплаты;
  • фискальный чек или пречек;
  • полный текст ошибки;
  • скрин интерфейса KKMServer;
  • лог команды из KKMServer;
  • состояние ККТ;
  • состояние ОФД: количество неотправленных документов и дата первого неотправленного.

АТОЛ и Штрих-М

Для АТОЛ:

  • проверить драйвер;
  • проверить порт или Ethernet/RNDIS;
  • проверить регистрацию ККТ и ФН;
  • проверить связь с ОФД;
  • сделать тестовую печать в KKMServer.

Для Штрих-М:

  • предпочтительнее стабильное сетевое подключение, если оно поддерживается;
  • проверить драйвер ККТ;
  • проверить параметры связи;
  • сделать тест состояния ККТ.

Оговорка

Подключение оборудования зависит от модели кассы, версии драйвера, прошивки, ФН, ОФД и локальной сети. В документации Beex фиксируем порядок проверки, но не заменяем официальные инструкции производителя ККТ.

Ошибки, которые нужно эскалировать

Эскалируйте разработчикам или старшей поддержке, если:

  • команда сформирована корректно, но dashboard неверно обновляет флаги заказа;
  • после успешного фискального чека заказ остается без is_receipt_printed;
  • повторяется ошибка округления суммы;
  • неверно определяется тип оплаты;
  • чек возврата печатается не в том сценарии;
  • заказы агрегатора печатаются как фискальные, хотя должны быть нефискальными.

Внутренняя и клиентская документация Beex/Dostavix.