Введение

Важно: Начиная с версии R-Keeper 7.5.Х прекращается поддержка кассового сервера (MIDSERV) под DOS.

Исполняемым файлом кассового сервера по-умолчанию является MIDSERV.EXE.

Конфигурационным файлом кассового сервера по-умолчанию является RKEEPER.INI.

При установки ПО из дистрибутива (архив на фтп в папке ftp://ftp.ucs.ru/rk7/versions/7_05_03/STANDALONES/) файл RKEEPER.INI нужно скопировать из папки \bin\win\ini\ в рабочую папку \bin\win\, где лежит MIDSERV.EXE.

При установки ПО из инсталлятора сервер с конфигурационным файлом лежат в папке [путь установки\имя экземпляра\Rk7MidServer].

Примечание: названия сервера и конфигурационного файла могут быть произвольными, но при этом необходимо помнить, что по-умолчанию сервер, если ему не указать какой ини-файл использовать, будет искать конфигурационный файл RKeeper.ini. Про использование других конфигурационных файлов читайте ниже в пункте "Запуск".

Лицензирование

Важно: кассовый сервер лицензируется. Лицензия привязана к полному коду объекта (9 цифр) и номеру ключа Guardant.

Перед тем как лицензировать сервер его необходимо создать в менеджерской станции в справочнике "Сервис - Станции и Устройства".

Примечание: в качестве примера ниже описан процесс лицензирования кассового сервера для объекта (ресторана) с полным кодом 199990039. Подразумевается, что на l.ucs.ru создан объект с кодом 199990039 и у него есть активная мастер-лицензия для ПО "RKeeper 7 Stations".

В менеджерской станции необходимо сделать следующее:

  • Прописать код корпорации (Настройки - Параметры - Установочные - Код предприятия - Число)  - рис.1;

Рис.1 - Код предприятия (=код корпорации)

  • Прописать код ресторана (свойство ресторана КОД) (рис.2) в соответствии с учетными данными для объекта с сайта l.ucs.ru;

Рис.2 - Код ресторана (=код объекта)

  • Выбрать ключ защиты (Лицензирование-общее -> Ключ защиты-Физический номер);

  • Сгенерировать запрос лицензии (пкм на значок кассового сервера -> действия) - рис.3;

Рис.3 - Генерация запроса лицензии для кассового сервера

  • Сгенерировать для данного запроса лицензию на сайте l.ucs.ru и внести в поле Лицензирование-кассовые станции -> Лицензионный ключ (рис.3);
  • Сохраниться

Запуск

Важно: Перед тем как запускать кассовый сервер его необходимо создать в менеджерской станции в справочнике "Сервис - Станции и Устройства" и пролицензировать.

Для запуска сервера необходимо сделать следующее:

  1. Создать сервер в менеджерской станции в справочнике "Сервис - Станции и Устройства", прописать ему уникальный сетевой ID, например MIDSRV3001, перевести в статус Активный и сохранить;
  2. Пролицензировать сервер;
  3. Прописать следующие параметры в RKeeper.ini в секции [Config]:
  • RefServer = RK7SRV         ;;  имя сервера справочников, к которому подключается данный кассовый сервер (равно параметру Server в RK7SRV.INI);
  • Client = MIDSRV3001         ;;  сестевой ID кассового сервера согласно пункту 1
  1. Запустить сервер.

Важно: первый запуск всегда выполнять в качестве приложения (с параметром /desktop). Также проверьте, чтобы запуск производился от имени администратора.

Кассовый сервер, так же как и сервер справочников можно запустить и как службу. Для этого используется параметр (/install).

После запуска сервера как приложения (midserv.exe /desktop)  в области уведомлений появится следующий значок 

Запуск нескольких серверов

Важно: каждому кассовому серверу, созданному в менеджерской станции, соответствует свой каталог с рабочей базой work.udb (путь к каталогу прописывается в параметре BasePath) и свой ini-файл с уникальным именем сервера.

Если планируется запустить несколько кассовых серверов, то возможны следующие варианты:

Вариант А  - запуск нескольких серверов с разными ini-файлами из одной папки \bin\win.

А.1. Запуск как приложений:

midserv.exe /ininame:rkeeper1.ini /desktop - запуск 1-го сервера
midserv.exe /ininame:rkeeper2.ini /desktop - запуск 2-го сервера

А.2. Установка службы:

midserv.exe /ininame:rkeeper1.ini /install - установка службы для 1-го сервера

midserv.exe /ininame:rkeeper2.ini /srvname:midserver2  /install - установка службы для 2-го сервера. Обязательно задать новое имя службы!

Обязательно в каждом ini-файле прописать уникальное имя лог-файла для каждого сервера (ERRORLOG = midsrv.stk)

Вариант Б - запуск каждого сервера из отдельной папки (копия папки \bin\win).

Б.1. Запуск как приложений:

c:\rk7\bin\win\midserv.exe /ininame:rkeeper.ini /desktop - запуск сервера
c:\rk7\bin\win2\midserv.exe /ininame:rkeeper2.ini /desktop - запуск 2-го сервера

Б.2. Установка службы:

c:\rk7\bin\win\midserv.exe /install - установка службы для 1-го сервера

c:\rk7\bin\win2\midserv.exe /srvname:midserver2  /install - установка службы для 2-го сервера. Обязательно задать новое имя службы!

Описание INI-файла кассового сервера

[Config] – основная секция

В случае сервера на кассе в этой же секции прописываются параметры кассы (см. [Config] для кассовой станции). 

CashServer = MIDSERVER - Сетевое имя кассового сервера

Client = MIDSERVER - То же самое (для совместимости).Сетевое имя кассового сервера

RefServer = RK7SRV – Сетевое имя сервера справочников

BasePath = ..\..\MIDBASE - путь к рабочей базе данных

Важно: Если кассовых серверов несколько, то для каждого кассового сервера должна быть своя уникальная папка и ее имя прописано в соответствующем ini-файле.

RECREATEBASE = 0 – при 1 пересоздаёт рабочую базу при запуске, при –1 не пересоздаёт даже при смене версии.

ArchivePath = (BasePath + ‘Archive\’) – путь к архиву чеков

InterfacePath – путь к интерфейсным DLL

TwoFilesMode = 0 – при 1 создаёт по 2 файла на коллекцию, переключая их. Повышается надёжность, но увеличивается время сохранения файлов. Если есть постоянный доступ к серверу справочников, то 1 не имеет смысла.

ShortTimeout = 20000 – максимальное время (в миллисекундах) выполнения сетевой операции над одним элементом

LongTimeout = 100000 - максимальное время (в миллисекундах) выполнения сетевой операции над коллекцией

StartLang = .\midserv.rus – стартовый язык сервера касс, используется для отображения ошибок, возникающих до загрузки справочников («невозможно соединиться с сервером» и т. д.) после загрузки язык будет взят из группы параметров «Языковые Настройки».

KeepModules  = 0 – оставлять список модулей загруженным в памяти. Актуально только для касса+сервер. По умолчанию для касса+сервер = 0, для простого кассового сервера = 1. Если к касса+серверу планируется подключение по сети кассовых станций, необходимо выставить в 1.
 

FileSyncPath= (BasePath + 'Incoming\') – путь к папке, откуда надо забирать синхронизационные файлы

ERRORLOG = midsrv.stk – журнал ошибок
ErrorLogSize = 1048576 – размер журнала ошибок

AlwaysZOnCommonClose = 0 – Надо ли печатать Z отчёт при закрытии общей смены даже если не было продаж

DebugMessages = () – список кодов отладочных сообщений через запятую

WarningDiskFree=209715200 - при каком максимальном свободном месте на диске надо выдавать сообщение о нехватке свободного места на диске
 
PollEvents=0 - надо ли вместо синхронизации по событиям периодически запрашивать у сервера верхнего уровня список произошедших изменений справочников. Для того, чтобы сервер справочников хранил эти изменения в его .ini файле надо включить параметр EventCachePath
 
PollRepeatTime=60 - периодичность (в секундах) запроса списка изменений, при Pollevents=1
 
Для решения проблемы c дублированием paybindings.uni предусмотрены следующие настройки:
 
NoUdbPacketMode - отключить пакетный режим при записи в work.udb. Сделано в 7.5.5.095, 7.5.6.037, 7.5.7.011
 
NoReuseUNI - отключить повторное использование UNI, освободившихся при расчете заказа. Сделано в 7.5.5.095, 7.5.6.037, 7.5.7.011
 
ExceptOnCheckUNI - отключить прерывания ПО и записать собития в лог (ошибка 2220)
 
[NewBaseGenerators] – секция с начальными значениями последовательностей (генераторов) для новой базы

Важно: Эта секция используется только при создании новой базы.

Можно задать начальные значения для следующих последовательностей (генераторов):

OpLogGen = 0 – внутренний номер записи в журнале операций (таблица OperationLog)

SendFile = 0 – начальный номер файла при архивировании файла, отправленного на сервер справочников (если такой уже есть, будет увеличен)

VisitGen = 1000 – младшие 2 байта внутреннего номера визита (старшие 2 байта заполняются из даты)

CheckGen = 100000 – номер чека (поле CheckNum)

CashInOutGen = 0 – внутренний номер (поле UNI) документов внесения/выдачи, внутренний номер счёта-фактуры

InvoiceGen = 0 – номер счёта-фактуры (поле InvoiceNum)

KDSDishIDGen = 1 – идентификатор строки-блюда для KDS (поле KDSIdent)

OrderSessGen = 1 – глобальный идентификатор пакета (поле UniqueID)

PrintNumberGen = 0 – печатный номер чека, если не используются фискальные регистраторы или фискальная память и если параметр «CommonPrintNumber» выставлен в True

CommonShiftNumber = N  - номер, с которого должна начинаться нумерация смен. Параметр актуален когда необходимо пересоздать кассовый сервер, но продолжить нумерацию смен. Протестировано на 7.5.4.174.

[NETKERN]  

Protocols=TCPSOC.dll;localnet.dll

[TCPSOC]

PORT=2350   ;;  порт для входящих соединений

[TCPDNS]

;;Не обязательно, но если задать будет коннектиться быстрее, то же для кассы
;;Иногда необходимо, если не проходят broadcast сообщения или связь с сервером верхнего уровня осуществляется через интернет
TEST_RK7SRV=127.0.0.1:3639

[UPDATE]  секция обновления сервера

NoUpdate = "1"      ;; Не обновлять этот модуль и его зависимые объекты (dll, и т.д.).

Синхронизация данных

В свойствах кассового сервера на менеджерской станции есть параметры, отвечающие за синхронизацию данных (сверху-вниз и снизу-вверх).

1. Автоматическое обновление - обновлять данное приложение автоматически
2. Online данные продаж - передавать online данные о продажах на уровень выше
3. Данные закрытых смен - передавать данные о продажах за закрытые смены на уровень выше
4. Справочники - обновлять данные справочников на данном сервере
5. БД модулей - обновлять БД приложений (необходимо для обновления клиентов уровнем ниже)

На данный момент опции "Автоматическое обновление" и "БД модулей", а так же "Данные закрытых смен" и "Online данные продажи" сделаны зависимыми (т. е. если нет одного - нет другого, и наоборот). В будущих версиях, может, будут работать и по отдельности. Старый флаг "OnLine" ("Синхронизация") пока так же оставлен, он отключает все виды синхронизации сразу, даже если новые флаги установлены.

Если необходимо отклюить On-Line передачу чеков, но оставить закачку данных после закрытия общей смены, то пока есть три способа:

  1. Глобально: отключить параметр "OnLine сбор данных".
  2. Для кассового сервера: задать интервал отправки online данных в 00:00.
  3. Для сервера отчетов: задать интервал выгрузки online данных в 00:00.

Важно: Начиная с версии 7.4.21.27 в свойствах кассового сервера появилось свойство "Проверять соединение", которое отвечает за вывод сообщения о потери связи кассового сервера с сервером верхнего уровня. По умолчанию эта проверка отключена.

Особенности настройки сервера на кассе

  • Под DOS запускать программу doscs.exe
  • Настройки в rkeeper.ini. см. Config – основная секция
  • В параметре PROTOCOLS секции [NETKERN] необходимо указать localnet.dll (кроме протокола, по которому будет связь с сервером справочников)
  • При настройке станций и устройств в менеджерской станции необходимо задать одинаковые(!) сетевые имена у группы станций и у станции.
  • Для использования Preload на станциях, подключающихся к doscs, необходимо выставить KeepModules=1