Администрирование лицензий в среде 1С:Предприятие 8 часто превращается в запутанный квест для системного администратора. Ситуации, когда пользователи не могут войти в базу, лицензии "теряются", а в окне "О программе" отображается хаотичный список из десятков ключей, происходят регулярно. В этой статье мы подробно разберем, как устроена система защиты 1С, научимся безошибочно определять источники получения лицензий, выявлять следы использования эмуляторов защиты и чистить историю использования ключей в базах данных.
Для того чтобы проанализировать текущую ситуацию с лицензиями, рассмотрим структуру вывода информации в окне "О программе" (кнопка "i" в правом верхнем углу интерфейса 1С). Этот блок всегда разделен на несколько логических частей. Непонимание разницы между ними часто приводит к ложным выводам.
Проанализируем структуру этого окна по шагам:
Сетевой HASP4 ORGL8 50, получило клиентское приложение, это означает, что ваш компьютер самостоятельно нашел в локальной сети менеджер лицензий HASP LM и задействовал один свободный слот с красного сетевого ключа на 50 пользователей.Выясним причину, почему в истории информационной базы могут отображаться чужие организации или неизвестные разработчики. Когда сторонний программист (например, приглашенный специалист франчайзи) подключается к вашей базе со своего ноутбука под своей лицензией и выполняет обновление конфигурации в режиме Конфигуратора, платформа автоматически вшивает регистрационные данные его лицензии в метаданные базы. Именно поэтому в истории могут отображаться чужие имена, адреса и названия организаций.
Физические USB-ключи HASP от компании SafeNet (Gemalto), поставляемые фирмой 1С, делятся на несколько серий, каждая из которых имеет строго определенное назначение и уникальную маркировку на корпусе:
ORG8A наносится на ключи емкостью 300 пользователей, а маркировка ORG8B — на ключи для 500 пользователей.Важное ограничение при установке аппаратных ключей:
На одном физическом сервере (или в одной операционной системе) невозможно запустить два сетевых HASP-ключа одной серии (например, два ключа серии ORGL8 на 10 и 50 пользователей). Драйвер защиты и служба HASP License Manager инициализируют только один из них (обычно с наименьшим объемом лицензий), а второй останется неактивным. Чтобы обойти это ограничение, необходимо либо использовать ключи разных серий (например, объединить на одной машине ORGL8 на 100 мест и ORG8A на 300 мест, что даст суммарно 400 лицензий), либо разносить однотипные ключи на разные физические компьютеры сети, настраивая на каждом свой HASP LM.
При аудите лицензионной чистоты системный администратор должен обращать пристальное внимание на подозрительные записи в окне "О программе". Рассмотрим показательный пример:
Локальный HASP4 ORGL8 500
Давайте проанализировать эту запись. С технической точки зрения **такого оригинального аппаратного ключа в природе не существует**. Компания 1С никогда не выпускала локальных (однопользовательских) ключей на 500 рабочих мест. Фирменный ключ на 500 пользователей всегда является сетевым и поставляется исключительно в серии ORG8B.
Появление строчки Локальный... ORGL8 500 — это стопроцентный маркер того, что на сервере или локальном компьютере развернут эмулятор защиты (например, Virtual Usb Bus, UniKey или применены патчи к файлам платформы backbas.dll). Даже если сейчас вы используете легальные программные лицензии, наличие этой записи в блоке истории говорит о том, что ранее система подвергалась взлому, и остатки ломаных драйверов все еще могут находиться в операционной системе, создавая риски юридического и технического характера.
Если вы хотите навести порядок в информационной базе, удалить следы старых аппаратных эмуляторов или скрыть данные сторонних разработчиков, историю лицензий можно полностью очистить. Физическое удаление файлов программных лицензий с диска здесь не поможет, так как история хранится в таблицах самой базы данных. Рассмотрим по шагам методы очистки для разных вариантов размещения баз.
В серверных базах вся история работы с ключами записывается в таблицу настроек. В зависимости от версии платформы целевые данные располагаются в таблице Files или Params в строке со служебным именем файла c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl.
Для удаления истории нам потребуется выполнить SQL-запрос к базе данных, который обнулит бинарное поле этой настройки. Выберите СУБД, под управлением которой работает ваш сервер, и выполните соответствующий скрипт.
Пример SQL-запроса для Microsoft SQL Server:
UPDATE Files
SET BinaryData = CONVERT(varbinary(max), ''), datasize = 0
WHERE FileName = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl';
Пример SQL-запроса для PostgreSQL:
UPDATE files
SET binarydata = ''::bytea, datasize = 0
WHERE filename = 'c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl';
После выполнения запроса обязательно перезапустите службу сервера 1С:Предприятия (1C:Enterprise 8.3 Server Agent), чтобы очистить кэш сервера. При следующем запуске базы данных раздел "Информационная база" в окне лицензирования будет девственно чист.
В файловом режиме напрямую выполнить SQL-запрос невозможно. Чтобы безопасно вырезать запись об истории лицензий, выполним следующие шаги:
1Cv8.1CD.HaspCleaner), работающие через низкоуровневые библиотеки манипулирования структурой файлов 1CDLib. Данные инструменты находят в таблице Params строку с именем файла настроек лицензий и очищают её бинарное содержимое аналогично SQL-запросу.Если ваша компания перешла на использование современных программных лицензий (пин-кодов), то вместо аппаратных ключей система оперирует зашифрованными файлами с расширением .lic.
Разберем основные особенности работы с ними:
Где физически лежат файлы лицензий?
В операционной системе Windows платформа осуществляет поиск файлов .lic в строго определенных каталогах. Чаще всего они создаются в общей системной папке профиля всех пользователей:
C:\ProgramData\1C\licenses
Также платформа может искать их в каталоге установки платформы (например, C:\Program Files\1cv8\conf) или в папке профиля конкретного пользователя, под которым запущена служба сервера или сеанс 1С.
Особенности привязки и восстановления:
Программная лицензия жестко привязывается к ключевым параметрам компьютера (имя машины, модель процессора, объем ОЗУ, параметры сетевых плат, версия ОС и т.д.). Изменение любого из этих параметров приводит к тому, что лицензия "слетает". Для ее восстановления требуется использовать резервный пин-код.
Важное правило повторной активации:
При использовании нового пин-кода крайне важно вводить регистрационные данные владельца (ФИО, Название компании, адрес) буква в букву так же, как они были заполнены при самой первой активации комплекта. Малейшее расхождение (например, написание "ООО" вместо "Общество с ограниченной ответственностью") приведет к отказу Центра лицензирования 1С.
Использование утилиты RING для восстановления данных:
Если вы потеряли регистрационную карточку, заполненную много лет назад, вы можете восстановить эти данные прямо из действующего файла лицензии. Начиная с версии платформы 8.3.8, в комплект поставки входит консольная утилита RING (1c-enterprise-ring). С ее помощью администратор может прочесть зашифрованный файл .lic и извлечь сохраненный внутри XML-блок с регистрационными данными организации и ранее активированным пин-кодом. Это позволяет оперативно выполнить реактивацию лицензии при изменении аппаратной конфигурации сервера без длительного ожидания ответов от техподдержки.