ТЗ по новому ККМ-серверу

Скачать раздел в PDF

Задача

Разработать десктоп-программу для взаимодействия с кассовым оборудованием (контрольно-кассовой техникой) для печати фискальных и не фискальных чеков.

Текущее ПО по взаимодействию с ККТ - ККМ сервер. По сути необходимо разработать полный аналог.

Программа должна вставать как локальный веб-сервер на определенном порту, принимать http запросы от браузера и выполнять взаимодействие с оборудованием.

На начальном этапе необходимо обеспечить поддержку оборудования следующих разработчиков:

  1. Атол (сайт, официальная документация);
  2. Штрих (сайт, официальная документация).

Конкретные методы по взаимодействия с каждым оборудованием можно найти в соответствующей документации по ссылкам выше.

Минимально необходимые операции:

  • Открытие/закрытие смены;
  • X-отчет;
  • Диагностика соединения с ОФД;
  • Передача данных в ОФД;
  • Печать фискального чека;
  • Печать слип-чека (произвольный текст).

Печать фискальных чеков помимо приема непосредственно фискальных строк должна поддерживать печать текста с различным форматированием (размер шрифта и выравнивание), QR и штрихкода в произвольном месте чека.

Программа должна поддерживать все актуальные для данных производителей способы соединения ККТ с компьютером (com-порты, usb, эмуляция com-порта, ethernet и т.д.) и все актуальные модели ККТ.

Программа должна иметь интерфейс для настройки подключения, выполнения диагностики подключения, тестирования всех операций, а также расширенное логирование всех процессов.

Основная проблема существующего ПО

Периодически ПО отказывается выполнять поданные команды c различными ошибками. Разработчик ссылается на устаревшую технику или проблемы с соединением. Почти все подобные случаи решаются физической перезагрузкой кассы или компьютера, дальше чеки пробиваются корректно.

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

Ситуация усугубляется тем, что статистически ошибки возникают очень редко, из нашей статистики – в день примерно 4 ошибочных на 6200 успешных чеков, то есть проблема возникает в 0.00064% случаев. Поэтому воспроизвести или отловить этот момент очень сложно.

Т.к. данное ПО является проприетарным, а разработчик не предпринемает активных действий для решения вышеуказанных проблема, возникла необходимость в разработке собственного кассового ПО.

Эмуляция ошибок в кассе

Скачать раздел в PDF

Для управления эмуляцией ошибок в кассе предусмотрен параметр Эмуляция ошибок ККМ в кассах ККМ.

Смоделированы сделующие ситуации:

Ошибка после оплаты (слип вышел, билеты нет)

В этом случае после оплаты и печати слипа интерфейс зависнет в бесконечной загрузке.

Решение - перезагрузка | приблуда;

Ошибка печати одно из билетов (один вышел, один нет)

В РМК выбивайте несколько билетов, после оплаты и печати первого интерфейс зависнет.

Решение - перезагрузка | приблуда;

Все билеты вышли, заказ не зафиксировался

Ситуация - все билеты и слипы вылезли, но интерфейс висит.

Решение - перезагрузка | приблуда;

Общая ошибка при отправке на печать

При попытке отправить на печать вылезет типичная ошибка ККМ.

Решение - перезагрузить кассу, дальше - перезагрузка | приблуда;

Перед тестированием не забудте проверить, что корректно определилась касса ККМ в текущей смене (по клике на значке кассы в верхнем правом углу)