Переход с нелицензионного программного обеспечения на официальные поставки — важный шаг для обеспечения стабильности и юридической безопасности бизнеса. Однако системные администраторы часто сталкиваются с техническими последствиями использования «взломанных» версий. Типичная ситуация: на компьютере ранее использовалась нелегальная сборка 1С для экспериментов, после чего компания приобрела официальную коробку 1С с аппаратным USB-ключом HASP на 5 пользователей. Вы устанавливаете лицензионную платформу, подключаете ключ, но в окне «О программе» продолжают отображаться фантомные лицензии — например, «500 локальных» и «50 сетевых».
В этой статье мы подробно разберем, почему операционная система и сама база данных продолжают «помнить» старый эмулятор, и как полностью очистить систему от его следов без переустановки Windows.
Прежде чем приступать к активным действиям, нам необходимо выяснить, где именно платформа 1С находит информацию о лишних лицензиях. Откроем окно «О программе» (кнопка с буквой «i» в правом верхнем углу или через главное меню) и проанализируем раздел информации о лицензировании. Нам важно обратить внимание на два поля:
Рассмотрим подробнее решения для обоих случаев.
История когда-либо использовавшихся ключей сохраняется платформой во внутренней таблице базы данных под названием Files (или files в СУБД PostgreSQL). Данные записываются в служебный файл профиля с уникальным идентификатором c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl.
Простой перенос базы через выгрузку и загрузку конфигурации (файлы .cf или резервные копии .dt) не решит проблему, так как эти механизмы полностью переносят системную таблицу Files со всей ее историей. Выясним, как правильно очистить эту таблицу в зависимости от режима работы базы.
Если ваша база работает на сервере под управлением Microsoft SQL Server или PostgreSQL, очистить историю очень просто с помощью прямого SQL-запроса к базе данных.
Важно: Перед выполнением любых операций напрямую в СУБД обязательно создайте резервную копию вашей информационной базы! При работе с большим количеством систем операцию упрощает автоматическое архивирование информационных баз 1С по расписанию.
Выполним следующий SQL-запрос для очистки бинарных данных файла профиля лицензий:
Для базы данных на Microsoft SQL Server:
UPDATE Files
SET BinaryData = CONVERT(varbinary(max), ''), datasize = 0
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'
Для базы данных на PostgreSQL:
UPDATE files
SET binarydata = ''::bytea, datasize = 0
WHERE filename = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl';
После выполнения запроса перезапустите службу сервера 1С:Предприятия и зайдите в базу. Проблема будет решена: в истории останется только ваша текущая легальная лицензия.
Поскольку к файловой базе нельзя применить SQL-запрос напрямую, нам придется использовать обходные пути:
ВыгрузкаЗагрузкаДанныхXML.epf (ее можно найти на диске ИТС или в каталоге шаблонов), мы переносим все данные из старой базы в новую. Этот способ гарантирует, что служебный файл истории лицензий не перенесется, так как переносятся только пользовательские данные и документы.Tool_1CD для работы с файлом 1Cv8.1CD. В ней необходимо открыть таблицу Files, найти строку с именем файла c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl и вручную очистить содержимое поля с бинарными данными.Если лишние лицензии отображаются как активные, значит эмулятор всё еще запущен в Windows. Проанализируем систему и очистим все возможные места нахождения компонентов взлома.
Большинство эмуляторов прописывают дампы ключей в системный реестр. Даже если вы удалили управляющие программы, ветки реестра могли остаться. Откроем редактор реестра (сочетание клавиш Win+R, вводим regedit) и проверим следующие пути. Если они существуют, их необходимо удалить:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\NEWHASP\Services\Emulator\HASP\Dump\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Emulator\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Emu\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\haspflt\Эмуляторы часто работают на уровне ядра ОС через специальный драйвер-фильтр haspflt.sys. Чтобы корректно остановить и полностью удалить его из системы, выполним следующие шаги:
sc stop haspflt
sc delete haspflt
del %systemroot%\system32\drivers\haspflt.sys
Часто эмуляторы устанавливают в систему виртуальную шину USB. Откроем «Диспетчер устройств» (команда devmgmt.msc в строке выполнения).
В верхнем меню обязательно выберем пункт «Вид» -> «Показать скрытые устройства». После этого внимательно изучим разделы «Системные устройства» и «Контроллеры USB». Нам нужно найти устройства с именами типа Virtual Usb Bus Enumerator, VUSBBUS или аналогичные виртуальные контроллеры. Нажмите на них правой кнопкой мыши и выберите «Удалить устройство», установив галочку «Попытаться удалить драйвер для этого устройства».
Некоторые старые варианты обхода защиты заменяли оригинальные библиотеки платформы 1С (например, файл backbas.dll в папке установки bin). Чтобы гарантировать чистоту кода платформы, выполним процедуру полной переустановки:
C:\Program Files\1cv8\ и C:\Program Files (x86)\1cv8\.%APPDATA%\1C\1Cv8\%LOCALAPPDATA%\1C\1Cv8\