Установил kkmserver, есть самописная программа учёта. Как их связать?

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
AlexandrVK
Сообщения: 5
Зарегистрирован: 05 июн 2019, 18:06

Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение AlexandrVK » 05 июн 2019, 18:17

Возникла потребность внедрить кассу в магазине. Программа учёта самописная. Программа писалась много лет по мере роста потребностей. Сейчас надо дописать работу с кассой. Автор - я.
Написано на Visual Basic.
В результате поисков установил kkmserver.
Из настроек сервера все вроде печатается (примеры), но хотелось бы немного изменить вывод на печать... но это детали.
Вопрос: что надо сделать в программе учёта чтобы можно было печатать чеки через kkmserver на кассу Атол 30Ф?
Помогите пожалуйста.

P. S. :
Касса пока без фискального регистратора, взята на "попробовать".
Я не программист - так нахватался по верхам.

Tonik992
Сообщения: 26
Зарегистрирован: 06 ноя 2018, 13:54

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение Tonik992 » 05 июн 2019, 20:31

Так это обычный HTTP.

Посылаете методы HTTP, а в теле запроса передаете JSON как указано в документации KKM-сервера.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение Audim » 05 июн 2019, 22:54

Примеры на JavaScript использующие расширение для браузера: https://kkmserver.ru/AddIn#Primer
Пример странички на html использующее расширение для браузера: https://kkmserver.ru/AddIn/SamplesAddIn.html

Примеры на JavaScript: https://kkmserver.ru/KkmServer#Primer
Пример странички на html: https://kkmserver.ru/KkmServer/SamplesAjax.html

AlexandrVK
Сообщения: 5
Зарегистрирован: 05 июн 2019, 18:06

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение AlexandrVK » 06 июн 2019, 09:17

Да, я понимаю что я установил обычный HTTP сервер на который можно отправлять, наверное, POST запросы. А что в них передавать ?

Вот есть пример html (https://kkmserver.ru/KkmServer/SamplesAjax.html).

Я так понимаю, что для печати чека мне нужно передать в POST запросе на http://localhost:5893 текст функции RegisterCheck(NumDevice, TypeCheck, IsBarCode) с заполненными там где надо этими переменными NumDevice, TypeCheck, IsBarCode и прописанными моими данными кассира, названия ООО, ИНН (к стати не нашел где его вписать), заполненными данными товаров и т.д.

Правильно ?

Или в программе в соответствии с функцией RegisterCheck набрать переменную "Data" и отправить в POST просто "ExecuteCommand(Data)" ?

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

И, к стати, на сайте я нигде не нашел чего то типа инструкции для подобных моей ситуаций... хотя наверняка я не один с такой проблемой (какая то программа учета и kkmserver).

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение Audim » 07 июн 2019, 11:06

>Я так понимаю, что для печати чека мне нужно передать в POST запросе на http://localhost:5893
Нет, смотрите в примере функцию ExecuteCommand, передавать на адрес "http://localhost:5893/Execute"

>Или в программе в соответствии с функцией RegisterCheck набрать переменную "Data" и отправить в POST просто "ExecuteCommand(Data)"
Data превращается в ExecuteCommand в текст JSON вызовом: JSon = $.toJSON(Data);
Так что в теле запроса передается текст JSON.
Объект Data - это просто способ в JavaScript собрать правильный JSON

>Расширение для браузера пока не хочу использовать, у меня тут и так получается целый огород вспомогательных костылей...
И очень зря - потом поимеете проблемы с кросс-доменными вызовами - клиентам будет тяжело свою сетку настраивать...

AlexandrVK
Сообщения: 5
Зарегистрирован: 05 июн 2019, 18:06

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение AlexandrVK » 07 июн 2019, 13:18

У меня такая ситуация... мне удобно было бы выдавать в каком то виде (POST на сервер например) список товара, его цены, количество, сумму, скидки, ИНН и фамилию кассира... может быть еще что то (вдруг нужно) и получать чек из кассы.

Я не на столько программист, к великому сожалению, чтобы вот так с нуля разобраться в Java и JSON :(
Может быть есть какой то простой способ передать условно "человеческим языком" kkmserver'у то что он хочет ???

И по поводу расширения для браузера... может быть оно ближе по требованиям к исходным данным к моим возможностям ?

"Кросс-доменные вызовы" - для меня вообще темный лес... У меня один магазин, 4 компа и одна касса, товара правда дофига и из за этого пришлось корячить самопальную универсальную систему поиска которая доросла до необходимости печатать чеки. И мне хочется просто нажать в накладной кнопку и вылез чек, user frendly так сказать...

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение Audim » 08 июн 2019, 01:25

Какой язык разарботки?
Какая среда выполнения? Браузер? или Свое приложение exe ?

AlexandrVK
Сообщения: 5
Зарегистрирован: 05 июн 2019, 18:06

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение AlexandrVK » 08 июн 2019, 05:11

Программа написана на Visual basic 6.0. Это .exe, на каждом компьютере одинаковый, все данные лежат на Ms SQL сервере.
К этому exe'шнику могу дописать какую нибудь выдачу необходимых данных.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение Audim » 08 июн 2019, 22:17

Вот текст команды регистрации чека:

Код: Выделить всё

{
        Command: "RegisterCheck",
        NumDevice: 1,
        IsFiscalCheck: true,
        TypeCheck: 0,
        NotPrint: false, //true,
        CashierName: "Kазакова Н.А.",
        CashierVATIN: "430601071197",
        ClientAddress: "sochi@papa.com",
        SenderEmail: "sochi@mama.com",
        TaxVariant: "",
        CheckStrings: [
            {
                Register: {
                    Name: "Сапоги женские DF-3099-1",
                    Quantity: 3,
                    Price: 100,
                    Amount: 100.00,
                    Tax: 20,
                    SignMethodCalculation: 4,
                    SignCalculationObject: 1,
                }
            }
        ],
        Cash: 100,
        ElectronicPayment: 0.00,
        AdvancePayment: 0,
        Credit: 0,
        CashProvision: 0,
 }
Сделайте http вызов:
- URL http://localhost:5893/Execute
- Метод POST
- Пароль/Логи по умолчанию "User"/"", метод авторизации "Basic" (Если нет штатной реализации то заголовок "Authorization", значение = "Basic " + ФункцияКодированияBase64("User:")
- В тело запроса установите текст команды выше

Собственно все

AlexandrVK
Сообщения: 5
Зарегистрирован: 05 июн 2019, 18:06

Re: Установил kkmserver, есть самописная программа учёта. Как их связать?

Сообщение AlexandrVK » 11 июн 2019, 11:15

СПАСИБО!!!

Практически все работает, только не могу понять следующее: в шаблоне не фискального чека прописал

Код: Выделить всё

0|Организация:<#0#>'NameOrganization'
0|Адрес:<#0#>'AddressSettle'
там же уже было

Код: Выделить всё

ИНН:'InnOrganization'
В коде своей программы указал

Код: Выделить всё

NameOrganization: "ООО Трали-Вали",
InnOrganization: "1234567890",
AddressSettle: "Снеговая, 1, стр 9",
В результате в чеке печатается слово "Организация:", дальше пусто.
слово "Адрес:", дальше пусто
ИНН организации вообще ни слова ни самого ИНН не печатается.

Почему ?

P.S. фискального регистратора у меня пока не установлено, может быть с этим связано ?

Ответить