Вводная информация 

В статье пойдет речь об установке и настройке програмного принтсервера расширяющего возможности поддержки различных моделей принтеров в комплексе r-keeper 6. Принтсервер в RK6 представлен в двух вариантах:

  • В виде отдельного приложения - SPRED.EXE, работающего под управлением ОС Windows (32-bit) и использующего спулер печати самой ОС.
  • В виде дополнительной библиотеки - SPREDW.DLL для выделенного кассового сервера (NT-RKSERVER). Настраивается и работает начиная с 6.107 версии кассового ПО!!!

Принтсервер рекомендуется использовать для организации более гибкой (за счет широкой поддержки принтеров, которая фактически ограничена только наличием драйверов для данного принтера под ОС Windows), а так же, более  стабильной работы сервис-печати (за счет использования платформы ОС Windows и например, возможности запуска принтсервера в качестве службы.

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

Настройка принтеров

При использовании принтсервера необходимо учитывать тот момент, что все используемые принтеры должны быть определены в самой ОС Windows на том ПК где будет запускаться и работать принтсервер. Т.е. они должны быть доступны в разделе "Панель управления"\"Принтеры и факсы" и должна быть возмжность отправить тестовую печать на каждый из них из под ОС Windows. Также, они должны быть расшарены для сетевого использования:

  • Подключить принтер.
  • Установить драйвер идущий с ним в комплекте для ОС Windows.
  • Выполнить тестовую печать (например в свойствах самого принтера). Т.е. убедиться что он работает.
  • В свойствах принтера, сделать его доступным в сети и задать простое и понятное имя сетевого ресурса. Например: @BAR, @HOT, @COLD, @KUHNYA, @MUCHNOY и т.п.

Если у используемого принтера нет win-драйвера, можно попробовать установить самый простой и стандартный драйвер для печатающих устройств из состава самой ОС. Таким драйвером является Generic / Text Only. Т.е. при установке принтера отказываемся от автоматического определения оборудования и указываем драйвер вручную:

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

Настройка SPRED.EXE

1.  Для установки приложения необходимо скопировать содержимое директории \KACCA\SERVER\32-NT\JETDIREC\ дистрибутива кассы, или содержимое архива ftp://../r-keeper/versions/OTHER/spred401.7z в отдельный каталог, например, на менеджерском ПК  или на любом другом ПК лишь бы была возможность настроить связь с кассовым сервером.

2. Основной файл - SPRED.EXE, запускается с ключами (как и большинство остального ПО производства компании UCS):

/INSTALL     - Установить в качестве службы (рекомендуется).
/UNINSTALL   - Удаление службы.
/DESKTOP     - Запустить в качестве настольного приложения.

Дополнительно, в свойствах службы на закладке "Вход в систему" ("Log ON") должны быть установлены следующие параметры запуска:

  • С системной учетной записью (Local System account).
  • Разрешить взаимодействие с рабочим столом (Allow service to interact with desktop ), иначе не будет видна иконка приложения в системном трее, а значит нельзя будет открыть его графический интерфейс для визульного контроля и проверки выполненных настроек.

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

Примечание: запуск приложения с параметром  /UNINSTALL при запущеном сервисе не приведет сразу к удалению сервиса. При этом сервис перейдет в состояние "Отключен" ("Disable") и будет удален при следующей перезагрузке системы.

3. Определившись с параметрами запуска, необходимо настроить конфигурационный файл SPRED.INI (если он отсутствует в комплекте, то необходимо его создать). 

Конфигурационный файл - SPRED.INI

[Network]            - Раздел сетевых настроек.
Adapter=Find         - Номер сетевого адаптера для подключения к кассовому серверу.
SelfName=JETDIR      - Собственное NETBIOS-имя принтсервера, к которому будет обращаться кассовый сервер, для передачи пакетов на печать (Это же имя указывается в E_rest32, при настройке принтера). Чувствительно к регистру.
ServerName=RLSERV    - NETBIOS-имя кассового сервера от которого принтервер будет получать задания на печать.

[Printers]           - Раздел указания подключений ко всем используемым принтерам.
COM1=\\SRV\@BAR      - Указать подключение к существующему настроенному сервис-принтеру, через сетевое подключение.
COM2=\\SRV\@COLD     - Аналогично предыдущему параметру, описывается следующий принтер. 
COM7=\\SRV\@HOT      - Аналогично.
LPT2=Nul             - Аналогично.
...

Важно! В данном параметре название COMx или LPTx не имеет обычного смысла "порт", это просто идентификатор (значение / соответствие), по которому ориентируется приложение и кассовый сервер. Это же значение (COMx и т.п.) должно быть указано в поле "порт" при указании принтера в E_Rest32.exe (см. раздел "Настройка в Редакторе RK6").

[Log]                            - Раздел настроек записи лог-файла.
Path=С:\RK6\SPRED\SPRED_LOG.TXT  - Если указать путь и задать название файла, то будет писаться лог.
MaxSize=100000                   - максимальный размер лог-файла в байтах.

Настройка в Редакторе RK6 (E_Rest32.EXE)

4. В редакторе RK6 (E_Rest32.EXE) создать соответсвующее настройкам SPRED.INI количество принтеров и в свойствах каждого указать соответсвие параметрам из SPRED.INI. Например:

Принтеры описываются как работающие "Через сервер", в качестве станции указывается сетевое имя указанное в SPRED.INI в параметре "SelfName", (в нашем примере - JETDIR), в качестве порта указывается COM1..COM9 или LPT1..LPT8.

Примечание: Параметр "Аппарат" не важен, поскольку будет использоваться драйвер установленный в ОС.

Принтеры чеков и отчетов, так же могут быть настроены через принтсервер:

5. Описать потоки сервис-печати для станций стандартным образом.

6. После выполнения настроек в Редакторе RK6 не забыть обновить справочники на кассовом сервере (перезагрузить).

7. Запустить SPRED. В правом нижнем углу, на панели задач, должен появиться сине-зеленый значек с названием R-KeeperService Print Redirector:

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

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

SPRED.EXE подключится к кассовому серверу, будет забирать с него печать направленную на его имя и сбрасывать ее в соответствующие ресурсы. При этом с версии SPRED.EXE v4.01 используется спулер печати самой ОС Windows.

Возможные состояния запущенного приложения:

  • Правильная настройка - Статус всех настроек - ОК
  • Неправильно прописан параметр (номер адаптера, имена сервера или редиректора), либо после настроек не обновилась БД кассового сервера - статус отображаемых в окне настроек - "Undefined". Или не настроены (не правильно настроены) принтеры и потоки в Менеджерской RK6.

8. Проверить работу печати с кассы.

Настройка принтсервера через SPREDW.DLL для NT-RKSERVER 

Важно! Работало только на версии 6.107 (без доп.символов), на актуальных версиях ПО - не работает: http://www.tracker.ucs.ru:8080/redmine/issues/73122.

 В современных версиях кассового ПО RK6 появилась возможность использовать тот же функционал принтсервера используя не отдельное приложение (SPRED.EXE), а дополнительный модуль для NT-RKSERVER - SPREDW.DLL. Основной плюс такой реализации в том, что сеть для связи с кассовым сервером не используется вообще. Ну а минус, в том что нет окна состояния работающего принтсервера, как это реализовано в SPRED.EXE. 

1. Внутри каталога рабочего кассового сервера создать каталог \Extens  (Пример: С:\RK6\RKSERVER\EXTENS)

2. Скачать с фтп  ftp://.../r-keeper/versions/OTHER/spredw10.7z и распаковать в созданный каталог модуль - SPREDW.DLL и его конфигурационный файл SPREDW.INI.

3. Настроить конфигурационный файл SPREDW.INI (аналогично SPRED.INI, отличие только в отсутствии настроек сетевого подключения к кас.серверу).

Конфигурационный файл - SPREDW.INI

[Network]            - Раздел сетевых настроек.
SelfName=JETDI       - Собственное NETBIOS-имя принтсервера, к которому будет обращаться кассовый сервер, для передачи пакетов на печать (Это же имя указывается в E_rest32, при настройке принтера). Чувствительно к регистру.

[Printers]           - Раздел указания подключений ко всем используемым принтерам.
COM1=\\SRV\@BAR      - Указать подключение к существующему настроенному сервис-принтеру, через сетевое подключение.
COM2=\\SRV\@COLD     - Аналогично предыдущему параметру, описывается следующий принтер.
COM7=\\SRV\@HOT      - Аналогично.
LPT2=Nul             - Аналогично.
.................

[Log]                            - Раздел настроек записи лог-файла.
Path=С:\RK6\SPRED\SPREDW.TXT  - Если указать путь и задать название файла, то будет писаться лог.
MaxSize=100000                   - максимальный размер лог-файла в байтах.

4. Настройки самих принтеров и настройки в E_Rest32.exe аналогичны варианту со SPRED.EXE (смотри предудущие разделы статьи).

5. Запустить кассовый сервер и убедиться что модуль подгрузился и готов к работе:

6. Проверить работу печати с кассы.