В процессе администрирования клиент-серверных баз данных «1С:Предприятие» специалисты часто сталкиваются с аппаратными и программными сбоями системы защиты. Особенно остро эта проблема встает при изменении сетевой инфраструктуры, обновлении оборудования, виртуализации серверов или переходе с одного типа лицензирования на другой (например, при замене программных лицензий на аппаратные USB-ключи HASP). Проанализируем типичный сценарий возникновения такой ошибки, выясним ее фундаментальные технические причины и разберем пошаговый алгоритм восстановления работоспособности системы.
Для успешного запуска «1С:Предприятия» в клиент-серверном режиме (когда базы данных работают под управлением СУБД, например, MS SQL Server или PostgreSQL) требуются два абсолютно независимых типа лицензий. Это ключевой момент, непонимание которого часто приводит администраторов в тупик:
.lic) или аппаратными (сетевые USB-ключи HASP серии ORGL8 красного цвета).ragent). Без нее сервер 1С просто не позволит запустить ни одну базу в клиент-серверном режиме, даже если у пользователей установлены все необходимые клиентские ключи. Серверная лицензия также бывает программной (файл .lic) или аппаратной (локальный USB-ключ HASP серии ENSR8 или EN8SA).Рассмотрим ситуацию: предприятие приобретает аппаратный USB-ключ на 20 пользователей взамен сданных по апгрейду программных клиентских лицензий. Администратор устанавливает HASP License Manager, подключает USB-ключ, и локальные компьютеры успешно видят свободные клиентские лицензии. Однако при попытке войти в базу на сервере 1С возникает ошибка:
На сервере 1С:Предприятия не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
по причине:
Файл программной лицензии не найден
ENSR8 Локальный, не установлен
EN8SA Локальный, не установлен
Это происходит потому, что при очистке сервера от старых программных лицензий администратор случайно удалил не только клиентские файлы лицензий, но и файл лицензии самого сервера 1С. Купленный USB-ключ на 20 пользователей закрывает потребность только в клиентских лицензиях, но он не содержит лицензии на запуск сервера. Серверу по-прежнему требуется его собственная лицензия.
Когда платформа 1С осуществляет поиск серверной лицензии, она обращается к локальным портам машины и ищет аппаратные ключи со следующими маркировками:
Важное техническое ограничение: в отличие от клиентских многопользовательских ключей, серверные аппаратные ключи являются строго локальными. Они не могут транслироваться по сети через HASP License Manager. Сервер 1С должен видеть этот ключ непосредственно на том физическом компьютере или в той виртуальной машине (путем проброса USB-порта), где запущена служба ragent.
Если серверной аппаратной лицензии (USB-ключа) физически нет, значит, сервер 1С должен работать по программной лицензии. Программная лицензия жестко привязывается к ключевым параметрам компьютера. Рассмотрим лог ошибки из практики, который наглядно показывает, почему сохраненные старые файлы лицензий отказываются работать:
Ошибка программного лицензирования. Ошибка привязки программной лицензии к компьютеру: file://C:/ProgramData/1C/licenses/20131014120132.lic
После получения лицензии удалены:
OS Ser_0: 55041-507-4400454-84166
BIOS_0: American Megatrends Inc., 20100224000000.000000+000, 0901
В текущей конфигурации компьютера имеются:
OS Ser_0: 00486-001-0001076-84201
Phis Mem_0: 19318005760
BIOS_0: American Megatrends Inc., 20101222000000.000000+000, 1202
Проанализируем эти данные. Из лога видно, что файл лицензии стал недействительным по следующим причинам:
OS Ser_0) с 55041-... на 00486-.... Это свидетельствует о переустановке Windows, изменении ее редакции или обновлении операционной системы.BIOS_0) — версия изменилась с 0901 на более новую 1202.Поскольку характеристики сервера изменились, старый файл программной лицензии блокируется защитой 1С. Использовать его повторно в таком виде невозможно — требуется повторная активация с использованием резервного пин-кода.
Часто системные администраторы пытаются решить проблему доступности ключей путем редактирования конфигурационного файла nethasp.ini. На этом этапе легко совершить критические ошибки. Проанализируем пример некорректной настройки:
NH_TCPIP = Enabled
NH_SERVER_ADDR = 168.192.0.3
NH_SERVER_NAME = Server
В данной конфигурации допущены сразу две важные ошибки:
192.168.0.3 прописан адрес 168.192.0.3. Это внешняя публичная адресация. В результате служба защиты пытается искать HASP-ключ в глобальной сети Интернет, что делает авторизацию локальных пользователей невозможной.nethasp.ini влияют исключительно на поиск сетевых клиентских лицензий (серии ORGL8). Поиск серверных ключей (аппаратных ENSR8/EN8SA или программных файлов лицензий .lic) выполняется платформой локально на самом сервере приложений 1С. Редактирование сетевых параметров HASP никак не поможет серверу 1С обнаружить собственную лицензию.Для правильной настройки поиска клиентских лицензий в локальной сети конфигурационный файл nethasp.ini (обычно находящийся в каталоге C:\Program Files\1cv8\conf\ или в папке установки драйвера HASP) должен выглядеть следующим образом:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.3 ; Указываем точный IP-адрес компьютера с USB-ключом
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled ; Отключаем широковещательный опрос для ускорения поиска
Выяснив причины сбоя, перейдем к практическим действиям по восстановлению работоспособности клиент-серверного режима 1С.
Для восстановления серверной лицензии вам потребуется найти конверт или бланк из коробки продукта «1С:Предприятие (версия для сервера)». На этом бланке указаны:
Если параметры сервера изменились или файлы лицензий были стерты, выполним повторное получение лицензии:
Если все резервные пин-коды из коробки были израсходованы ранее, необходимо оперативно получить новый рабочий пин-код от компании 1С:
lic@1c.ru.Если программа была надлежащим образом зарегистрирована на вашу компанию, Центр лицензирования пришлет новый пин-код в ответном письме.
Убедитесь, что полученный файл программной серверной лицензии (с расширением .lic) сохранен в одном из стандартных каталогов, где его может прочитать служба сервера 1С. Для операционной системы Windows стандартными путями являются:
C:\ProgramData\1C\licenses (рекомендуется для общей доступности всеми пользователями и службами).C:\Program Files\1cv8\shared\confragent). Например: C:\Users\USR1CV8\AppData\Local\1C\1Cv8\conf.Иногда возникает ситуация, когда аппаратная часть сервера и операционная система не менялись, файлы лицензий на месте, но сервер 1С внезапно перестает их видеть и выдает ошибку привязки. Причиной этого часто служит скрытый сбой службы WMI (Windows Management Instrumentation) в ОС Windows.
Платформа 1С использует WMI-запросы для получения серийных номеров процессоров, материнской платы и сетевых карт при каждой проверке лицензии. Если база данных WMI повреждена, служба возвращает пустые строки, 1С считает, что все оборудование изменилось, и деактивирует лицензию. Чтобы исправить эту неполадку без повторной активации пин-кодов, выполним сброс репозитория WMI:
net stop winmgmt
cd C:\Windows\System32\wbem
rename Repository Repository.old
net start winmgmt
Мы подробно разобрали принципы работы системы защиты 1С:Предприятия в клиент-серверном режиме, структуру поиска ключей и методы устранения ошибок привязки. Четкое разграничение понятий клиентского и серверного лицензирования позволит вам избегать подобных инцидентов при модернизации корпоративной ИТ-инфраструктуры.