Как исправить ошибку «Ключ защиты программы больше не доступен» при запуске Теста Гилева в 1С

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с платформой 1С:Предприятие 8.3 администраторы и разработчики иногда сталкиваются с парадоксальной ситуацией: на рабочем компьютере отлично функционируют все типовые и самописные конфигурации (как файловые, так и клиент-серверные), однако при попытке запустить стороннюю базу — например, популярный «Тест Гилева» (TPC-1C) — система внезапно завершает работу с критической ошибкой «Ключ защиты программы больше не доступен».

Особенно часто эта проблема проявляется на компьютерах, где установлен локальный однопользовательский USB-ключ HASP (например, маркировки H4 M1 ORGL8), а сама операционная система (например, Windows 10 LTSC) работает под высокой нагрузкой во время выполнения тестов производительности. Давайте подробно разберем, почему возникает этот сбой, как устроен механизм поиска лицензий в 1С и как раз и навсегда решить эту проблему.

Выясняем причину: почему падает именно Тест Гилева?

Главный вопрос, который возникает у пользователя: почему все остальные базы работают без проблем, а падает только база теста? Дело в том, что «Тест Гилева» обычно распространяется в виде готового файла выгрузки базы данных (формат .dt). При загрузке стороннего файла выгрузки в вашу локальную пустую базу переносится не только сама конфигурация и данные, но и история лицензирования (кэш защиты) предыдущего владельца базы.

Платформа 1С устроена таким образом, что она оптимизирует время запуска базы и в первую очередь пытается найти именно ту лицензию, которая использовалась при *последнем успешном сеансе* работы с этой базой. Если разработчики теста использовали сетевой HASP-ключ или определенные программные лицензии, информация об этом осталась в файле настроек базы данных. При запуске на вашем компьютере платформа 1С пытается «достучаться» до этих фантомных сетевых ключей (например, отправляя запросы через VPN-каналы в другие подсети, если они были прописаны ранее), полностью игнорируя ваш исправно работающий локальный USB-ключ.

В итоге, не дождавшись ответа от несуществующего удаленного ключа, платформа выдает ошибку защиты, игнорируя локальный HASP-ключ, вставленный прямо в USB-порт компьютера.

Анализируем алгоритм поиска лицензий платформой 1С 8.3

Чтобы лучше понимать поведение системы, проанализируем строгую последовательность, в которой платформа 1С пытается обнаружить лицензию при запуске:

  1. Повторное получение успешной лицензии: Опрос конкретного файла программной лицензии (файла с расширением .lic) или сетевого ключа HASP, параметры которого сохранены после последнего успешного запуска этой базы.
  2. Локальный поиск (на клиенте):
    • Сначала опрашиваются локальные программные лицензии в каталогах профиля пользователя и общих каталогах (%ProgramData%\1C\licenses, %AppData%\1C\licenses и т.д.).
    • Затем опрашивается локальный аппаратный USB-ключ серии ORGL8.
    • Только после этого запускается поиск сетевых ключей HASP в доступной локальной сети (этот процесс регулируется конфигурационным файлом nethasp.ini).
  3. Поиск на сервере 1С: Если база запущена в клиент-серверном варианте и на локальном компьютере лицензия не найдена, запрос на получение лицензии передается на сервер «1С:Предприятия».

При импорте стороннего .dt-файла шаг №1 заставляет платформу искать сетевой ключ по старому IP-адресу разработчиков. Нам необходимо принудительно заставить систему игнорировать сетевые настройки защиты и сразу переходить к опросу локального USB-ключа.

Способ 1. Тонкая настройка конфигурационного файла nethasp.ini

Самый надежный способ устранить эту ошибку — жестко запретить платформе искать сетевые ключи по сети. Для этого мы отредактируем файл nethasp.ini, который управляет поведением драйвера HASP License Manager.

Рассмотрим по шагам, как это сделать:

Шаг 1. Нам необходимо найти нужный файл nethasp.ini. Платформа 1С может считывать этот файл из нескольких мест. Иерархия поиска выглядит следующим образом:

  1. Каталог конкретной версии платформы (например, C:\Program Files\1cv8\8.3.17.1496\bin\conf\).
  2. Общий каталог платформы C:\Program Files\1cv8\conf\.
  3. Персональный каталог пользователя (%LocalAppData%\1C\1cv8\conf\).

Рекомендуется вносить изменения в общий файл в папке Program Files, чтобы настройки применились для всех версий платформы и всех пользователей системы.

Шаг 2. Откройте файл nethasp.ini с помощью текстового редактора (например, Блокнота) от имени Администратора.

Шаг 3. Найдите секцию [NH_COMMON] и отключите неиспользуемые сетевые протоколы. Для того чтобы платформа перестала сканировать сеть и сразу перешла к поиску локального USB-ключа, приведите настройки к следующему виду:


[NH_COMMON]
NH_IPX = Disabled      ; Отключаем протокол IPX
NH_NETBIOS = Disabled  ; Отключаем протокол NETBIOS
NH_TCPIP = Disabled    ; Отключаем протокол TCP/IP для сетевого поиска

Указав параметр NH_TCPIP = Disabled, мы полностью запрещаем платформе тратить время на широковещательные (Broadcast) запросы в сеть и попытки связаться с менеджерами лицензий по VPN-каналам. После сохранения изменений перезапустите 1С. Платформа мгновенно подхватит ваш локальный USB-ключ ORGL8.

Способ 2. Очистка кэша лицензий и сброс истории ключей базы

Если вы не хотите вносить глобальные изменения в nethasp.ini, мы можем очистить «историю лицензирования» конкретно для базы Теста Гилева. Рассмотрим несколько практических вариантов выполнения этой задачи.

Вариант А. Выгрузка и загрузка конфигурации (метод очистки файлов базы)

Этот метод позволяет полностью сбросить накопленный кэш настроек базы данных:

  1. Запустите базу Теста Гилева в режиме Конфигуратор.
  2. В главном меню выберите пункт Конфигурация -> Выгрузить конфигурацию в файлы... и укажите пустую папку на диске.
  3. После завершения процесса выберите пункт Конфигурация -> Загрузить конфигурацию из файлов... и выберите ту же папку.
  4. Выполните обновление конфигурации базы данных (клавиша F7).

Этот процесс перезаписывает внутреннюю структуру файлов конфигурации и очищает сохраненные данные о предыдущих сетевых ключах.

Вариант Б. Пересоздание подключения в списке баз

Иногда решить проблему помогает простое удаление базы из списка запуска 1С. Закройте программу, удалите базу Теста Гилева из списка, а затем добавьте её заново под тем же путем к папке. Это очистит локальный кэш подключений платформы, хранящийся в файле 1cv8conn.plist в каталоге пользователя AppData.

Вариант В. Сброс настроек лицензирования для клиент-серверной базы (SQL)

Если вы развернули тест на SQL-сервере (MS SQL или PostgreSQL) и столкнулись с аналогичной проблемой, информацию о старых лицензиях можно удалить напрямую из таблицы параметров базы данных. Для этого выполните следующий SQL-запрос к вашей базе данных в СУБД:


UPDATE Files 
SET BinaryData = '' 
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'

Этот запрос обнуляет бинарные данные файла настроек лицензий (.pfl), хранящегося внутри таблицы СУБД, заставляя платформу при следующем запуске искать доступные ключи с нуля.

Способ 3. Проверка аппаратного фактора и энергосбережения USB в Windows 10

Поскольку «Тест Гилева» предназначен для создания максимальной нагрузки на процессор, дисковую подсистему и оперативную память компьютера, во время его выполнения нагрузка на материнскую плату резко возрастает. На операционных системах семейства Windows 10 (особенно редакций Enterprise и LTSC) это может спровоцировать кратковременное отключение питания USB-портов из-за механизмов энергосбережения.

Для ключа HASP даже микросекундная потеря питания означает «отключение» защиты, что мгновенно приводит к падению теста с ошибкой «Ключ защиты программы больше не доступен».

Решим эту проблему по шагам:

  1. Откройте классическую Панель управления Windows и перейдите в раздел Электропитание.
  2. Нажмите ссылку Настройка схемы электропитания рядом с вашей активной схемой (например, "Высокая производительность").
  3. В открывшемся окне нажмите Изменить дополнительные параметры питания.
  4. В списке параметров найдите ветку Параметры USB -> Параметр временного отключения USB-порта (USB selective suspend).
  5. Установите значение этого параметра в положение Запрещено (Disabled) как при работе от сети, так и от батареи (для ноутбуков).
  6. Нажмите Применить и ОК.

После отключения этой функции Windows больше не будет снижать напряжение на USB-портах во время пиковых вычислительных нагрузок Теста Гилева, и ваш локальный ключ HASP будет работать стабильно.

← На главную