3 июл. 2008 г.

1Cv7.7 + HASP HOWTO

1Cv7.7 вообще-то говоря должна работать через аутенфикацию с помощью HASP-ключа. Да, существуют так называемые "отученные" от проверки наличия ключа дистрибутивы, и даже, вроде как , сама 1С позволяет. а иногда и рекомендует работать именно с такими версиями (при наличии каких либо проблем в работе). Однако, это и не Ъ и незаконно =). Если все лицензионно чисто, и используется win-система в качестве ОС, то проблем, естественно, никаких. С никсами все несколько иначе ;)...
Сегодня на повестке дня - работа 1С в окружении WINE@Etersoft на каком-нибудь дистрибутиве linux. В данном примере производится настройка локальной версии 1С на машине под управлением kUbuntu-8.04.
Считаем, что 1С-ка, WINE@Etersoft-1.0.9 куплены и установлены. Ключик HASP'a имеется в виде LPT-девайса (LPT HASP4 M4). Для начала требуется установить haspd - демон, который будет обслуживать хасп-запросы по сети (менеджер лицензий hasplm, слушает 475 udp-порт) и локально (winehasp, слушает UDP 2790), а также обеспечивать работу с ядром (модули aksparlnx, aksusbd, skeyd, usbsentinel - для разных типов ключей). Сей пакет можно заказать у Etersoft'a в личном кабинете пользователя для любого linux-дистрибутива. Получив оный, а также пакет с модулями, устанавливаем...
dpkg -i haspd_2.0-1_i386.deb haspd-modules_2.0-1_i386.deb
dpkg при установке сам пропишет haspd в автозагрузку и подгрузит необходимые модули.
Проверяем:
/etc/init.d/haspd status
Hardware protection keys support bundle. Etersoft (c) 2008
: haspd.init,v 1.113 2008/03/26 11:05:12 lav Exp $
Aladdin HASP 4/HL driver status:
-e kernel module aksparlnx is loaded
-e aksusbd is running
-e winehasp is running
-e hasplm is running
Daemon version: 1.8.1 - key API (USB) version: 3.85, key API (parallel driver) version: 3.86
Smartkey 3 USB/LPT driver status:
-e skeyd is stopped
SafeNet Sentinel status:
-e usbsentinel is stopped
-e SntlKeysSrvrlnx is stopped
Сие говорит о том, что загружены и отслеживаются компоненты для работы с HASP4 USB/LPT ключами, остальные (Smartkey, Sentinel) отключены. Однако, если получаем что то вроде
/etc/init.d/haspd status
Hardware protection keys support bundle. Etersoft (c) 2008
: haspd.init,v 1.113 2008/03/26 11:05:12 lav Exp $
Aladdin HASP 4/HL driver status:
kernel module aksparlnx is not loaded (WARNING: HASP LPT keys support is disabled!)
aksusbd is stopped
winehasp is stopped
hasplm is stopped
Smartkey 3 USB/LPT driver status:
skeyd is stopped
SafeNet Sentinel status:
usbsentinel is stopped
SntlKeysSrvrlnx is stopped
то выходит, что не слушается вообще ничего. ;) В этом случае требуется скомпилить модули самостоятельно. Для этого используем /etc/init.d/haspd build. Исходники ядра должны быть установлены. В [k]Ubintu/Debian это пакет linux-headers-*, где звездочка - это версия установленного ядра (uname -r). Build'анув нужные ядерные модули, подгружаем их через modprobe и снова проверяем /etc/init.d/haspd status.
Теперь посмотрим, видит ли ОС ключ, подключенный к LPT-порту. В случае локального ключа должна быть аналогичная нижеозначенной картинка:
eterkeytest --hasp
HASP:
HASP API VERSION: 8.0
HASP Local:
LPT HASP4 M4 (HASP4 is connected, key is HASP4 Net 5 licenses)
[4] 1C:Accountancy v7.7 (simple and network)
Если ключ сетевой, и кто-то уже (вот, редиски =)) по сети к нему пришел, то примерно так:
HASP Net at host (see NETHASP.INI) (press Ctrl-C to break):
..... -- active logins:16202
-- max logins: 53610
-- key type: HASP4 Net 774 licenses
-- activations: 48851
[4] 1C:Accountancy v7.7 (simple and network)
При таком раскладе нам остается только запустить 1С-ку =). Если ключ сетевой, то в файлике BIN/NETHASP.INI,что находится в каталоге, куда установлена 1С, указываем, где искать сетевой ключ. Вот так. к примеру:
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.1
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
Сразу стоит проверить, слушает ли менеджер лицензий и winehasp нужные порты...
netstat -ap | grep hasp
udp 0 0 *:475 *:* 12629/hasplm
udp 0 0 localhost:2790 *:* 12620/winehasp
Все нормально, можно подключаться ;) Если ключ тот, адрес сервера, в порт на котором он воткнут, корректен, и фаерволл сабжевые порты не блокирует, то все должно работать. Для проверки можно отключить iptables stop (iptables -F).
анное руководство рассчитано на версию 1С 7.7, работа с 8-ой серией не гарантируется. Дополнительная информация по настройке различных типов ключей защиты, а также основной источник материала для этих строчек находится в закромах Etersoft'a, то есть тут.