Как исправить ошибку «Обнаружено нарушение целостности системы» в 1С при наличии легальных лицензий?

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

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

Выясним причину ошибки

В начале 2021 года фирма «1С» внедрила в новые релизы платформы (начиная с 8.3.17 и новее) жесткие антипиратские механизмы. Платформа начала активно сканировать операционную систему на наличие модифицированных файлов (например, backbas.dll) и, что самое главное, на наличие установленных драйверов-эмуляторов ключей защиты. Если система находит «спящие» драйверы старых эмуляторов (даже если они давно не используются), она блокирует работу.

Верным признаком того, что база когда-либо запускалась с использованием пиратского эмулятора, является наличие в информации о лицензиях (в конфигураторе или толстом клиенте) строки Локальный HASP4 ORGL8 500. Эта запись — классический маркер популярного сетевого эмулятора на 500 рабочих мест. Если платформа видит этот маркер или остатки драйверов vusbbus, haspflt или MultiKey, выдается сообщение о нарушении целостности.

Способ 1: Очистка системы от следов эмуляторов (без переустановки Windows)

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

  1. Откройте «Диспетчер устройств» Windows.
  2. В меню «Вид» обязательно включите опцию «Показать скрытые устройства».
  3. Разверните ветку «Системные устройства» (или контроллеры USB) и найдите виртуальные устройства эмулятора. Обычно они называются Virtual Usb Bus Enumerator, Root\MultiKey или VUsbBus.
  4. Удалите эти устройства. В окне подтверждения обязательно установите галочку «Удалить программы драйверов для этого устройства».
  5. Перейдите в системную папку драйверов по пути C:\Windows\System32\drivers\ и физически удалите файлы: vusbbus.sys, haspflt.sys, VUsb.sys, multikey.sys (если они там остались).
  6. Очистите ветки реестра, связанные со службами эмуляторов. Откройте regedit и проверьте ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ на наличие папок vusbbus, haspflt, Emulator\HASP\Dump. При обнаружении — удалите их и перезагрузите сервер.

Способ 2: Очистка истории лицензий в базе данных SQL

Если база данных помнит, что запускалась под эмулятором, маркер 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 внутри базы данных, в котором платформа кэширует информацию об использованных ранее лицензиях.

Способ 3: Очистка кэша и локальных файлов .pfl

Платформа также хранит информацию о параметрах лицензирования в пользовательских директориях. Разберем шаги по их очистке.

  1. Остановите службу Агента сервера 1С.
  2. Зайдите в каталог пользователя, под которым запускается служба 1С (обычно это USR1CV8), а также в каталоги тех пользователей, под которыми возникает ошибка.
  3. Перейдите в папку AppData\Local\1C\1cv8\ и очистите кэш (папки со случайным набором символов).
  4. Используя поиск по системному диску, найдите и удалите все файлы с расширением .pfl в папках `AppData\Local` и `AppData\Roaming` текущих пользователей.

Способ 4: Разделение программных и аппаратных лицензий

Если на одном сервере используется «зоопарк» из программных лицензий и старых аппаратных ключей (USB HASP) для разных баз и разных версий платформ, это может вызывать конфликты механизмов защиты. Чтобы упорядочить раздачу, проанализируем дополнительные ключи запуска.

Для баз, которые должны работать строго на программных лицензиях, запретите поиск аппаратного ключа, добавив в параметры запуска базы ключ /UseHwLicenses-. И наоборот, для старых файловых баз укажите /UseHwLicenses+, чтобы они принудительно брали лицензии только из HASP-ключа. Это избавит систему от ложных срабатываний и перехвата чужих лицензий.

Способ 5: Получение временной спасательной лицензии и радикальный метод

Если работа предприятия парализована, а поиск следов старых эмуляторов затягивается, фирма «1С» предоставляет возможность бесплатно получить временную программную лицензию сроком на 60 дней. Это даст вам 2 месяца на спокойную чистку серверов или подготовку нового железа.

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

← На главную