Протокол Атол ДТО 6, неочевидные вещи.

30 сентября 2015 3807 просмотров


Чек на два вида оплаты, несмотря на простоту вырвал из рабочего времени 4 часа

Введение. Совсем недавно клиент обратился за консультацией, точного ответа на вопрос не знали – обратились документации, нашли нужный ответ, проверили в тесте драйвера, выдали ответ… неправильный. Хорошо, что сработала привычка, при общении с крупным клиентом дублировать обращение в техническую поддержку ген. поставщика, которая выдала правильный и абсолютно противоположный ответ. Решение одной проблемы породило, абсолютно другую проблему, как за 3 дня перепрограммировать 70 ККМ раскиданных по всей Челябинской области – логично сделать небольшой exe-шник выполняющий данную процедуру и разослать его по почте на все объекты, но то что в привычном протоколе Штрих не вызывает вопросов, в протоколе Атол реализовано несколько иначе и заставляет обратится к документации. Несложная задача отняла почти полдня, чтение документации, переписка с технической поддержкой ген. поставщика, написание исполняемого файла на Delphi, тестирование готового ПО – надеемся материал сможет кому-нибудь с такой же задачей затратить меньше времени на решение аналогичной проблемы. Приведенное решение не является единственно верным и лучшим, но оно является работоспособным, а значит правильным.
Задача. Требуется продавать товар по двум типам оплаты – нал/безнал и подарочным сертификатом.
Первичная оценка задания. Протокол Атол ДТО 6 может выполнять реализацию товара нескольким видами оплаты, хотя и не так явно, как это реализовано в протоколе Штрих. Тип оплаты можно выделить методом Payment.  Алгоритм оформления чека на два вида оплаты из теста драйвера ККМ.


Тест драйвера ККМ, открываем чек на 100 руб, оформляем в чеке первый вид оплаты на 60 руб

 


Тест драйвера ККМ, оформляем в чеке второй вид оплаты на 40 руб. и закрываем чек.

Таблицы так же организованы в отличной от протокола Штрих манере, таблицы делятся на два типа Строковые параметры ККМ, описаны в приложении 9 (методы GetCaption, SetCaption) и Числовые параметры ККМ, описаны в приложении 10 (методы GetValue, SetValue).
Решение. Методом SetCaption требуется установить в таблице Строковые параметры ККМ значение 67 (тип оплаты №2) равным «ПОДАР. СЕРТИФ», для возможности программирования разных полей таблицы Строковые параметры ККМ вынесем настройки в ini файл. Скачать файл c ini файлом под настройки 67 поля равным «ПОДАР. СЕРТИФ», скачать проект Delphi 7.
Заключение. Несмотря на очевидную простоту задачи, сотруднику ЦТО воспитанному на протоколе Штрих и разбирающемся в основах программирования на уровне школьной парты задача показалась не совсем простой, поэтому и появилась данная публикация. Не смотря на свою банальность и простоту, данное решение сэкономило кучу времени и бензина для наших линейных механиков.