При обновлении платформы «1С:Предприятие» системные администраторы часто сталкиваются с неприятной проблемой: система внезапно прекращает работу, выдавая критическую ошибку «Обнаружено нарушение целостности системы». При этом в окне «О программе» могут продолжать отображаться старые неактивные лицензии, такие как Сетевой HASP4 ORGL8 50, даже если сейчас сервер работает на легальной программной или аппаратной защите.
В рамках этой статьи мы подробно разберем, почему возникает эта ошибка, как взаимосвязаны история лицензий в самой базе данных и состояние операционной системы, а также рассмотрим пошаговые инструкции по очистке информационной базы и окружения Windows от компрометирующих следов.
Начиная с версий платформы 8.3.10.2650 (и особенно жестко в более современных релизах), компания 1С внедрила встроенные механизмы детектирования средств обхода защиты. Проверка работает в двух плоскостях:
MultiKey, VUsb) или их остаточных «хвостов».Важное уточнение: само по себе наличие записи о старом эмуляторе в окне «О программе» не блокирует запуск системы, если операционная система полностью чиста. Однако это является прямой уликой использования нелицензионного ПО в прошлом. Главным же виновником блокировки всегда выступают остатки драйверов эмулятора в операционной системе сервера или терминала.
Давайте выясним, почему при переносе базы через выгрузку конфигурации (файл .cf) история очищается, а при переносе через резервную копию (файл .dt) — нет. Дело в том, что файл конфигурации содержит только структуру метаданных, в то время как файл резервной копии данных переносит всю служебную информацию, включая таблицу системных настроек информационной базы.
Вся история когда-либо подключенных к базе лицензий хранится в специальной системной таблице Files под именем файла настроек c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl. Чтобы заставить базу «забыть» старый нелегальный ключ, нам необходимо обнулить содержимое этого файла.
Если ваша информационная база развернута на сервере СУБД (Microsoft SQL Server, PostgreSQL, IBM DB2 или Oracle), процесс очистки сводится к выполнению прямого запроса к таблице базы данных. Рассмотрим этот процесс по шагам:
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'
Поскольку напрямую выполнить SQL-запрос к файлу 1Cv8.1CD стандартными средствами нельзя, мы можем пойти двумя путями:
.dt) на временный SQL-сервер, выполнить очистку по схеме, описанной выше, затем выгрузить базу обратно в формат .dt и развернуть ее как файловую.HaspCleaner1CD.epf, которое работает совместно с библиотекой прямого доступа к файлам баз данных 1CDLib.dll. Запустив эту обработку в любой другой (пустой) базе 1С, вы указываете путь к закрытому файлу вашей целевой базы 1Cv8.1CD, и обработка сама производит очистку записи внутри служебной таблицы.Очистка базы данных решает эстетическую проблему отображения лицензий. Однако для устранения ошибки «Обнаружено нарушение целостности системы» нам потребуется полностью вычистить следы присутствия эмуляторов из операционной системы, в которой работает платформа 1С (на сервере или локальном ПК терминального пользователя).
Проанализируем основные места, в которых эмуляторы оставляют свои следы, и разберем по шагам процесс их удаления.
Эмуляторы часто маскируются под легальные системные службы или создают собственные драйверы виртуальных устройств. Нам необходимо проверить список служб Windows и удалить подозрительные объекты. К ним относятся:
Sentinel LDK License Manager (если вы не используете реальные HASP-ключи);HASP Loader;ICCSProxy;Emu, Emulator, Virtual USB в названии.Для удаления службы запустите командную строку от имени администратора и выполните команду удаления, например: sc delete "Имя_Службы".
Эмуляторы аппаратных ключей создают виртуальные USB-контроллеры, которые платформа 1С мгновенно определяет как нелегальные. Выполним их удаление:
Virtual Usb Bus Enumerator;MultiKey USB Device;SafeNet, Sentinel, HASP.Многие эмуляторы прописывают параметры запуска своих драйверов в системный реестр. Откройте редактор реестра (нажав Win + R и введя команду regedit) и удалите следующие ветки, если они присутствуют в вашей системе:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\haspfltHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EmulatorHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EmuHKEY_LOCAL_MACHINE\System\CurrentControlSet\NEWHASP\Services\Emulator\HASP\DumpHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\vusbbus\Перейдите в системную папку драйверов операционной системы (обычно это путь C:\Windows\System32\drivers\ и C:\Windows\SysWOW64\drivers\) и удалите физические файлы эмуляторов, если они там остались:
multikey.sysvusbbus.syshaspflt.sysVUsb.sysПлатформа 1С при обнаружении эмуляторов может оставлять маркеры блокировки во временных каталогах пользователей. Перейдите во временную папку текущего пользователя (для этого можно нажать Win + R и ввести команду %temp%).
Найдите и безвозвратно удалите файлы со специфическими именами, которые платформа использует для фиксации факта взлома, например файл a2b56bf6-5422-4459-84cf-a4fa40846c8e.tmp.
После проведения всех вышеописанных процедур обязательно выполните полную перезагрузку операционной системы сервера. После старта вы сможете обновить платформу «1С:Предприятие» до любого актуального релиза без риска получить ошибку нарушения целостности системы.