При администрировании информационных баз 1С:Предприятия нередко возникает ситуация, когда в окне «О программе» отображается длинный список ранее задействованных программных и аппаратных лицензий (HASP). Даже после физического отключения старых ключей или корректного удаления тестовых эмуляторов эти записи продолжают сохраняться внутри базы. Разберем, как устроено хранение этой информации и какими способами можно полностью очистить историю использованных лицензий.
Прежде чем приступать к очистке, проанализируем структуру блока лицензирования в окне сведений о программе. В нем присутствуют два принципиально разных раздела:
Важно понимать, что наличие старых записей в блоке «Информационная база» не влияет на текущую работоспособность и не означает нелегальное использование, однако при аудите или передаче базы сторонним лицам часто требуется привести этот список в соответствие с фактическим состоянием.
Платформа 1С:Предприятие хранит журнал лицензий внутри служебной таблицы СУБД Files (или files) в специальном конфигурационном файле с расширением .pfl и фиксированным GUID. Чтобы удалить эту историю, выполним прямое обновление таблицы базы данных.
Для Microsoft SQL Server:
Откроем SQL Server Management Studio (SSMS), выберем целевую базу данных и выполним следующий запрос:
USE [Имя_Вашей_Базы]
GO
UPDATE Files
SET BinaryData = 0x, datasize = 0
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl';
В данном запросе мы явно очищаем двоичные данные и сбрасываем поле размера datasize, чтобы исключить расхождения в метаданных системных файлов 1С.
Для PostgreSQL:
В среде pgAdmin или через консольный клиент psql синтаксис приведения типов будет выглядеть следующим образом:
UPDATE files
SET binarydata = ''::bytea, datasize = 0
WHERE filename = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl';
Обязательные действия после выполнения SQL-запроса:
1C:Enterprise Server Agent (процессы rphost и rmngr могут удерживать прочитанные служебные таблицы в оперативной памяти).Если прямое вмешательство в структуры СУБД нежелательно или запрещено регламентом предприятия, используем штатные средства платформы. Обратите внимание: стандартная выгрузка базы в файл .dt не решит проблему, так как содержимое таблицы Files выгружается вместе со всей базой и восстанавливается обратно при загрузке.
Разберем корректный алгоритм штатной очистки:
.cf) из исходной базы через конфигуратор: Конфигурация → Сохранить конфигурацию в файл..cf в новую пустую базу и применим изменения структуры.При таком подходе служебные системные файлы старой базы не переносятся, и в новой базе история лицензий начнется с чистого листа.
В файловом режиме база данных упакована в единый файл 1Cv8.1CD. К нему невозможно применить стандартный язык SQL-запросов. Для файловых баз актуальны два варианта:
.cf и данных через XML.Если после физического извлечения аппаратных ключей платформа все еще запускается без ошибок и находит ключи HASP, проверим операционную систему на наличие скрытых драйверов-перехватчиков:
C:\Windows\System32\drivers\ на наличие драйверов фильтрации HASP (например, haspflt.sys).