Драйвер контрольно-кассовой техники v.10
Быстрый старт

Для начала работы с базовым компонентом необходимо:

Чтобы драйвер выполнил какую-либо операцию с ККТ, нужно вызвать метод компонента, предварительно передав ему список параметров. После выполнения, список параметров будет очищен. Список параметров и методы для их установки представлены на странице Управление параметрами методов.

В общем случае, результатом метода могут быть значения 0 и -1. В случае возврата отрицательного результата можно запросить подробности об ошибке с помощью методов со страницы Обработка ошибок.

Ниже представлен пример работы с компонентом, включающий в себя:

Аналогичные примеры для различных языков программирования представлены на странице Использование компонента из других языков программирования.

// Создание и настройка компонента
libfptr_create(&handle);
libfptr_set_settings(handle, L"{\"Model\": 500, \"Port\": 0, \"ComFile\": \"COM5\", \"BaudRate\": 115200}");
// Соединение с ККТ
libfptr_open(handle);
// Регистрация кассира
libfptr_set_param_str(handle, 1021, L"Иванов И.И.");
libfptr_set_param_str(handle, 1203, L"500100732259");
// Открытие электронного чека (с передачей телефона получателя)
libfptr_set_param_str(handle, 1008, L"+79161234567");
// Регистрация позиции
libfptr_set_param_int(handle, 1212, 1);
libfptr_set_param_int(handle, 1214, 7);
// Регистрация итога (отрасываем копейки)
// Оплата наличными
// Закрытие чека
if (libfptr_close_receipt(handle) < 0)
{
int receiptClosed = 0;
do
{
// Обработка исключительных ситуаций, если произошла ошибка при закрытии чека
// (чек мог закрыться на самом деле, даже если, например, закончилась чековая лента)
if (libfptr_check_receipt_closed(handle) < 0)
{
switch (libfptr_error_code(handle))
{
break;
default:
break;
}
continue;
}
receiptClosed = libfptr_get_param_bool(handle, LIBFPTR_PARAM_RECEIPT_CLOSED);
break;
}
while (true);
}
// Получение информации о чеке из ФН
wchar_t fiscalSign[50] = {0};
libfptr_get_param_str(handle, LIBFPTR_PARAM_FISCAL_SIGN, &fiscalSign[0], sizeof(fiscalSign) / sizeof(fiscalSign[0]));
// Формирование слипа ЕГАИС
libfptr_set_param_str(handle, LIBFPTR_PARAM_TEXT, L"ИНН: 111111111111 КПП: 222222222");
libfptr_set_param_str(handle, LIBFPTR_PARAM_TEXT, L"КАССА: 1 СМЕНА: 11");
libfptr_set_param_str(handle, LIBFPTR_PARAM_TEXT, L"ЧЕК: 314 ДАТА: 20.11.2017 15:39");
libfptr_set_param_str(handle, LIBFPTR_PARAM_BARCODE, L"https://check.egais.ru?id=cf1b1096-3cbc-11e7-b3c1-9b018b2ba3f7");
libfptr_set_param_str(handle, LIBFPTR_PARAM_TEXT, L"https://check.egais.ru?id=cf1b1096-3cbc-11e7-b3c1-9b018b2ba3f7");
L"10 58 1c 85 bb 80 99 84 40 b1 4f 35 8a 35 3f 7c "
L"78 b0 0a ff cd 37 c1 8e ca 04 1c 7e e7 5d b4 85 "
L"ff d2 d6 b2 8d 7f df 48 d2 5d 81 10 de 6a 05 c9 "
L"81 74");
// Z-отчет
// Получение информации о неотправленных документах
wchar_t unsentDateTime[50] = {0};
libfptr_get_param_str(handle, LIBFPTR_PARAM_DATE_TIME, &unsentDateTime[0], sizeof(unsentDateTime) / sizeof(unsentDateTime[0]));
// Завершение работы
libfptr_close(handle);
libfptr_destroy(&handle);