Как заставить платформу 1С забыть последний использованный USB HASP-ключ и найти локальную лицензию?

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

При работе с системой "1С:Предприятие" администраторы и пользователи иногда сталкиваются с ситуацией, когда платформа упорно "запоминает" последний успешно использованный сетевой HASP-ключ. Это становится проблемой, когда возникает необходимость переключить пользователя на локальный USB HASP-ключ, например, из-за нехватки сетевых лицензий, временной работы в автономном режиме или необходимости использовать специфическую однопользовательскую лицензию. В таких случаях 1С, даже при наличии физически подключенного локального ключа, может продолжать пытаться получить лицензию по сети, игнорируя локальный источник.

Давайте подробно рассмотрим, почему возникает такая ситуация, как работает алгоритм поиска лицензий в "1С:Предприятии", и предложим несколько проверенных решений, которые помогут вам эффективно управлять приоритетом поиска лицензий и заставить платформу 1С корректно распознать и использовать локальный HASP-ключ.

Детальный анализ алгоритма поиска лицензий в "1С:Предприятии"

Для того чтобы эффективно решать проблемы с лицензированием, нам критически важно четко понимать, как платформа 1С ищет доступные лицензии при каждом запуске клиентского приложения. Этот алгоритм имеет специфическую особенность, которая часто становится первопричиной описанной ситуации. Платформа 1С стремится оптимизировать скорость запуска, поэтому она не выполняет полный перебор лицензий каждый раз, а предпочитает "запоминать" последний успешный источник.

При каждом запуске "1С:Предприятие" выполняет проверку возможности запуска, следуя строгому, но логичному алгоритму. Как только необходимая лицензия обнаруживается на одном из шагов, дальнейший поиск прекращается. Это, с одной стороны, ускоряет процесс, но с другой – может создавать трудности при изменении условий лицензирования или при необходимости переключения между типами лицензий (например, с сетевой на локальную).

  1. Попытка получения лицензии из последнего использованного источника. Это первый и самый важный шаг, который напрямую относится к нашей проблеме. Платформа 1С в первую очередь пытается получить лицензию из того же файла программной лицензии или ключа защиты HASP (и того же типа – сетевой или локальный, а иногда даже определенной серии), откуда лицензия была успешно получена при последнем успешном подключении. Это означает, что если в предыдущий раз пользователь успешно подключился к базе данных, используя лицензию из сетевого HASP-ключа, то при следующем запуске 1С первым делом попытается запросить лицензию именно у этого сетевого менеджера. Информация о последнем использованном источнике лицензии хранится в служебном файле 1cv8conn.pfl, который мы рассмотрим далее. Именно этот шаг блокирует поиск локального ключа, если сетевой источник все еще доступен и "запомнен".
  2. Поиск программных лицензий на локальном компьютере. Если попытка получить лицензию из последнего использованного источника не увенчалась успехом (например, сетевой ключ недоступен, его лицензии заняты, или файл 1cv8conn.pfl был удален), платформа переходит к поиску программных лицензий. Эти лицензии представляют собой файлы активации, которые устанавливаются непосредственно на клиентский компьютер и не требуют наличия аппаратного ключа. Они обычно располагаются в специальном системном каталоге (например, %ProgramData%\1C\1Cv8\LIC\).
  3. Поиск локального аппаратного ключа HASP. После проверки программных лицензий 1С начинает искать локальный аппаратный USB HASP-ключ. На этом этапе платформа взаимодействует с установленными драйверами HASP (HASP Device Driver), которые отвечают за обнаружение и взаимодействие с физически подключенными к данному компьютеру USB-ключами защиты. Если такой ключ обнаружен и содержит необходимую лицензию, 1С использует ее.
  4. Поиск по сети многопользовательского ключа HASP. И только в самую последнюю очередь, если все предыдущие попытки не принесли результата, платформа начинает широковещательный поиск многопользовательских ключей HASP, доступных через HASP License Manager в локальной сети. Это происходит путем отправки UDP-пакетов по сети для обнаружения активных менеджеров лицензий. Если менеджер обнаружен и предлагает свободную лицензию, она будет использована.

Таким образом, проблема пользователя Марьи Иванны возникает из-за первого пункта алгоритма: "1С" запомнила сетевой ключ и при последующих запусках пыталась получить лицензию именно оттуда. Локальный USB HASP-ключ, даже если он был вставлен в компьютер, игнорировался до тех пор, пока сетевой источник был доступен. Чтобы изменить это поведение, нам нужно сбросить информацию о "запомненной" лицензии.

Основное решение: Удаление файла 1cv8conn.pfl — сброс сохраненных данных о лицензии

Самым простым, прямым и подтвержденным документацией 1С (согласно информации на ИТС) способом сбросить "запомненную" лицензию является удаление служебного файла 1cv8conn.pfl. Этот файл служит хранилищем для различных клиентских настроек и кэша, включая информацию о последней использованной лицензии, список центральных серверов кластера, настройки последних открытых баз и прочее. Удаление этого файла приводит к полному сбросу этих данных, и 1С при следующем запуске будет вынуждена выполнить полный алгоритм поиска лицензий с нуля, что позволит ей найти и использовать локальный HASP-ключ.

  1. Полное завершение всех сеансов 1С. Это критически важный первый шаг. Перед тем как удалять файл 1cv8conn.pfl, убедитесь, что на компьютере, где возникла проблема, нет ни одного запущенного клиентского приложения "1С:Предприятия". Это включает в себя как обычные окна 1С, так и возможные фоновые процессы. Откройте "Диспетчер задач" (Ctrl+Shift+Esc), перейдите на вкладку "Процессы" и убедитесь, что нет активных процессов, связанных с 1С (например, 1cv8.exe, 1cv8c.exe). Если какой-либо процесс 1С активен, файл 1cv8conn.pfl может быть заблокирован системой, и вы не сможете его удалить. Завершите все такие процессы.
  2. Точное определение местоположения файла 1cv8conn.pfl. Для операционных систем Windows этот файл обычно располагается в каталоге, который определяется переменной окружения %ALLUSERSPROFILE%\1C\1cv8\.
    • В большинстве современных систем Windows (например, Windows 7, 8, 10, 11, а также серверные версии) это соответствует пути C:\ProgramData\1C\1cv8\.
    Вы можете скопировать путь %ALLUSERSPROFILE%\1C\1cv8\, вставить его в адресную строку проводника Windows и нажать Enter, чтобы быстро перейти в нужную папку.
  3. Находим и удаляем файл. В открывшейся папке вы найдете файл с именем 1cv8conn.pfl. Выберите его и удалите (можно просто нажать Delete). Не беспокойтесь: этот файл является служебным кэшем, и при следующем запуске 1С он будет создан заново с актуальной информацией о лицензии и других настройках. Никаких важных данных, касающихся вашей информационной базы или конфигурации, в этом файле не хранится.
  4. Запускаем 1С и проверяем результат. После успешного удаления файла 1cv8conn.pfl запустите клиентское приложение 1С. Теперь, поскольку платформа "забыла" о последнем сетевом ключе, она начнет поиск лицензий согласно полному алгоритму. Это означает, что она сначала попытается найти локальные лицензии (включая ваш USB HASP-ключ). В результате, 1С должна успешно обнаружить и начать использовать локальный ключ, позволяя пользователю Марье Иванне работать с базой данных.

Важно: Убедитесь, что пользователь, от имени которого запускается 1С (или вы сами, если выполняете действия), имеет достаточные права доступа на чтение, запись и изменение данных в каталоге, где расположен файл 1cv8conn.pfl (то есть в %ALLUSERSPROFILE%\1C\1cv8\). Если права недостаточны, файл может не создаться или не обновиться корректно при последующих запусках 1С, что приведет к повторению проблемы или другим ошибкам, связанным с клиентскими настройками.

Альтернативный подход: Управление поиском сетевых ключей через файл nethasp.ini

Автор исходного сообщения прибегал к "извращению" с выдергиванием сетевого шнурка или отключением сетевого адаптера, что, хотя и работает, является не самым удобным и профессиональным способом. Эти методы действенны, поскольку они делают сетевой HASP-ключ временно недоступным, вынуждая 1С перейти к поиску локальных лицензий. Однако существуют более элегантные и контролируемые способы достижения того же эффекта, не требующие физического вмешательства или полного отключения сети.

Одним из таких способов является временное редактирование файла nethasp.ini. Этот файл является конфигурационным для драйвера HASP (HASP Runtime Environment) и используется для настройки параметров поиска сетевых ключей. Изменив его, мы можем временно "скрыть" сетевые ключи от платформы 1С, заставив ее искать локальные.

  1. Поиск и/или создание файла nethasp.ini. HASP драйвер ищет файл nethasp.ini в определенном порядке: сначала в папке, где запущено приложение (для 1С это обычно папка bin установленной версии платформы), затем в системных папках Windows (C:\Windows\System32 или C:\Windows\SysWOW64) и в других местах, определенных переменными окружения.
    • Часто nethasp.ini можно найти в C:\Program Files (x86)\1cv8\common\ или непосредственно в папке с драйверами HASP.
    • Если файл не найден, вы можете создать его вручную. Самым надежным способом обеспечить его использование конкретной версией платформы 1С является создание файла nethasp.ini в папке bin установленной версии платформы 1С (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\nethasp.ini).
    Откройте найденный или созданный файл в любом текстовом редакторе (например, Блокноте) с правами администратора, так как он может находиться в защищенных системных папках.
  2. Редактирование параметров для блокировки сетевого поиска. Внутри файла nethasp.ini нас интересуют две секции: [NH_COMMON] и [NH_TCPIP]. Нам нужно изменить следующие параметры:
    
    [NH_COMMON]
    NH_USE_BROADCAST = Disabled ; Отключаем широковещательный поиск по сети. 
                                 ; Это предотвращает автоматическое обнаружение HASP License Manager.
    
    [NH_TCPIP]
    NH_SERVER_ADDR = 127.0.0.1 ; Указываем конкретный IP-адрес для поиска. 
                                 ; Использование 127.0.0.1 (localhost) направляет поиск на сам компьютер,
                                 ; где, в большинстве случаев, нет сетевого HASP-менеджера.
                                 ; Вы также можете указать любой другой IP-адрес, который гарантированно
                                 ; не содержит HASP License Manager в вашей сети.
    

    Важно: В секции [NH_TCPIP] могут быть уже указаны IP-адреса ваших HASP License Manager. Если это так, временно закомментируйте их (добавив точку с запятой ; в начале строки) или удалите, чтобы они не мешали. Убедитесь, что NH_SERVER_ADDR = 127.0.0.1 является единственным активным адресом или указан первым в списке.

  3. Запускаем 1С. После сохранения изменений в nethasp.ini, запустите клиентское приложение 1С. Поскольку сетевой поиск теперь фактически отключен или перенаправлен на несуществующий адрес (локальный компьютер), 1С перейдет к следующему шагу алгоритма и найдет локальный USB HASP-ключ.
  4. Возвращаем nethasp.ini в исходное состояние. После того как 1С успешно запустится с локальным ключом, она "запомнит" это использование (сохранив информацию в файле 1cv8conn.pfl). Теперь вы можете либо удалить внесенные вами изменения в nethasp.ini (восстановив исходное содержимое), либо просто удалить этот файл, если вы создавали его специально для этой цели в папке bin. Платформа 1С сохранит информацию о локальной лицензии в 1cv8conn.pfl, и в дальнейшем будет использовать ее по умолчанию, даже если сетевые ключи снова станут доступны.

Следует отметить, что параметр NH_TCPIP_METHOD = TCP, который иногда встречается в старых инструкциях или конфигурациях, игнорируется программами 1С в контексте поиска HASP License Manager. Обращение к HASP License Manager для обнаружения ключей всегда выполняется по протоколу UDP, независимо от этой настройки.

Комплексный подход: Очистка кэша 1С для решения широкого спектра проблем

Помимо файла 1cv8conn.pfl, в системе 1С существует общий кэш, который хранит различные временные данные и настройки. Хотя очистка кэша не является самым прямым решением для проблемы с "запоминанием" лицензии, она может быть полезной комплексной мерой, особенно если вы сталкиваетесь с другими необъяснимыми проблемами в работе 1С или если удаление 1cv8conn.pfl по какой-то причине не дало ожидаемого результата. В кэше могут храниться временные данные форм, метаданных, результаты запросов и другие служебные файлы. Повреждение или некорректные данные в кэше могут приводить к самым разнообразным сбоям, включая те, что косвенно влияют на процесс лицензирования.

Рассмотрим два основных способа очистки кэша 1С:

  1. Ручная очистка папок кэша.
    • Закрываем все сеансы 1С. Убедитесь, что ни одно клиентское приложение 1С не запущено.
    • Открываем проводник Windows. Кэш 1С для разных версий платформы и операционных систем хранится в следующих расположениях:
      • Для Windows 7, 8, 10, 11 и большинства серверных ОС:
        • %userprofile%\AppData\Local\1C\1Cv8\
        • %userprofile%\AppData\Roaming\1C\1Cv8\
      • Для более старых версий 1С или ОС могут быть использованы пути, включающие версию платформы, например:
        • %userprofile%\AppData\Local\1C\1Cv82\ (для платформы 8.2)
        • %userprofile%\AppData\Local\1C\1Cv83\ (для платформы 8.3)
    • Внутри каждой из этих папок вы найдете одну или несколько подпапок с длинными буквенно-цифровыми именами (GUID, например, e345c2d1-b879-4a0b-9c6f-7e8d1a2b3c4d). Каждая такая папка соответствует кэшу конкретной информационной базы, с которой вы работали. Вы можете безопасно удалить содержимое этих подпапок или сами подпапки целиком. После удаления кэш будет создан заново при следующем запуске 1С.
  2. Очистка кэша с помощью параметра запуска /ClearCache.

    Этот метод является более удобным и целенаправленным, так как позволяет очистить кэш для конкретной информационной базы непосредственно из окна запуска 1С.

    • Откройте окно запуска "1С:Предприятия".
    • Выберите информационную базу из списка, для которой необходимо очистить кэш.
    • Нажмите кнопку "Изменить".
    • В окне свойств информационной базы (обычно это второе окно мастера изменения), найдите поле "Дополнительные параметры запуска".
    • В этом поле добавьте параметр: /ClearCache.
    • Нажмите "Далее", затем "Готово" для сохранения изменений в свойствах базы.
    • Теперь, при следующем запуске этой информационной базы кнопкой "Предприятие", 1С автоматически выполнит очистку кэша перед загрузкой. После успешного запуска и очистки кэша вы можете убрать этот параметр из свойств базы, так как кэш будет очищен.

    Пример использования параметра /ClearCache в командной строке (может быть полезно для автоматизации или скриптов):

    
    "C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /S "Сервер1С\ИмяБазы" /ClearCache
    

    Где "C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" – это полный путь к исполняемому файлу вашей версии платформы 1С, а /S "Сервер1С\ИмяБазы" – это параметры подключения к информационной базе в клиент-серверном варианте. Если база файловая, используйте параметр /F "ПутьКФайловойБазе".

Взаимодействие различных типов лицензий и преимущества серверного лицензирования

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

В контексте использования "1С:Предприятия" в серверном варианте (клиент-сервер) с использованием сервера 1С:Предприятия, клиентские лицензии могут быть активированы не только на каждом клиентском компьютере, но и непосредственно на самом сервере 1С. Активация клиентских лицензий на сервере 1С является более универсальным и гибким вариантом по нескольким причинам:

Понимание этой гибкости помогает системным администраторам принимать обоснованные решения о том, где и как лучше всего развертывать клиентские лицензии для оптимальной работы системы.

В заключение, для решения проблемы "запоминания" 1С сетевого HASP-ключа и игнорирования локального, самым простым, эффективным и рекомендованным методом является удаление файла 1cv8conn.pfl. Это действие приводит к сбросу кэша лицензий и заставляет платформу выполнить полный цикл поиска, что гарантирует обнаружение локального ключа. Альтернативные методы, такие как временное изменение nethasp.ini или очистка общего кэша, также могут быть применены в зависимости от специфики ситуации и общего подхода к администрированию.

← На главную