Рассмотрим ситуацию, с которой массово столкнулись многие системные администраторы: при запуске платформы 1С появляется критическая ошибка «Обнаружено нарушение целостности системы», после чего работа программы блокируется. Часто это происходит даже в тех случаях, когда на сервере используются абсолютно легальные программные (пин-коды) или аппаратные (HASP) ключи защиты. Проанализируем причину такого поведения и разберем по шагам доступные способы восстановления работы.
В начале 2021 года фирма «1С» внедрила в новые релизы платформы (начиная с 8.3.17 и новее) жесткие антипиратские механизмы. Платформа начала активно сканировать операционную систему на наличие модифицированных файлов (например, backbas.dll) и, что самое главное, на наличие установленных драйверов-эмуляторов ключей защиты. Если система находит «спящие» драйверы старых эмуляторов (даже если они давно не используются), она блокирует работу.
Верным признаком того, что база когда-либо запускалась с использованием пиратского эмулятора, является наличие в информации о лицензиях (в конфигураторе или толстом клиенте) строки Локальный HASP4 ORGL8 500. Эта запись — классический маркер популярного сетевого эмулятора на 500 рабочих мест. Если платформа видит этот маркер или остатки драйверов vusbbus, haspflt или MultiKey, выдается сообщение о нарушении целостности.
Если сервер нельзя переустанавливать с нуля, разберем процедуру ручной очистки операционной системы от нелегальных драйверов.
Virtual Usb Bus Enumerator, Root\MultiKey или VUsbBus.C:\Windows\System32\drivers\ и физически удалите файлы: vusbbus.sys, haspflt.sys, VUsb.sys, multikey.sys (если они там остались).regedit и проверьте ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ на наличие папок vusbbus, haspflt, Emulator\HASP\Dump. При обнаружении — удалите их и перезагрузите сервер.Если база данных помнит, что запускалась под эмулятором, маркер ORGL8 500 может остаться в системных файлах базы. Посмотрим на пример того, как можно очистить эти данные на уровне MS SQL Server. Внимание: перед выполнением скрипта обязательно сделайте резервную копию базы и остановите службу сервера 1С!
Выполните следующий скрипт в SQL Management Studio для вашей базы данных:
USE [Имя_Вашей_Базы_Данных]
GO
UPDATE Files
SET BinaryData = '', datasize = 0
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'
GO
Этот код обнуляет специальный служебный файл .pfl внутри базы данных, в котором платформа кэширует информацию об использованных ранее лицензиях.
Платформа также хранит информацию о параметрах лицензирования в пользовательских директориях. Разберем шаги по их очистке.
USR1CV8), а также в каталоги тех пользователей, под которыми возникает ошибка.AppData\Local\1C\1cv8\ и очистите кэш (папки со случайным набором символов)..pfl в папках `AppData\Local` и `AppData\Roaming` текущих пользователей.Если на одном сервере используется «зоопарк» из программных лицензий и старых аппаратных ключей (USB HASP) для разных баз и разных версий платформ, это может вызывать конфликты механизмов защиты. Чтобы упорядочить раздачу, проанализируем дополнительные ключи запуска.
Для баз, которые должны работать строго на программных лицензиях, запретите поиск аппаратного ключа, добавив в параметры запуска базы ключ /UseHwLicenses-. И наоборот, для старых файловых баз укажите /UseHwLicenses+, чтобы они принудительно брали лицензии только из HASP-ключа. Это избавит систему от ложных срабатываний и перехвата чужих лицензий.
Если работа предприятия парализована, а поиск следов старых эмуляторов затягивается, фирма «1С» предоставляет возможность бесплатно получить временную программную лицензию сроком на 60 дней. Это даст вам 2 месяца на спокойную чистку серверов или подготовку нового железа.
Если же ручная зачистка реестра и драйверов не дала результата (система где-то прячет глубокие следы эмулятора), наиболее быстрым и гарантированным методом решения проблемы (к которому в итоге прибег автор разбираемой ситуации) является полная переустановка операционной системы Windows Server с форматированием диска и последующей чистой установкой платформы 1С и SQL. После чистой установки и ввода легальных пин-кодов ошибка гарантированно исчезает, а записи о пиратских ключах больше не фигурируют в данных.