Как исправить ошибку несоответствия версии библиотеки защиты pskeylib.dll при переходе на USB-ключ в 1С 7.7?

Системный администратор 1С v7.7 Промышленность, строительство и АПК
← На главную

При модернизации аппаратного обеспечения или переносе баз данных 1С:Предприятие 7.7 на современные серверы часто возникает необходимость замены устаревших аппаратных ключей с интерфейсом LPT на актуальные USB-накопители защиты. В отраслевых решениях (например, в конфигурации «Подрядчик строительства» от компании «Импульс-ИВЦ» с защитой от Katran Soft) этот процесс нередко сопровождается ошибками загрузки компонентов защиты. Рассмотрим ситуацию, когда сервер защиты запущен, утилита тестирования видит ключ, но при старте 1С появляется сообщение о том, что версия библиотеки защиты устарела (требуется версия 3.2 или выше, а текущая определена как 2.3.x).

Причины возникновения конфликта библиотек

Проанализируем архитектуру защиты Katran Soft для платформы 1С 7.7, чтобы понять источник проблемы:

  1. Смена внутреннего наименования модулей в SDK: В ранних версиях защиты (ветка 2.x, поставлявшаяся преимущественно с LPT-ключами) низкоуровневая библиотека взаимодействия с аппаратным ключом называлась pskeylib.dll. В обновленном комплекте средств разработки (ветки 3.x и 4.x для USB-ключей) разработчик переименовал этот базовый модуль в PSEngine.dll. При этом программный код конфигурации 1С 7.7 или старая внешняя компонента PSAddIn.dll продолжают обращаться к файлу по прежнему имени — pskeylib.dll.
  2. Конфликт системных файлов Windows: Типовые модули инициализации защиты в конфигурациях 1С 7.7 при запуске копируют DLL-файлы из служебной папки базы данных (обычно Protect) в системные каталоги операционной системы. Если в каталоге C:\Windows\System32 или C:\Windows\SysWOW64 остался старый файл pskeylib.dll, платформа загружает именно его, игнорируя обновленные файлы из каталога информационной базы.

Пошаговое решение: приведение файлов защиты в соответствие

Разберем по шагам правильный алгоритм обновления файлов защиты при замене ключа с LPT на сетевой USB:

  1. Очистим системные каталоги операционной системы: Прежде чем устанавливать новые файлы, закроем все запущенные сеансы 1С и остановим службу сервера защиты. Перейдем в папки C:\Windows\System32 (на 32-битных ОС) и C:\Windows\SysWOW64 (на 64-битных ОС) и удалим либо временно переместим в архив старые копии библиотек: pskeylib.dll, PSEngine.dll и PSAddIn.dll. Это исключит ситуацию, когда платформа подхватывает файл старой версии из системного кэша.
  2. Подготовим обновленный комплект файлов: От разработчиков защиты поставляется свежий пакет файлов:
    • PSAddIn.dll — внешняя компонента для взаимодействия 1С с защитой;
    • PSEngine.dll — основное ядро драйвера защиты новой версии;
    • PSNetSrv.exe — сетевая служба раздачи лицензий;
    • PSTest.exe — утилита диагностики ключа.
  3. Выполним переименование библиотеки ядра: Так как конфигурация 1С 7.7 ожидает файл со старым именем, переименуем полученный от разработчиков файл PSEngine.dll в pskeylib.dll (либо создадим его дубликат с этим именем). Поместим итоговые файлы pskeylib.dll (полученный из PSEngine.dll) и PSAddIn.dll в каталог BIN платформы 1С 7.7, а также в подкаталог Protect информационной базы.
  4. Проверим файлы лицензий: Убедимся, что в каталоге базы данных находится актуальный файл описания ключа с расширением .psd. Для каждого физического номера ключа USB поставляется индивидуальный файл дескриптора лицензии. Использование старого файла .psd от LPT-ключа вызовет ошибку поиска лицензии даже при правильно установленных библиотеках.

Настройка сетевой службы защиты и сетевого экрана

Для сетевого красного ключа USB требуется корректно сконфигурировать серверную часть:

  1. Запуск в режиме системной службы: Исполняемый файл PSNetSrv.exe необходимо инсталлировать и запускать как службу Windows, а не в качестве фонового приложения под учетной записью пользователя. Это гарантирует бесперебойную доступность ключа при выходе администратора из сеанса.
  2. Настройка правил сетевого экрана: Проверим доступность сетевых портов. Серверная служба Katran Soft использует сетевой протокол TCP/IP. В брандмауэре Windows на сервере, где физически установлен USB-ключ, создадим входящие правила для портов 3182 и 9099 (в зависимости от конкретной модификации сервера защиты).

Важные системные ограничения платформы 1С 7.7

Обратим внимание на архитектурные особенности:

  1. Разрядность компонентов: Исполняемый файл платформы 1cv7s.exe является исключительно 32-разрядным (x86). Соответственно, библиотеки PSAddIn.dll и pskeylib.dll, подключаемые к клиенту 1С, всегда должны быть 32-битными, даже если операционная система сервера или рабочей станции является 64-битной (x64). При этом низкоуровневый драйвер ключа защиты для самого USB-устройства на сервере должен соответствовать разрядности ОС.
  2. Локальное размещение внешних компонент: Чтобы избежать монопольной блокировки DLL-файлов первым вошедшим в систему пользователем, рекомендуется распространять библиотеки защиты локально в папку C:\Program Files (x86)\1Cv77\BIN на каждом рабочем месте, а не запускать их через сетевую папку базы данных.
← На главную