Как удалить сведения об эмуляторе HASP из информационной базы 1С и исправить ошибку нарушения целостности системы

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

При обновлении платформы «1С:Предприятие» системные администраторы часто сталкиваются с неприятной проблемой: система внезапно прекращает работу, выдавая критическую ошибку «Обнаружено нарушение целостности системы». При этом в окне «О программе» могут продолжать отображаться старые неактивные лицензии, такие как Сетевой HASP4 ORGL8 50, даже если сейчас сервер работает на легальной программной или аппаратной защите.

В рамках этой статьи мы подробно разберем, почему возникает эта ошибка, как взаимосвязаны история лицензий в самой базе данных и состояние операционной системы, а также рассмотрим пошаговые инструкции по очистке информационной базы и окружения Windows от компрометирующих следов.

Почему новая платформа 1С выдает ошибку целостности

Начиная с версий платформы 8.3.10.2650 (и особенно жестко в более современных релизах), компания 1С внедрила встроенные механизмы детектирования средств обхода защиты. Проверка работает в двух плоскостях:

  1. Анализ операционной системы. Платформа сканирует запущенные службы, реестр Windows, системные драйверы и временные папки на предмет наличия активных эмуляторов (например, MultiKey, VUsb) или их остаточных «хвостов».
  2. История лицензий в информационной базе. В служебных таблицах базы данных сохраняется история всех лицензий, под которыми пользователи когда-либо заходили в систему.

Важное уточнение: само по себе наличие записи о старом эмуляторе в окне «О программе» не блокирует запуск системы, если операционная система полностью чиста. Однако это является прямой уликой использования нелицензионного ПО в прошлом. Главным же виновником блокировки всегда выступают остатки драйверов эмулятора в операционной системе сервера или терминала.

Давайте выясним, почему при переносе базы через выгрузку конфигурации (файл .cf) история очищается, а при переносе через резервную копию (файл .dt) — нет. Дело в том, что файл конфигурации содержит только структуру метаданных, в то время как файл резервной копии данных переносит всю служебную информацию, включая таблицу системных настроек информационной базы.

Шаг 1. Очистка истории лицензий в базе данных 1С

Вся история когда-либо подключенных к базе лицензий хранится в специальной системной таблице Files под именем файла настроек c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl. Чтобы заставить базу «забыть» старый нелегальный ключ, нам необходимо обнулить содержимое этого файла.

Вариант А. Очистка в клиент-серверной базе (SQL)

Если ваша информационная база развернута на сервере СУБД (Microsoft SQL Server, PostgreSQL, IBM DB2 или Oracle), процесс очистки сводится к выполнению прямого запроса к таблице базы данных. Рассмотрим этот процесс по шагам:

  1. Обязательно остановите службу сервера 1С:Предприятия. Если этого не сделать, служба будет держать кэш настроек в оперативной памяти и при перезапуске просто перезапишет старые данные обратно в базу. Также остановите веб-серверы (Apache, IIS), если база опубликована.
  2. Создайте резервную копию базы данных средствами СУБД (резервное копирование крайне важно перед любым прямым вмешательством в таблицы).
  3. Откройте консоль управления вашей СУБД (например, SQL Server Management Studio) и выполните следующий запрос к вашей базе данных:

UPDATE Files 
SET BinaryData = 0x, datasize = 0 
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'

Для некоторых СУБД (например, PostgreSQL или старых версий MS SQL) синтаксис очистки бинарного поля может отличаться. Если предыдущий запрос выдает синтаксическую ошибку, используйте альтернативный вариант приведения типа:


UPDATE Files 
SET BinaryData = CONVERT(varbinary(max),''), datasize = 0 
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'
  1. После успешного выполнения запроса запустите службу сервера 1С:Предприятия.
  2. Запустите клиентское приложение и проверьте окно «О программе». Информация об эмуляторе должна исчезнуть.

Вариант Б. Очистка в файловой базе (формат .1CD)

Поскольку напрямую выполнить SQL-запрос к файлу 1Cv8.1CD стандартными средствами нельзя, мы можем пойти двумя путями:

  1. Временный перенос в SQL. Мы можем загрузить файловую базу (через .dt) на временный SQL-сервер, выполнить очистку по схеме, описанной выше, затем выгрузить базу обратно в формат .dt и развернуть ее как файловую.
  2. Использование специализированного ПО. Для прямого низкоуровневого редактирования таблиц файловой базы ИТ-специалисты используют внешние утилиты и обработки. Например, популярное решение HaspCleaner1CD.epf, которое работает совместно с библиотекой прямого доступа к файлам баз данных 1CDLib.dll. Запустив эту обработку в любой другой (пустой) базе 1С, вы указываете путь к закрытому файлу вашей целевой базы 1Cv8.1CD, и обработка сама производит очистку записи внутри служебной таблицы.

Шаг 2. Полная очистка операционной системы от следов эмуляторов

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

Проанализируем основные места, в которых эмуляторы оставляют свои следы, и разберем по шагам процесс их удаления.

1. Удаление системных служб защиты

Эмуляторы часто маскируются под легальные системные службы или создают собственные драйверы виртуальных устройств. Нам необходимо проверить список служб Windows и удалить подозрительные объекты. К ним относятся:

Для удаления службы запустите командную строку от имени администратора и выполните команду удаления, например: sc delete "Имя_Службы".

2. Удаление виртуальных устройств из Диспетчера устройств

Эмуляторы аппаратных ключей создают виртуальные USB-контроллеры, которые платформа 1С мгновенно определяет как нелегальные. Выполним их удаление:

  1. Нажмите правой кнопкой мыши на кнопку «Пуск» и выберите Диспетчер устройств.
  2. В верхнем меню обязательно выберите вкладку Вид и включите опцию Показать скрытые устройства.
  3. Разверните ветку Контроллеры USB (а также системные устройства).
  4. Найдите устройства со следующими именами и удалите их через контекстное меню (с установкой галочки «Попытаться удалить драйвер для этого устройства»):
    • Virtual Usb Bus Enumerator;
    • MultiKey USB Device;
    • Устройства, содержащие в названии SafeNet, Sentinel, HASP.

3. Очистка системного реестра Windows

Многие эмуляторы прописывают параметры запуска своих драйверов в системный реестр. Откройте редактор реестра (нажав Win + R и введя команду regedit) и удалите следующие ветки, если они присутствуют в вашей системе:

4. Удаление файлов драйверов с системного диска

Перейдите в системную папку драйверов операционной системы (обычно это путь C:\Windows\System32\drivers\ и C:\Windows\SysWOW64\drivers\) и удалите физические файлы эмуляторов, если они там остались:

5. Удаление временных файлов платформы 1С

Платформа 1С при обнаружении эмуляторов может оставлять маркеры блокировки во временных каталогах пользователей. Перейдите во временную папку текущего пользователя (для этого можно нажать Win + R и ввести команду %temp%).

Найдите и безвозвратно удалите файлы со специфическими именами, которые платформа использует для фиксации факта взлома, например файл a2b56bf6-5422-4459-84cf-a4fa40846c8e.tmp.

После проведения всех вышеописанных процедур обязательно выполните полную перезагрузку операционной системы сервера. После старта вы сможете обновить платформу «1С:Предприятие» до любого актуального релиза без риска получить ошибку нарушения целостности системы.

← На главную