Получение команд с внешнего источника через интернет

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
web1s.ru
Сообщения: 9
Зарегистрирован: 19 май 2020, 18:28

Получение команд с внешнего источника через интернет

Сообщение web1s.ru » 27 май 2020, 19:35

В ответах на форуме написано: "Все команды ставятся в очередь на выполнение и выполняются по порядку". Но если в kkm-сервере настроено "Использовать обратный вызов" и указан интервал вызова, например 5 секунд, а при этом передана команда для регистрации чека с 50-ю товарами с маркировкой, то понятно, что за 5 секунд чек не будет готов. При этом будет ли работать "обратный вызов", запрашивая новые команды и устанавливая их в очередь или "обратный вызов" приостановится до выполнения "длинной" команды?

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

Re: Получение команд с внешнего источника через интернет

Сообщение Audim » 27 май 2020, 19:54

>При этом будет ли работать "обратный вызов", запрашивая новые команды и устанавливая их в очередь или "обратный вызов" приостановится до выполнения "длинной" команды?

Будет.
Если команда из прошлого запроса еще не выполнена - в вызове просто не будет ответа на команду.
Но сами вызовы будут, и команды будут приниматься и ставится в очередь.

Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Получение команд с внешнего источника через интернет

Сообщение saratovout » 27 май 2020, 20:38

web1s.ru писал(а):
27 май 2020, 19:35
В ответах на форуме написано: "Все команды ставятся в очередь на выполнение и выполняются по порядку". Но если в kkm-сервере настроено "Использовать обратный вызов" и указан интервал вызова, например 5 секунд, а при этом передана команда для регистрации чека с 50-ю товарами с маркировкой, то понятно, что за 5 секунд чек не будет готов. При этом будет ли работать "обратный вызов", запрашивая новые команды и устанавливая их в очередь или "обратный вызов" приостановится до выполнения "длинной" команды?
Очередь будет, но я вам советую делать очередь именно на уровне вашего приложения -- отправили одно, получили результат команды, отправляйте следующее задание. Например, если вы работаете с эквайрингом, очередь уже как надо не сработает.
good films make your life better..

web1s.ru
Сообщения: 9
Зарегистрирован: 19 май 2020, 18:28

Re: Получение команд с внешнего источника через интернет

Сообщение web1s.ru » 27 май 2020, 20:57

Спасибо за быстрый и исчерпывающий ответ! Но есть вопрос более каверзный. Положим в kkm-сервере прописаны две кассы. В одна из них чек был отпечатан нормально и бумага закончилась. Логика указывает, что при выдаче команды на печать чека в кассе #0, только одна касса теперь будет обслуживать очередь чеков. А вторая автоматически будет исключена из работы. Так ли это? И как тогда "издалека" отловить такую ситуацию? Или с определенным периодом надо передавать команду на опрос состояния касс?

Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Получение команд с внешнего источника через интернет

Сообщение saratovout » 27 май 2020, 21:26

web1s.ru писал(а):
27 май 2020, 20:57
одна из них чек был отпечатан нормально и бумага закончилась. Логика указывает, что при выдаче команды на печать чека в кассе #0, только одна касса теперь будет обслуживать очередь чеков. А вторая автоматически будет исключена из работы.
имхо, односложно ответить на вопрос нельзя. Много нюансов могут зависеть от конкретной модели ККМ.

Возможна такая ситуация, что бумага кончилась в конце чека, чек ушел в ОФД, но ПО считает его недопечатанным с ошибкой "нет бумаги", но с имеющимся номером ФД чека.

Еще может быть, что состояние "нет бумаги" сервер узнает не сразу, а когда команда уже ушла на определенный кассовый аппарат.

Всё это желательно учитывать, но, как правило, мало кто это делает.
web1s.ru писал(а):
27 май 2020, 20:57
как тогда "издалека" отловить такую ситуацию? Или с определенным периодом надо передавать команду на опрос состояния касс?
Не имеет смысла, опрос ККМ перед каждой отправкой чека не даст вам ожидаемого результата. Опрос, скорее нужно делать: при включении, изменении конфигурации, м.б. перед/после открытиями/закрытиями смен, после каких-то ошибок.
good films make your life better..

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

Re: Получение команд с внешнего источника через интернет

Сообщение Audim » 27 май 2020, 22:25

Если к kkmserver подключены две ККТ зарегистрированные на один ИНН и одну и туже систему налогообложения то можно сделать балансировку нагрузки:
В команде не указывать номер устройства а указывать только ИНН и СНО.
Тогда kkmserver будет регистрировать чеки поочередно на разных ККТ.

В настройках можно поставить крыжик на "При ошибке: Активно = off"
Тогда если на какой-то ККТ будет ошибка то она станет не активной и все команды будут выполнятся на другой ККТ.
Но ошибку нужно обработать самим - kkmserver не будет повторно ставить команду на выполнение на другой ККТ при ошибке.
Возможна такая ситуация, что бумага кончилась в конце чека, чек ушел в ОФД, но ПО считает его недопечатанным с ошибкой "нет бумаги", но с имеющимся номером ФД чека.
Если ошибка произойдет после регистрации чека (при печати, при получении данных чека) то kkmserver выдаст статус ОК, но в поле "Error" будет текст ошибки - т.е. такой случай можно обработать.

Ответить