При модернизации аппаратного обеспечения или переносе баз данных 1С:Предприятие 7.7 на современные серверы часто возникает необходимость замены устаревших аппаратных ключей с интерфейсом LPT на актуальные USB-накопители защиты. В отраслевых решениях (например, в конфигурации «Подрядчик строительства» от компании «Импульс-ИВЦ» с защитой от Katran Soft) этот процесс нередко сопровождается ошибками загрузки компонентов защиты. Рассмотрим ситуацию, когда сервер защиты запущен, утилита тестирования видит ключ, но при старте 1С появляется сообщение о том, что версия библиотеки защиты устарела (требуется версия 3.2 или выше, а текущая определена как 2.3.x).
Проанализируем архитектуру защиты Katran Soft для платформы 1С 7.7, чтобы понять источник проблемы:
pskeylib.dll. В обновленном комплекте средств разработки (ветки 3.x и 4.x для USB-ключей) разработчик переименовал этот базовый модуль в PSEngine.dll. При этом программный код конфигурации 1С 7.7 или старая внешняя компонента PSAddIn.dll продолжают обращаться к файлу по прежнему имени — pskeylib.dll.Protect) в системные каталоги операционной системы. Если в каталоге C:\Windows\System32 или C:\Windows\SysWOW64 остался старый файл pskeylib.dll, платформа загружает именно его, игнорируя обновленные файлы из каталога информационной базы.Разберем по шагам правильный алгоритм обновления файлов защиты при замене ключа с LPT на сетевой USB:
C:\Windows\System32 (на 32-битных ОС) и C:\Windows\SysWOW64 (на 64-битных ОС) и удалим либо временно переместим в архив старые копии библиотек: pskeylib.dll, PSEngine.dll и PSAddIn.dll. Это исключит ситуацию, когда платформа подхватывает файл старой версии из системного кэша.PSAddIn.dll — внешняя компонента для взаимодействия 1С с защитой;PSEngine.dll — основное ядро драйвера защиты новой версии;PSNetSrv.exe — сетевая служба раздачи лицензий;PSTest.exe — утилита диагностики ключа.PSEngine.dll в pskeylib.dll (либо создадим его дубликат с этим именем). Поместим итоговые файлы pskeylib.dll (полученный из PSEngine.dll) и PSAddIn.dll в каталог BIN платформы 1С 7.7, а также в подкаталог Protect информационной базы..psd. Для каждого физического номера ключа USB поставляется индивидуальный файл дескриптора лицензии. Использование старого файла .psd от LPT-ключа вызовет ошибку поиска лицензии даже при правильно установленных библиотеках.Для сетевого красного ключа USB требуется корректно сконфигурировать серверную часть:
PSNetSrv.exe необходимо инсталлировать и запускать как службу Windows, а не в качестве фонового приложения под учетной записью пользователя. Это гарантирует бесперебойную доступность ключа при выходе администратора из сеанса.Обратим внимание на архитектурные особенности:
1cv7s.exe является исключительно 32-разрядным (x86). Соответственно, библиотеки PSAddIn.dll и pskeylib.dll, подключаемые к клиенту 1С, всегда должны быть 32-битными, даже если операционная система сервера или рабочей станции является 64-битной (x64). При этом низкоуровневый драйвер ключа защиты для самого USB-устройства на сервере должен соответствовать разрядности ОС.C:\Program Files (x86)\1Cv77\BIN на каждом рабочем месте, а не запускать их через сетевую папку базы данных.