При работе с платформой 1С:Предприятие 8.3 администраторы и разработчики иногда сталкиваются с парадоксальной ситуацией: на рабочем компьютере отлично функционируют все типовые и самописные конфигурации (как файловые, так и клиент-серверные), однако при попытке запустить стороннюю базу — например, популярный «Тест Гилева» (TPC-1C) — система внезапно завершает работу с критической ошибкой «Ключ защиты программы больше не доступен».
Особенно часто эта проблема проявляется на компьютерах, где установлен локальный однопользовательский USB-ключ HASP (например, маркировки H4 M1 ORGL8), а сама операционная система (например, Windows 10 LTSC) работает под высокой нагрузкой во время выполнения тестов производительности. Давайте подробно разберем, почему возникает этот сбой, как устроен механизм поиска лицензий в 1С и как раз и навсегда решить эту проблему.
Главный вопрос, который возникает у пользователя: почему все остальные базы работают без проблем, а падает только база теста? Дело в том, что «Тест Гилева» обычно распространяется в виде готового файла выгрузки базы данных (формат .dt). При загрузке стороннего файла выгрузки в вашу локальную пустую базу переносится не только сама конфигурация и данные, но и история лицензирования (кэш защиты) предыдущего владельца базы.
Платформа 1С устроена таким образом, что она оптимизирует время запуска базы и в первую очередь пытается найти именно ту лицензию, которая использовалась при *последнем успешном сеансе* работы с этой базой. Если разработчики теста использовали сетевой HASP-ключ или определенные программные лицензии, информация об этом осталась в файле настроек базы данных. При запуске на вашем компьютере платформа 1С пытается «достучаться» до этих фантомных сетевых ключей (например, отправляя запросы через VPN-каналы в другие подсети, если они были прописаны ранее), полностью игнорируя ваш исправно работающий локальный USB-ключ.
В итоге, не дождавшись ответа от несуществующего удаленного ключа, платформа выдает ошибку защиты, игнорируя локальный HASP-ключ, вставленный прямо в USB-порт компьютера.
Чтобы лучше понимать поведение системы, проанализируем строгую последовательность, в которой платформа 1С пытается обнаружить лицензию при запуске:
.lic) или сетевого ключа HASP, параметры которого сохранены после последнего успешного запуска этой базы.%ProgramData%\1C\licenses, %AppData%\1C\licenses и т.д.).ORGL8.nethasp.ini).При импорте стороннего .dt-файла шаг №1 заставляет платформу искать сетевой ключ по старому IP-адресу разработчиков. Нам необходимо принудительно заставить систему игнорировать сетевые настройки защиты и сразу переходить к опросу локального USB-ключа.
Самый надежный способ устранить эту ошибку — жестко запретить платформе искать сетевые ключи по сети. Для этого мы отредактируем файл nethasp.ini, который управляет поведением драйвера HASP License Manager.
Рассмотрим по шагам, как это сделать:
Шаг 1. Нам необходимо найти нужный файл nethasp.ini. Платформа 1С может считывать этот файл из нескольких мест. Иерархия поиска выглядит следующим образом:
C:\Program Files\1cv8\8.3.17.1496\bin\conf\).C:\Program Files\1cv8\conf\.%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.
Если вы не хотите вносить глобальные изменения в nethasp.ini, мы можем очистить «историю лицензирования» конкретно для базы Теста Гилева. Рассмотрим несколько практических вариантов выполнения этой задачи.
Вариант А. Выгрузка и загрузка конфигурации (метод очистки файлов базы)
Этот метод позволяет полностью сбросить накопленный кэш настроек базы данных:
F7).Этот процесс перезаписывает внутреннюю структуру файлов конфигурации и очищает сохраненные данные о предыдущих сетевых ключах.
Вариант Б. Пересоздание подключения в списке баз
Иногда решить проблему помогает простое удаление базы из списка запуска 1С. Закройте программу, удалите базу Теста Гилева из списка, а затем добавьте её заново под тем же путем к папке. Это очистит локальный кэш подключений платформы, хранящийся в файле 1cv8conn.plist в каталоге пользователя AppData.
Вариант В. Сброс настроек лицензирования для клиент-серверной базы (SQL)
Если вы развернули тест на SQL-сервере (MS SQL или PostgreSQL) и столкнулись с аналогичной проблемой, информацию о старых лицензиях можно удалить напрямую из таблицы параметров базы данных. Для этого выполните следующий SQL-запрос к вашей базе данных в СУБД:
UPDATE Files
SET BinaryData = ''
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'
Этот запрос обнуляет бинарные данные файла настроек лицензий (.pfl), хранящегося внутри таблицы СУБД, заставляя платформу при следующем запуске искать доступные ключи с нуля.
Поскольку «Тест Гилева» предназначен для создания максимальной нагрузки на процессор, дисковую подсистему и оперативную память компьютера, во время его выполнения нагрузка на материнскую плату резко возрастает. На операционных системах семейства Windows 10 (особенно редакций Enterprise и LTSC) это может спровоцировать кратковременное отключение питания USB-портов из-за механизмов энергосбережения.
Для ключа HASP даже микросекундная потеря питания означает «отключение» защиты, что мгновенно приводит к падению теста с ошибкой «Ключ защиты программы больше не доступен».
Решим эту проблему по шагам:
После отключения этой функции Windows больше не будет снижать напряжение на USB-портах во время пиковых вычислительных нагрузок Теста Гилева, и ваш локальный ключ HASP будет работать стабильно.