Развертывание отраслевых решений от компании «1С-Рарус» в виртуальной среде часто сопровождается серьезными трудностями. Особенно остро эта проблема встает при использовании гипервизора Microsoft Hyper-V и устаревших систем аппаратной защиты, таких как семейство ключей «Катран». При запуске программного продукта (например, популярной конфигурации «1С-Рарус: Торговый комплекс. Продовольственные товары 8» (ТКПТ)) администраторы регулярно сталкиваются с невозможностью загрузки внешней компоненты защиты v8maket.dll и сбоями при обращении к аппаратному USB-ключу.
В этой статье мы подробно разберем природу этих ошибок, выясним, почему аппаратная защита конфликтует с виртуализацией Hyper-V, и изучим пошаговый алгоритм обхода этих ограничений без покупки дорогостоящего стороннего программного обеспечения.
Внешняя компонента v8maket.dll представляет собой программное связующее звено (библиотеку) между технологической платформой «1С:Предприятие» и локальной или сетевой службой защиты «1С-Рарус». Название файла исторически связано с проектным наименованием конфигурации ТКПТ (внутреннее название «Макет»). Данный модуль отвечает за отправку запросов к серверу лицензирования, проверку подлинности сертификатов защиты и контроль сессий пользователей.
Давайте рассмотрим основные причины, по которым платформа «1С» может выдавать ошибку загрузки этого модуля или аварийно завершать работу:
v8maket.dll. Если вы пытаетесь запустить информационную базу через 64-битный клиент «1С:Предприятия», платформа физически не сможет загрузить 32-битную DLL. В результате мастер настройки защиты зависает или выдает критическую ошибку.RarusFirstStartSetup.exe), которая распаковывает компоненты защиты в системные папки (обычно в каталог C:\ProgramData\Protect\LocalProtect\) и регистрирует их в реестре Windows. Если у пользователя нет полных прав локального администратора или активен контроль учетных записей (UAC), процесс регистрации завершается неудачно.SUv8.exe) активно используют инструментарий управления Windows (WMI). Если эта служба в операционной системе работает некорректно, система защиты не сможет проверить параметры окружения и аварийно завершит работу с ошибкой доступа к памяти (Access Violation).Посмотрим на классический пример программного кода, с помощью которого конфигурация осуществляет инициализацию и подключение компоненты защиты:
Попытка
ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаЗащиты", "RarusProtect", МетодПодключенияВнешнейКомпоненты.СистемныйРеестр);
ЗащитаОбъект = Новый ("AddIn.RarusProtect.v8maket");
Исключение
ЗаписьЖурналаРегистрации("Защита Рарус", УровеньЖурналаРегистрации.Ошибка,,, "Не удалось загрузить v8maket.dll: " + ОписаниеОшибки());
ВызватьИсключение "Ошибка инициализации системы защиты! Убедитесь, что используется 32-разрядный клиент 1С.";
КонецПопытки;
Специфика гипервизора Microsoft Hyper-V заключается в том, что он, в отличие от VMware ESXi или Proxmox VE, не поддерживает штатную функцию сквозного проброса локальных физических USB-устройств (USB Passthrough) с хост-машины внутрь гостевой виртуальной машины. Физический USB-ключ защиты «Катран», вставленный в разъем сервера, гостевая операционная система внутри Hyper-V просто не увидит.
Для решения этой проблемы системные администраторы часто используют внешние программные эмуляторы или USB-over-IP концентраторы. Однако такие методы являются нестабильными, требуют дополнительных финансовых затрат и часто приводят к падению службы лицензирования 1С из-за микроразрывов сетевого соединения. Но существует гораздо более надежное, бесплатное и элегантное архитектурное решение.
Давайте разберем наиболее надежный способ организации защиты. Вместо того чтобы пытаться пробросить USB-ключ внутрь виртуальной машины с помощью стороннего софта, мы развернем сервер лицензирования (LicServer) непосредственно на хост-системе (физическом сервере под управлением Windows Server / Windows Enterprise, где запущен гипервизор), а гостевую ОС настроим на работу с ним по локальной сети.
Шаг 1. Подготовка физического хоста (гипервизора)
Поскольку физический хост работает под управлением полноценной ОС Windows, на нем без проблем запустятся низкоуровневые драйверы защиты. Выполним следующие действия:
Protect на установочном диске или официальный пакет обновлений защиты от техподдержки).LicServer или служба Катран) успешно запустилась и находится в статусе «Работает» (Running).http://localhost:11998 или http://localhost:9099 в зависимости от версии СЛК) и убедитесь, что ваш аппаратный ключ успешно определился системой и лицензии активны.Шаг 2. Настройка сетевых экранов (Firewall)
Для того чтобы виртуальная машина могла свободно общаться с сервером лицензирования на хосте, нам необходимо открыть сетевые порты. По умолчанию система защиты использует следующие порты:
Создайте входящее правило брандмауэра на физическом хосте, разрешающее трафик по указанным портам для IP-адреса вашей виртуальной машины.
Шаг 3. Настройка гостевой виртуальной машины (клиентской части)
Теперь перейдем к настройке окружения внутри гостевой ОС, где развернута база 1С:
v8maket.dll смогла успешно инициализироваться в адресном пространстве процесса.192.168.1.100), а также соответствующий порт (11999).config.xml или protect.cfg и располагается в папке общего доступа защиты. Проанализируем пример структуры такого файла конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<ProtectSettings>
<Connection>
<Host>192.168.1.100</Host>
<Port>11999</Port>
<Timeout>30</Timeout>
</Connection>
<Trace>
<Level>0</Level>
</Trace>
</ProtectSettings>
После сохранения настроек перезапустите клиентское приложение 1С. Платформа успешно загрузит 32-битную внешнюю компоненту v8maket.dll, которая, в свою очередь, через сетевой сокет обратится к физическому серверу-гипервизору, опросит ключ «Катран» и предоставит сессии пользователя необходимую лицензию.
Если после перехода на 32-битный клиент и настройки сетевого пути к серверу лицензий программа «1С» продолжает вылетать с ошибкой нарушения прав доступа (Access Violation по адресу 0x000... в модуле v8maket.dll), это говорит о конфликте версий сертификатов защиты.
Для устранения этой проблемы выполните следующие шаги:
C:\ProgramData\Protect\LocalProtect\ и полностью удалите все временные файлы, а также файлы сертификатов с расширением *.lic или *.pem (предварительно сделав их резервную копию).Таким образом, мы рассмотрели полный цикл диагностики и устранения проблем с защитой продуктов «1С-Рарус» на виртуальных платформах Microsoft Hyper-V. Использование схемы с выносом сервера лицензирования на физический хост позволяет гарантировать стабильную работу системы и полностью исключает риски внезапного отключения USB-ключей в виртуальной среде.