Дистрибутив

Дистрибутив моб.кассы, моб.менеджера и моб.кассы представляет собой единую сборку, расположенную ftp://ftp.ucs.ru/rk7/other/tms/ . Использование того или иного ПО зависит от приобретенной лицензии и настроек ТМС.

  • Версия TMS-сервер 7.6 и выше поддерживается клиентом 3.4 и выше.
  • Версия TMS-сервер 7.5 и ниже поддерживается клиентом 3.3 и ниже.

Моб.касса работает только на smartPOS терминалах paymob или aqsi. Для активации режима оплаты (станет доступной операция «Оплатить») необходимо настроить соответствующие секции PAYMOB, AQSI, APPEX. Обязательно установить соответствие валют Мобильной кассы и валют RK7 (одна настройка для всех типов кассы) в секции [MOBCASSA].

Операционная система

iOS

  • rkmobwaiter2 - это нативное iOS-ое приложение
    • 2.9.х Apple снял приложение из AppleStore из-за проблем с совместимостью с iOS 13
    • 2.9.10 - распространяется вручную, переводя устройства в режим разработчика (ограниченный вариант инсталляций)
    • не развивающееся направление
  • rkmobwaiter3 - это приложение с HTML5 фронтом

Android

  • rkmobwaiter3 - МО/МК (имеет вертикальное расположение)
  • rkmobwaiter3Tab - не развивающееся направление
  • rkmobwaiter4 - МО (имеет вертикальное расположение)
    • выложили в google.play на закрытое тестирование: https://play.google.com/apps/testing/ru.ucs.rkmobwaiter4
    • кто хочет участвовать в закрытом тестировании, могут присылать адреса привязанные к google.play на смартфонах - добавим в список бета-тестировщика

Порты

На объекте должны быть открыты.

  • для генерации лицензии
  • для работы с сервером проверки лицензии
  • для работы моб. приложения с ТМС
    • tcp порт основного соединения, по умолчанию: 610
    • tcp порт дополнительное соединение, по умолчанию: -1 (609)
      • при неудачной попытке подключиться по вспомогательному порту по tcp -1 (609) можно воспользоваться прежней схемой на udp: +1 (611) и +2 (612)
      • для этого ввести код пользователя 999999 и нажать ввод, в появившемся диалоговом окне "Терминал вне зоны видимости по TCP. Перейти на прежний канал UDP?" нажать Ок

По основному порту между терминалом и ТМС ведется передача данных, от которых зависит работа с заказом:

  • обновление справочников
  • создание заказа
  • редактирование заказа
  • расчет заказа
  • сохранение факта оплаты заказа

По дополнительному порту передаются:

  • логи терминала
  • сообщения
    • сообщения от rk7 для авторизованного пользователя
    • с кухонной системы о готовности блюд
    • номер текущей смены, для проверки ее закрытия на стороне кассы r_keeper
    • и прочее

Сессии пользователя на терминале

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

Повторная авторизация прежнего пользователя на текущем терминала (например, в случае аварийного выключения терминала) при этом пройдет успешно.
Сессия закрывается при вызове пункта меню "Закрыть сессию". Функция доступна при пустом заказе, при нажатии на дискетке.
Будет задан вопрос "Начать новую сессию?" и при положительном ответе выйдет в окно авторизации.

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

Автоматическое закрытие сессии по истечении времени отсутствует. При этом есть принудительное закрытие всех сессий при закрытии общей смены r_keeper.

В отобразившемся подменю выбрать “Начать закрытие общей смены”.
При этом на r_keeper будет отправлена команда закрытия общей смены.
Процесс закрытия может быть продолжительным и зависит от количества оставшихся открытых заказов, настроек и конфигурации системы.
Если закрытие осуществляется с терминала, то печать Z-отчет и сверка итогов банковского терминала вызываются сразу.
После чего происходит закрытие сессии и повторный вход блокируется до закрытия смены.
После изменения номера смены в r_keeper, ТМС разрешит вход пользователю. Смена r_keeper при этом не открывается (она открывается при первом пробитии чека).

Если закрытие смены идет через r_keeper, то по факту закрытия смены в r_keeper производится принудительное закрытие сессии, с последующим вызовом Z-отчета и сверки итогов.
Подробнее читайте в документации п.9 "Закрытие смены на Мобильной кассе".

Настройка tms7.ini


настройки для режима table service (mobile waiter и mobile manager)

настройки для режима fast food (mobile waiter и mobile manager)

настройки при работе на smartPOS терминалах (mobile cashdesk)



SVCNAMEИмя службы, при запуске ТМС сервисом



Port

Основной TCP порт подключения (по умолчанию: 610).

Вспомогательный TCP порт -1 (по умолчанию: 609). В случае неудачной попытке подключиться по вспомогательному порту, воспользоваться прежней схемой на UDP +1 и +2 (по умолчанию: 611 и 612для этого ввести код пользователя 999999




ReadBufSize

Размер буфера в байтах, используется при чтении данных на ТМС. Принимает значения от 5МБ до 100МБ (по умолчанию: 5000000)




SortOrdersBy

Сортировка столов в списке заказов

  • 0 – без сортировки (по умолчанию)

  • 1 – сортировать по имени стола (лексикографический порядок: А>а, сырный>сыр)




UseSelfRegistration

Использование права «Может регистрировать сам себя» (для mobile cashdesk право проверяется независимо от данной настройки)

  • 0 - отключает работу с правом «Может регистрировать сам себя». Право не будет отрабатывать, в принципе, и дополнительная регистрация будет необходима (по умолчанию).
  • 1 - включает работу с правом «Может регистрировать сам себя». Право будет отрабатывать в соответствии с настройками в менеджерской rk7



PackOnRecv

Паковать заказ на ТМС при получении от клиента и перед сохранением в rk7

  • 0 - заказ не изменяется (по умолчанию)
  • 1 - одинаковые блюда объединяются (кол-во увеличивается, а дублирующие удаляются), с учетом курса подач и мест (если они разные, то блюда не объединяются)

[LOG]





LogPathПуть к каталогу логирования. Если не задан, то файлы логов сохраняются в каталог приложения



SaveTruncLog

Режим ведения логов

  • 0 - перезапись файла-лога (по умолчанию)
  • 1 - сохранение истории логов, с созданием новых фалов с суффиксами фиксирующими дату и время создания (например, 18.06.2020 02:58:51 - TMS7200618_025851.LOG)



TruncLogSizeПредельный размер файла в байтах от 1кБ до 1ГБ (по умолчанию 10МБ: 10000000).



ClearTMPMinВремя в часах, используется при сохранении служебных временных файлов в каталоге TMP (по умолчанию: 1).

[SORTMENU]





SortBy

Сортировка меню и модификаторов при формировании заказа

  • 0 - нет сортировки (по умолчанию)

  • 1 - сортировка по коду (по возрастанию)

  • 2 - сортировка по алфавиту (лексикографический порядок: А>а, сырный>сыр)

[ALTNAME]





Use

Отображение названия блюд

  • при отсутствии параметра или его не заполнении - читается обычное название блюда (по умолчанию)

  • AltName - читается альтернативное название блюда

    • если оно пустое, то используется обычное название блюда

  • ShortName - читается короткое название блюда

    • если оно пустое, то используется обычное название блюда

    • если текст больше 60 символов, то печатается "no name"

  • AltShortName - читается альтернативное короткое название блюда

    • если оно пустое, то используется обычное название блюда

    • если текст больше 60 символов, то печатается "no name"

[RK7SERV]





DefGuestsTypeID

Идентификатор Типа гостей из rk7. Имеет приоритет над DefGuestsTypeCode.
Обязателен к заполнению при включенном параметре «Обязательное свойство» в Редакторе RK7 для Типа гостей.




DefGuestsTypeCode

Код Типа гостей из rk7.
Обязателен к заполнению при включенном параметре «Обязательное свойство» в Редакторе RK7 для Типа гостей.




DefOrderTypeID

Идентификатор типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. 

Имеет приоритет над [RK7SERV]/DefOrderTypeCode




DefOrderTypeCode

Код типа заказа по умолчанию (для заказа будет устанавливаться автоматически)




HideTables

  • N – не будут отображаться столы, начиная с указанного номера (N- код стола в менеджерской RK7)

  • N-M - не будут отображаться столы из заданного интервала (N-код первого стола из интервала, M – код последнего стола из интервала)

[EXTSAVE]





Dir

Переключение режима работы

table service - при отсутствии значения или самого параметра

fast food - присутствие заполненного параметра, например, Dir=1




DefOrderTypeID

Идентификатор типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. 

Имеет приоритет над [EXTSAVE]/DefOrderTypeCode и [RK7SERV]/DefOrderTypeID




DefOrderTypeCode

Код типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении.

Имеет приоритет над [RK7SERV]/DefOrderTypeCode

[APUSH]





Use

Использование PUSH уведомлений на Android

  • 0 - не использовать (по умолчанию)
  • 1 - использовать



KeepAlive

Время в секундах (по умолчанию: 600), через которое при отсутствии информации об активности данного приложения (т.е. в зоне видимости не было никакой активности по передачи данных), данное приложение будет исключено из очереди проверки наличия непрочитанных сообщений и отправки PUSH-уведомлений.




CheckInterval

Интервал в секундах (по умолчанию: 5) для проверки наличия новых сообщений

[DRAFTTODO]





ActiveCourseCode

Код курса порядка подачи. При использовании данной настройки, если заказ или сессия заказа были использованы без какого-либо порядка подач, то после сохранения заказа, система автоматически присвоит указанный порядок подачи.
Используется в случае, если работа с заказом без порядков подачи невозможна (например, при использовании сторонних приложений)

[MOBCASSA]





DID

Идентификатор сотрудника, под учетной записью которого производится удаление




DPWD

Пароль сотрудника, под учетной записью которого производится удаление




CurTitle<n>

Символ <n> заменяется номером, например, CurTitle0 или CurTitle5
Идентификатор карты, получаемый от банковского ядра при оплате картой. Нескольким валютам терминала может соответствовать одна валюта из rk7.
Значение выбирается и списка:

  • CASH - Наличные

  • Visa Credit - VISA

  • MasterCard - MasterCard

  • MIR Classic CRD - МИР

  • Maestro - Maestro

  • Unknown Card - не соответствует ни одному из вышеперечисленных




CurIdent<n>

идентификатор валюты rk7, соответствующий валюте оплаты, где <n> - номер параметра




PayQueueSize

макс. значение оплаченных заказов, находящихся в очереди на отправку на ТМС

может принимать значение от 0 (по умолчанию) до 10 (в случае указания других значений, устанавливается ближайшее к границе значение)




OrderTypeID<n>

Символ <n> заменяется номером, например, OrderTypeID0 или OrderTypeID5

Идентификатор типа заказа rk7




OrderTypeHeader<n>

Текст печатаемый в Header, для типа заказа указанного в параметре OrderTypeID<n>

В случае фиксации имени файла, распечатываться будет текст из файла. Например, OrderTypeHeader0=header.txt

При печати большого текст можно использовать пустую строку с тэгом <br>, для разделения блоков отправки на печать.




OrderTypeDishReceipt<n>

Разрешение на печать состава блюд, для типа заказа указанного в параметре OrderTypeID<n>

Для комбо-блюда состав блюд берется из блюд, составляющих комбо-блюдо.

Повторяющиеся блюда не дублируют информацию при распечатке состава блюд.

[FASTCHECKMOBCASSA]





TableCode

Код стола, от имени которого будет создаваться заказ на кассовом сервере




DefOrderTypeID

Идентификатор типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении. 

Имеет приоритет над [FASTCHECKMOBCASSA]/DefOrderTypeCode и [RK7SERV]/DefOrderTypeID




DefOrderTypeCode

Код типа заказа. На ТМС устанавливается автоматически при отсутствии типа заказа в передаваемых с моб.приложения данных (кассир/официант не выбрал вручную тип заказа в моб.приложении). Данный параметр не влияет на отображение списка типов заказа на моб.приложении.

Имеет приоритет над [RK7SERV]/DefOrderTypeCode




SavePrevOrdType

Сохранение в ТМС типа заказа от предыдущего выбора, при получении заказа без указания его типа:

  • 1 - ТМС подставит тип заказа от предыдущего заказа

  • 0 - ТМС вернет ошибку в моб.приложение о необходимости заполнить тип заказа вручную




DefCategCode





UseSeqNum

использование номера эл.очереди: 1 - включено, 0 - выключено

String(SeqNumPref) + String( Integer( ( Longint((CashSrvId and $ffff) shl 16) or Longint(SeqNum mod 10000)) mod 100) )




CashSrvId

идентификатор кассового сервера для расчета номера эл.очереди




SeqNumPref

префикс номера для расчета номера эл.очереди




UseRK7CashToPay

использование режима оплаты на кассе: 1 - включено, 0 - выключено




DeleteReasonCode

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

[PAYMOB]





UseToPay

режим оплаты на paymob: 1 - включен, 0 - выключен




UseCash

использование наличных средств на терминале (кнопка "Наличные" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать




UseCard

использование банковский карт на терминале (кнопка "Карты" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать




ETDFiscPrint





ETDFFPayOff





PreCheckHeader

"Ресторан Тест"




PreCheckFooter

"Вознаграждение официанту приветствуется, но всегда остается на Ваше усмотрение. Ждем Вас снова!"




PaperForwardHeader

"Была обнаружена проблема с печатью/принтером, произведена печать последнего чека/буфера, ниже распечатана копия слипа и фискал.чек"




RK7CashHeader

Header-строка на печатном чеке: "Код для предъявления на кассе"




RK7CashFooter

Footer-строка на печатном чеке: "Предъявите код на кассе кассиру при оплате заказа"




UseCloseCommonShift





bankLogin

Логин для подключения к серверу PayMob




bankPassword

Пароль для подключения к серверу PayMob




TaxScheme

режим СНО (при отсутствии значения: используется общая СНО)

  • 0 - берется из настроек терминала (передаваться из МК не будет)
  • 1 - Общая (по умолчанию)
  • 2 - Упрощенная доход
  • 4 - Упрощенная доход минус расход
  • 8 - Единый налог на вмененный доход
  • 16 - Единый сельскохозяйственный налог
  • 32 - Патентная система налогообложения

[AQSI]





UseToPay

режим оплаты на paymob: 1 - включен, 0 - выключен




UseCash

использование наличных средств на терминале (кнопка "Наличные" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать




UseCard

использование банковский карт на терминале (кнопка "Карты" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать




RK7CashHeader

Header-строка на печатном чеке: "Код для предъявления на кассе"




RK7CashFooter

Footer-строка на печатном чеке: "Предъявите код на кассе кассиру при оплате заказа"




TaxScheme

идентификатор схемы (выдается заказчику поставщиком кассы)




UseSber

Использование ядра Сбербанка: 1 - включен, 0 - выключен

[APPEX]





UseToPay

режим оплаты на paymob: 1 - включен, 0 - выключен




UseCash

использование наличных средств на терминале (кнопка "Наличные" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать




UseCard

использование банковский карт на терминале (кнопка "Карты" в окне оплаты): 1 - использовать (по умолчанию), 0 - не использовать




RK7CashHeader

Header-строка на печатном чеке: "Код для предъявления на кассе"




RK7CashFooter

Footer-строка на печатном чеке: "Предъявите код на кассе кассиру при оплате заказа"




CashierCode

Логин для подключения к серверу Appex - выдается заказчику (один на все кассы) поставщиком кассы APPEX




CashierPassword

Пароль для подключения к серверу Appex - выдается заказчику (один на все кассы) поставщиком кассы APPEX

Логирование

Для анализа ситуации необходимо запросить с объекта

  • сценарий воспроизведения ситуации
    • описание действий
    • скриншоты
    • видео 
  • файлы настройки
    • tms7.ini
    • mwnsettings7.xml
  • файлы логов
    • tms7.log
    • tms7_dev_*.log
    • tms7_mc_*.log
    • tms7_visibility*.log
    • ZIP_*.zip
  • архив папки с файлами xml интерфейса
    • XMLs (от ТМС)
    • xml_log (от rk7)
  • логи от rk7
    • midsrv.stk
    • логи xml интерфейса

Ситуации, возникающие на объектах

Водите в зону уверенной связиLink to Водите в зону уверенной связи

Возможные причины:

  1. выключен ТМС
  2. открытый порт на ТМС отличается от настройки порта на терминале
  3. порты в настройках ТМС и терминала совпадаю, но порт физически не доступны (не открыт)
  4. терминал заснул и после пробуждения не поднялся wifi или защищенный канал связи

Применение аппаратных клавиш AndroidLink to Применение аппаратных клавиш Android

Использование аппаратных клавиш на терминале, приводило к ошибочным ситуациям. Например, в окне оплаты кассиры переключались и оплачивали через приложение Сбербанка или замечены случаю дублирования заказа на VDU

Возможность заблокировать клавиши появиться при переходе с crosswalk на встроенный webview при использовании Android 7 и выше. Поэтому на текущий момент (paymob на Android 5) ведется логирование переключений и очистка сформированного в МК заказа. Кассир вернувшись в приложение не сможет повторно отправить его.

Есть информация, что paymob готовит обновление устройства: переходят на аналогичное aqsi оборудование с Android 7.

Заряд аккумулятораLink to Заряд аккумулятора

В логах tms7_dev_* фиксируется информация о заряде аккумулятора, например

2 27.07 12:33:51 BATTERY_POURCENTAGE / 27.07 12:33:38: info:"69"

На практике замечено, что при низком заряде аккумулятора (менее 20%), устройство может во время печати выключиться.

Рекомендации по зарядке от paymob

Ставить устройство на зарядку после рабочей смены, чтобы утром начать использовать его со 100% зарядом. Возможна подзарядка в течении дня.
Не прибегайте к использованию обычного USB кабеля для смартфона. Пользуйтесь для зарядки проводом из поставляемого комплекта, так как он рассчитан по мощности.
При частом использовании порты разбиваются, поэтому лучше использовать магнитные провода или в случае если в ресторане больше 1 устройства - приобрести мини-док.
Не оставлять устройство под прямыми лучами солнца - чревато вздутием аккумулятора. Тем более в процессе зарядки: нагрев от солнца+нагрев от зарядки.