Очистка истории лицензий 1С 8.3 на сервере — инструкция

В 1С:Предприятие 8.3 база хранит историю всех лицензий, на которых запускалась. Если список избыточный или содержит нежелательные записи — его можно очистить через запрос к PostgreSQL в pgAdmin.
1C

Платформа 1С:Предприятие 8.3 хранит в информационной базе список всех лицензий, на которых эта база когда-либо запускалась. Если база много раз переносилась между серверами, меняла HASP-ключи или использовалась в разных конфигурациях, история разрастается. Лишние записи видны в разделе «О программе» и могут вызывать вопросы при аудите. Очистка выполняется одним SQL-запросом к базе PostgreSQL через pgAdmin без остановки сервера.

Что означает история лицензий в 1С 8.3

Конфигурации на платформе 1С:Предприятие 8.3 (Бухгалтерия 3.0, УТ 11, ЗУП 3.1, ERP 2.5 и другие) фиксируют в специальном файле базы данных запись о каждой лицензии, с которой база была запущена. Посмотреть список можно в интерфейсе клиента: Помощь → О программе → Лицензия. Там отображается текущая лицензия и все, что когда-либо применялась к этой базе. Сама по себе история никак не мешает работе, но создаёт неудобства при проверке и анализе лицензионного использования.

Причины появления длинного списка лицензий

  • База переносилась между серверами с разными HASP-ключами
  • Использовались временные программные лицензии во время переезда
  • На сервере последовательно менялись ключи защиты разного номинала
  • База копировалась для тестирования с разных рабочих окружений
  • Обновление платформы 1С сопровождалось сменой лицензионного ключа

Способ 1: Очистить историю через pgAdmin (PostgreSQL)

Этот способ применим, если информационная база хранится в PostgreSQL — стандартный выбор для клиент-серверного варианта 1С 8.3 (платформа 8.3.20+, 8.3.22+, 8.3.24+).

Перед выполнением сделайте резервную копию базы данных.

  1. Откройте pgAdmin и подключитесь к серверу PostgreSQL, на котором размещена информационная база 1С.
  2. В дереве объектов разверните нужную базу данных и откройте инструмент запросов (Tools → Query Tool).
    pgAdmin — очистка истории лицензий 1С 8.3
  3. Введите следующий запрос:
    UPDATE Files
    SET BinaryData = ''
    WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl'
  4. Выполните запрос (кнопка Execute / Run или F5). Запрос должен вернуть «1 row affected».
  5. Откройте 1С:Предприятие, запустите нужную конфигурацию и проверьте раздел Помощь → О программе → Лицензия.

В результате в истории останется только текущая активная лицензия.

История лицензий 1С после очистки

Способ 2: Найти и обнулить файл .pfl в файловой базе

Если база работает в файловом режиме (не клиент-серверном), файл с историей лицензий хранится прямо в папке базы с расширением .pfl.

  1. Закройте все клиентские соединения с базой 1С.
  2. Откройте папку информационной базы в Проводнике.
  3. Найдите файл с именем c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl.
  4. Скопируйте файл в резервную копию.
  5. Откройте файл в HEX-редакторе или просто удалите его содержимое (оставьте пустой файл).
  6. Запустите 1С и проверьте список лицензий в «О программе».

Способ 3: Использовать консоль кластера 1С

Для серверного варианта 1С администратор может управлять некоторыми параметрами базы через консоль кластера серверов 1С (Cluster Console) без прямого обращения к SQL.

  1. Откройте Консоль кластеров серверов 1С Предприятия (входит в состав сервера 1С:Предприятие 8.3).
  2. Подключитесь к серверу.
  3. Найдите нужную информационную базу.
  4. Перезапустите фоновые задания базы — при следующем запуске конфигурация может перечитать актуальную лицензию.

Этот способ не всегда очищает историю полностью. Для гарантированного результата используйте Способ 1 через pgAdmin.

Что делать если ничего не помогло

  • Запрос не находит строку: возможно, имя файла в вашей версии платформы отличается. Выполните поиск:
    SELECT FileName FROM Files WHERE FileName LIKE '%.pfl'

    — получите актуальное имя файла и подставьте его в запрос UPDATE.

  • Нет доступа к pgAdmin: обратитесь к системному администратору сервера PostgreSQL — для выполнения запроса нужны права суперпользователя или владельца базы данных.
  • История возвращается после обновления платформы: некоторые обновления 1С восстанавливают файл .pfl. После каждого обновления может потребоваться повторная очистка.

FAQ

Это легально — очищать историю лицензий 1С?

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

На каких конфигурациях работает этот метод?

На всех типовых конфигурациях 1С:Предприятие 8.3: Бухгалтерия предприятия 3.0, Управление торговлей 11, ЗУП 3.1, ERP 2.5, Управление небольшой фирмой и других. Главное условие — база хранится в PostgreSQL или в файловом режиме.

Нужно ли останавливать сервер 1С перед выполнением запроса?

Для PostgreSQL — не обязательно, если нет активных сеансов в этой базе. Рекомендуется выполнять в период технического обслуживания, когда пользователи не работают в системе.

Что будет, если указать неправильное имя файла в запросе?

Запрос выполнится, но не затронет ни одной строки (0 rows affected). Никаких данных удалено не будет. Это безопасная ошибка.

Можно ли восстановить историю лицензий после очистки?

Только если вы сделали резервную копию перед очисткой. После применения запроса данные о предыдущих лицензиях стираются безвозвратно. При следующем запуске 1С создаст новую запись с текущей лицензией.

Работает ли способ с MS SQL Server вместо PostgreSQL?

Да, логика та же: найти таблицу Files в базе данных 1С и выполнить аналогичный UPDATE. Синтаксис SQL идентичен, нужно только подключиться к нужной базе через SQL Server Management Studio.

Алексей Герзанов aka Gerzoid
Алекс Гезанов

Работаю в сервисном центре по ремонту и обслуживанию бытовой техники. За более чем 10 лет трудовой деятельности, я сталкивался с решением большого количества проблем в работе ОС Windows, периферийных устройств, бытовой техники, игровых консолей Playstation и т. д.

Добавить комментарий

  1. Pavel

    Не сработал способ. Даже удаление этой строки из базы, не оказывает эффекта.

    Ответить