ККМ http web-сервер печати чеков / этикеток через JSON запрос по HTTP протоколу (54-ФЗ)

Оборудование - ККМ

54-ФЗ 54фз ККМ KKM касса чек фискальный регистратор http json webserver

28
Программа предназначена для печати и регистрации фискальных/не фискальных чеков на Контрольно-кассовых машинах оборудованных фискальным регистратором (далее ККМ). Программа является маленьким HTTP web-сервером и имеет встроенные драйвера ККМ. Позволяет печатать/регистрировать чеки с мобильных устройств / планшетов или с настольного ПК из 1с одновременно. Позволяет печатать/регистрировать чеки на KKM подключенных к другим ПК. Есть возможность печати этикеток с штрих-кодами на принтерах этикеток. Так-же возможно использовать ККМ в качестве принтера этикеток. Технология использования - HTTP(Ajax/REST) запрос, данные передаются через JSON; Возможности: Печать/регистрация чеков из браузера IE/Chrome и т.п.; Протокол передачи данных: Печать/регистрация чеков по HTTP протоколу; У 1с сейчас начинает появляется похожий функционал, но у 1с всегда должна установлена и запущена платформа 1с что требует как минимум лицензии на 1 продукт 1с или сетевую лицензию. Эта-же программа позволяет работать без лицензии 1с, например: В магазине чеки регистрируются с мобильной платформы (планшет) оффлайн и для складских операций используется тонкий клиент для удаленной базы через интернет. Такая схема позволяет магазину быть безопасной от наличия интернета.

Возможности:

  • Logo1Данные для печати чеков принимаются через HTTP запрос в формате JSON. Возможен запуск программы как windows-сервис.
  • Печатать различных штрих-кодов (в начале чека, в конце, на товар) даже если это не умеет делать ККМ.
  • Типы печатаемых ШК: EAN13, CODE39, CODE128, PDF417, QR .
  • Объединение нескольких ККМ в один пул который будет выглядеть для пользователя как 1 ККМ.
       При печати на пул чек будет регистрироваться на различных ККМ входящих в пул по очереди.
       При возникновении ошибки на одной ККМ она может автоматически блокироваться в пуле.
  • Переадресация чека на другой "ККМ web-сервер" для удалённой регистрации чека.
  • Печать чека на принтер-чеках и ККМ без фискального регистратора.
  • Печать чека на дисплее для отладки.
  • Излечение (на некоторых ККМ) фискальной подписи чека (КПК) и возвращение его клиенту.
  • Снятие Х и Z отчетов.
  • Фискализация (Регистрация) ККТ.
  • Внесение и изъятие денежных средств из кассы.
  • Открытие денежного ящика.
  • Запрос количества наличных средств в ККМ (по учету в ККМ).
  • Логин пароль для пользователей и отдельно для администратора.
  • Защищенное HTTPS соединение по вашему сертификату.
  • Задание любого IP порта для сервера (По умолчанию 5893).
  • Синхронная / Асинхронная работа. При асинхронной работе сервер сразу вернет управление. Результат выполнения операции можно запросить отдельно позже.
  • Поддержка кросс-доменных вызовов для браузеров.

Новая версия (поддержка 54-ФЗ):

  • Добавлен новый функционал по поддержке ККТ по 54фз с ФН и передачей информации в ОФД:
  • Передача адреса (Email или телефон) в данные чека.
  • Получение Web-ссылки на зарегистрированный чек в ОФД.
  • Передача произволных полей в чек, являющихся неотемлемой частью договора купли/продажи оформляемой чеком.
  • Передача данных по оператору/банковского агента/банковского субагента перевода денежных средств
  • Возможность не печати чека на ленту.
  • Возможность работы по нескольким системам налогообложения: возможность указать в чеке применяемую СНО.
  • Печать не фискальных строк 4 шрифтами.
  • Регистрация и передача в ОФД наименования товаров и Штрих-Код EAN13
  • Новый отчет "Состояние расчетов и состояние связи с ОФД"
  • Новый тип чека - строно (коррекция). теперь можно отсторнировать продажу в любое время! (не злоупотреблять - налоговая не спит!)
  • Регистрация ККТ в ОФД.
  • Открытие закрытие ФН.
  • Изменение регистрационных данных.
  • Передача данных в ОФД через COM порт по протоколу PPP Ethernet over USB
  • Подключение ККТ по Ethernet протоколу.
  • Получение списка ККМ.
  • Поиск сетевых и локальных ККТ.
  • API полностью совместим с новой версией UnitServer и KkmFactory.
  • Интеграция с ЕГАИС - при регистрации чека возможно отправление данных в ЕГАИС чрез систему "Универсальный транспортный модуль ЕГАИС (УТМ)"

Поддерживаемые устройства (ККМ):

  • Протокол АТОЛ:
    АТОЛ-22Ф/FPrint-22ПТК, АТОЛ-25Ф, АТОЛ-90Ф, АТОЛ-55Ф/FPrint-55ПТК,
    АТОЛ-11Ф/FPrint-11ПТК, АТОЛ-77Ф/FPrint-77ПТК, АТОЛ-30Ф, FPrint-190АК .
  • Протокол ШТРИХ-М:
    ШТРИХ-М-01Ф, ШТРИХ-ON-LINE, ШТРИХ-ЛАЙТ-01Ф, ШТРИХ-ЛАЙТ-02Ф, ШТРИХ-М-02-Ф,
    ШТРИХ-МИНИ-02Ф, ШТРИХ-ФР-02Ф, ШТРИХ-МИНИ-01Ф, РИТЕЙЛ-01Ф, ШТРИХ-ФР-01Ф
  • Протокол Сервис-Плюс (только старые ККМ, новые ККТ пока не поддерживаются): 
    СП-101 (СП-101 К, СП-101 ФР-К), СП-402 (СП-402 К, СП-402 ФР-К),
    СП-412, СП-413, СП-601 (СП-601 К, СП-601 ФР-К)
  • ESC/POS принтеры чеков:
    Принтеры этикеток, принтеры чеков (без фискального регистратора)
    работающие по протоколу ESC/POS (COM, LTP порты, windos спулер печати)

     

    Windows принтер:
    Принтеры этикеток, Принтеры чеков (без фискального регистратора)
    работающие через windos спулер печати

Требование к системе:

  • Никакие другие сторонние драйвера ККМ не нужны! В программу включены собственные драйвера ККМ!
  • Сторонний Web-сервер (apache, iis) не нужен! Программа сама является маленьким HTTP сервером!
  • Операционная система- Windows 7, Windows 8, Windows 10.
  • Требуется установить .NET Framework 4.5.1 (Наверняка у Вас уже установлено).
  • Прочие требования предъявляемые ККМ к системе.

Пример кода на JavaScript для печати фискального чека:

//**************************************************************************************
// Вызов команды на KkmServer
//**************************************************************************************
function ExecuteCommand(
    Async,          // false - сервер вернет ответ только после выполнения команды. Если true то сразу после постановки команды в очередь
    Data,           // Данные команды
    FunSuccess,     // Функция выполняемая при успешном соединении
    FunError,       // Функция выполняемая при ошибке соединения
    timeout) {
   
    if (FunSuccess === undefined) {
        FunSuccess = ExecuteSuccess;
    }
    if (timeout === undefined) {
        timeout = 60000; //Минута - некоторые драйверы при работе выполняют интерактивные действия с пользователем - тогда увеличте тайм-аут.
    }
    var JSon = $.toJSON(Data);
    $.support.cors = true;
    var jqXHRvar = $.ajax({
        type: 'POST',
        async: true,
        timeout: timeout,
        url: UrlServer + ((UrlServer == "") ? window.location.protocol + "//" + window.location.host + "/" : "/") + 'Execute/' + ((Async) ? "async" : "sync"),
        crossDomain: true,
        dataType: 'json',
        contentType: 'application/json; charset=UTF-8',
        processData: false,
        data: JSon,
        headers: (User != "" || Password != "") ? { "Authorization": "Basic " + btoa(User + ":" + Password) } : "",
        success: FunSuccess,
        error: FunError
    });
}

//**************************************************************************************
// Печать тестового чека продажи 
//**************************************************************************************

function RegisterCheck(NumDevice, TypeCheck, IsBarCode, Print) {
    // Подготовка данных команды
    var Data = {
        // Команда серверу
        Command: "RegisterCheck",
                 
        //***********************************************************************************************************
        // ПОЛЯ ПОИСКА УСТРОЙСТВА
        //***********************************************************************************************************
        // Номер устройства. Если 0 то первое не блокированное на сервере
        NumDevice: NumDevice,
        // ИНН ККМ для поиска. Если "" то ККМ ищется только по NumDevice,
        // Если NumDevice = 0 а InnKkm заполнено то ККМ ищется только по InnKkm
        InnKkm: "",
        //---------------------------------------------
        // Заводской номер ККМ для поиска. Если "" то ККМ ищется только по NumDevice,
        KktNumber: "",
        // **********************************************************************************************************
        // Время (сек) ожидания выполнения команды.
        //Если За это время команда не выполнилась в статусе вернется результат "NotRun" или "Run"
        //Проверить результат еще не выполненной команды можно командой "GetRezult"
        //Если не указано или 0 - то значение по умолчанию 60 сек.
        // Поле не обязательно. Это поле можно указвать во всех командах
        Timeout: 30,
        // Уникальный идентификатор команды. Любая строка из 40 символов - должна быть уникальна для каждой подаваемой команды
        // По этому идентификатору можно запросить результат выполнения команды
        // Поле не обязательно
        IdCommand: guid(),
        // Это фискальный или не фискальный чек
        IsFiscalCheck: true,
        // Тип чека;
        // 0 – продажа;                             10 – покупка;
        // 1 – возврат продажи;                     11 - возврат покупки;
        // 8 - продажа только по ЕГАИС (обычный чек ККМ не печатается) 
        // 9 - возврат продажи только по ЕГАИС (обычный чек ККМ не печатается)
        TypeCheck: TypeCheck,
        // Аннулировать открытый чек если ранее чек не был  завершен до конца
        CancelOpenedCheck: true,
        // Не печатать чек на бумагу
        NotPrint: (Print == true) ? false : true, //true,
        // Продавец, тег ОФД 1021
        CashierName: "Kазакова Н.А.",
        // Телефон или е-Майл покупателя, тег ОФД 1008
        // Если чек не печатается (NotPrint = true) то указывать обязательно
        ClientAddress: "client@server.ru",
        // Система налогообложения (СНО) применяемая для чека
        // Если не указанно - система СНО настроенная в ККМ по умолчанию
        // 0: Общая ОСН
        // 1: Упрощенная УСН (Доход)
        // 2: Упрощенная УСН (Доход минус Расход)
        // 3: Единый налог на вмененный доход ЕНВД
        // 4: Единый сельскохозяйственный налог ЕСН
        // 5: Патентная система налогообложения
        // Комбинация разных СНО не возможна
        // Надо указывать если ККМ настроена на несколько систем СНО
        TaxVariant: "",
        // Дополниельные реквизиты чека (не обязательно):
        //1005 Адрес оператора по переводу денежных средств (Строка 100)
        //1016 ИНН оператора по переводу денежных средств (Строка 12)
        //1026 Наименование оператора по переводу денежных средств (Строка 64)
        //1044 Операция банковского агента (Строка 24)
        //1045 Операция банковского субагента (Строка 24)
        //1073 Телефон банковского агента (Строка 19)
        //1074 Телефон платежного агента (Строка 19)
        //1075 Телефона оператора по переводу денежных средств (Строка 19)
        //1082 Телефон банковского субагента (Строка 19)
        //1083 Телефон платежного субагента (Строка 19)
        //1119 Телефон оператора по приему платежей (Строка 19)
        CheckProps: [
            { Print: true, PrintInHeader: true, Teg: 1005, Prop: "Москва, ул. Трехгорка д.13" },
            { Print: true, PrintInHeader: true, Teg: 1010, Prop: 10.25 },
            { Print: true, PrintInHeader: true, Teg: 1073, Prop: "8(985)775-44-61" },
        ],
        // Дополнительные произвольные реквизиты (не обязательно) пока только 1 строка
        AdditionalProps: [
            //{ Print: true, PrintInHeader: false, NameProp: "Номер транзакции", Prop: "234/154" },
            { Print: true, PrintInHeader: false, NameProp: "Дата транзакции", Prop: "10.11.2016 10:30" },
        ],
        // Это только для тестов:
        ClientId: "23FG4GV4D2956",
        // КПП организации, нужно только для ЕГАИС
        KPP: "782543005",
        // Строки чека
        CheckStrings: [
            // Строка с печатью штрих-кода
            {
                BarCode: {
                    // Тип штрих-кода: "EAN13", "CODE39", "CODE128","QR", "PDF417".
                    BarcodeType: "PDF417",
                    // Значение штрих-кода
                    Barcode: "12345DFG Proba pera, Print barcode 1234567890",
                },
            },
            //При вставке в текст символов ">#10#<" строка при печати выровнеется по центру, где 10 - это на сколько меньше станет строка ККТ
            {
                PrintText: {
                    Text: ">#2#<ООО "Рога и копыта",
                    Font: 1,
                },
            },
            // При вставке в текст в середину строки символов "<#10#>" Левая часть строки будет выравнена по левому краю, правая по правому, где 10 - это на сколько меньше станет строка ККТ
            // При вставке в текст в середину строки символов "<#10#>>" Левая часть строки будет выравнена по правому краю, правая по правому, где 10 - отступ от правого клая
            { PrintText: { Text: "Пример №1 печати поля:<#16#>154,41" }, },
            // Строка с печатью текста определенным шрифтом
            {
                PrintText: {
                    Text: "Шрифт № 1",
                    Font: 1, // 1-4, 0 - по настройкам ККМ
                    Intensity: 15, // 1-15, 0 - по настройкам ККМ
                },
            },
            // Строка с печатью фискальной строки
            {
                Register: {
                    // Наименование товара 64 символа
                    Name: "Сапоги женские DF-3099",
                    // Количество товара
                    Quantity: 3,
                    // Цена за шт. без скидки
                    Price: 100,
                    // Конечная сумма строки с учетом всех скидок/наценок;
                    Amount: 0.01,
                    // Отдел, по которому ведется продажа
                    Department: 0,
                    // НДС в процентах или ТЕГ НДС: 0 (НДС 0%), 10 (НДС 10%), 18 (НДС 18%), -1 (НДС не облагается)
                    Tax: 18,
                    //Штрих-код EAN13 для передачи в ОФД (не печатется)
                    EAN13: "1254789547853",
                    // Данные для ЕГАИС системы, можно не указывать
                    EGAIS: {
                        Barcode: "22N0000154NUCPRZ3R8381461004001003499NKAQ0ZBUVDNV62JQAR69PEV878RO93V",
                        Ean: "3423290167937",
                        Volume: 0.7500,
                    },
                },
                BarCode: {
                    // Тип штрих-кода: "EAN13", "CODE39", "CODE128","QR", "PDF417".
                    BarcodeType: "EAN13",
                    // Значение штрих-кода
                    Barcode: "1254789547853",
                },
            },
        ],
        // Наличная оплата
        Cash: 800,
        // Безналичная оплата типа 1 (по умолчанию - Оплата картой)
        CashLessType1: 0.01,
        // Безналичная оплата типа 2 (по умолчанию - Оплата кредитом)
        CashLessType2: 0,
        // Безналичная оплата типа 3 (по умолчанию - Оплата сертификатом)
        CashLessType3: 0,
    };

    // Вызов команды
    ExecuteCommand(false, Data);

    // Возвращается JSON:
    //{
    //    "CheckNumber": 1,    // Номер документа
    //    "SessionNumber": 23, // Номер смены
    //    "LineLength": -1,
    //    "URL": "t=20170115T154700&s=0.01&fn=99078900002287&i=118&fp=549164494&n=1", 
    // URL проверки чека, где: t-дата-время, s-сумма документа, fn-номер ФН, i-номер документа, fp-фискальная подпись, n-тип документа
    //    "Info": null,
    //    "Command": "RegisterCheck",
    //    "Error": "",  
    // Текст ошибки если была - обязательно показать пользователю - по содержанию ошибки можно в 90% случаях понять как ее устранять
    //    "Status": 0   // Ok = 0, Run(Запущено на выполнение) = 1, Error = 2, NotFound(устройство не найдено) = 3, NotRun = 4
    //}
}
//**************************************************************************************

 

Тестовый режим:


Для цели тестирования, разработки, обучения оплата не требуется.
При этом на чеках иногда будет отображаться информация о том, что программа не лицензирована.
Также иногда сумма чека будет не совпадать с указанной.
Для цели печати этикеток со штрих-кодом на принтерах этикеток лицензия и оплата не требуется.

 

 Срок действия бесплатной техподдержки: не ограничен. 

Работа с 1С предприятием:

Для печати чеков из конфигураций 1С есть драйвер для 1с.
В 

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом течение 14-ти дней со дня поступления денег на наш счет.

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

Для возврата оплаты просто свяжитесь с нами.

28

Все

Наименование Файл Версия Размер
Дистрибутив сервера ККМ
.msi 7,22Mb
29.07.16
198
.msi 2.0.19.02 7,22Mb 198 Скачать бесплатно
Драйвер для 1с
.zip 526,05Kb
17.03.17
115
.zip 2.0.16.02 526,05Kb 115 Скачать бесплатно
30.05.2018
1 1500 руб.


Новый вопрос

E-mail*
Тема (вопрос)*

См. также