При обновлении платформы «1С:Предприятие» или установке сервера 1С системные администраторы часто сталкиваются с неприятной ситуацией: клиент-серверные базы (на SQL) продолжают работать в штатном режиме, в то время как файловые базы отказываются запускаться или закрываются через несколько минут работы с критической ошибкой «Нарушение целостности системы». Рассмотрим подробнее, почему это происходит и как полностью очистить систему от факторов, провоцирующих данное поведение.
Начиная с релизов 8.3.10.2580, 8.3.12.1714 и выше, фирма «1С» внедрила в платформу усовершенствованные механизмы проверки легальности использования программного обеспечения. Суть проблемы заключается в том, что платформа теперь активно сканирует операционную систему на наличие следов программных эмуляторов аппаратных ключей защиты (HASP). Проанализируем ситуацию: если на сервере или рабочей станции когда-либо (даже несколько лет назад) устанавливались «ломаные» версии или эмуляторы для обхода защиты, их драйверы остаются в системе в виде скрытых устройств, веток реестра или файлов в системных каталогах Windows.
Почему же SQL-базы работают, а файловые — нет? Это связано с особенностями проверки. В файловом режиме проверку выполняет непосредственно клиентское приложение 1cv8.exe, которое делает это максимально агрессивно. В серверном варианте часть функций защиты передается менеджеру лицензий и серверу приложений, где алгоритмы проверки могут срабатывать иначе или иметь другие пороги чувствительности.
Простое удаление и повторная установка платформы, как правило, не помогают, так как инсталлятор 1С не затрагивает системные драйверы сторонних разработчиков. Нам предстоит выполнить глубокую «зачистку». Проделаем следующие действия:
Прежде всего, нам необходимо прекратить работу всех процессов, которые могут блокировать доступ к системным файлам и веткам реестра. Остановим службу Агент сервера 1С:Предприятия, а также все службы, имеющие в названии HASP или Sentinel. Проверим список установленных программ через «Панель управления». Если там присутствуют старые драйверы защиты или компоненты Sentinel Runtime, их следует деинсталлировать стандартным способом.
Многие эмуляторы маскируются под системные устройства. Чтобы их обнаружить, выполним следующие действия:
Virtual Usb Bus Enumerator (или похожие названия, содержащие Virtual USB, VBus).Даже после удаления устройства из списка драйвер может остаться в системной папке и загружаться при старте Windows. Проанализируем содержимое каталогов C:\Windows\System32\drivers\ и C:\Windows\SysWOW64\drivers\. Нам нужно найти и удалить (или переместить в архив для страховки) следующие файлы:
vusbbus.dll и vusbbus.sysmultikey.sysvbus.sysmkk.syshaspnt.sysВажно: если система не дает удалить файл, убедитесь, что вы остановили все соответствующие службы, или воспользуйтесь загрузкой в безопасном режиме.
Рассмотрим ветки реестра, в которых чаще всего «прячутся» записи эмуляторов. Откроем редактор реестра (regedit) и удалим следующие разделы (если они существуют):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\NEWHASP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vusbbus
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MultiKey
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vbus
Также стоит провести поиск по всему реестру (Ctrl+F) по ключевым словам dump и hasp в контексте вышеуказанных путей. Обратите внимание на ветки ControlSet001 и ControlSet002 — они также должны быть очищены.
Для гарантированного удаления остатков легальных драйверов HASP, которые могут конфликтовать с новой защитой, рекомендуется использовать официальную утилиту от производителя (Thales/Aladdin). Проанализируем команду для полной очистки:
Sentinel HASP LDK Command Line Runtime Installer (файл haspdinst.exe).
haspdinst.exe -purge
Эта команда удалит все установленные драйверы защиты и связанные с ними службы. После этого можно установить актуальный драйвер заново.
Платформа 1С может сохранять информацию о «подозрительной» системе в локальных кэшах. Чтобы ошибка не повторилась из-за старых данных, удалим содержимое следующих папок для всех пользователей:
%AppData%\1C\1cv8%LocalAppData%\1C\1cv8Также посмотрим в папку C:\Program Files\1cv8\ (или C:\Program Files (x86)\1cv8\). При удалении старых платформ там часто остаются папки bin, содержащие сторонние патчи или файлы эмуляторов. Лучшим решением будет полностью удалить папку 1cv8 после деинсталляции всех платформ и установить нужную версию на «чистую» почву.
Посмотрим на важный момент: если после всех манипуляций ошибка сохраняется, убедитесь, что у вас действительно хватает лицензий. В некоторых случаях 1С может выдавать сообщение о целостности, если обнаруживает попытку одновременного использования аппаратного ключа и программной лицензии при наличии в системе следов «взлома». Если вы используете сервер «1С:Предприятие Мини» (на 5 подключений), помните, что при превышении этого лимита работа в клиент-серверном варианте будет заблокирована, что вынуждает пользователей переходить на файловые базы, где они и сталкиваются с вышеописанной проблемой.
Резюме: Решение проблемы «Нарушение целостности системы» всегда заключается в тщательном поиске и удалении драйвера vusbbus.sys (или его аналогов) и очистке реестра от веток NEWHASP и MultiKey. После выполнения этих шагов и перезагрузки сервера файловые базы начинают работать стабильно.