При переходе с устаревшей платформы «1С:Предприятие 8.2» на современную версию 8.3 технические специалисты часто сталкиваются с необходимостью временного параллельного запуска двух серверов. Это позволяет проводить миграцию информационных баз постепенно, не останавливая оперативную работу пользователей. Однако на этапе настройки службы 1С 8.3 часто возникает неприятная проблема: новый сервер отказывается «видеть» существующую лицензию, в то время как старый сервер 1С 8.2 продолжает функционировать без каких-либо сбоев.
В этой статье мы подробно разберем, как устроена система программного лицензирования при параллельном запуске серверов, выясним причины возникновения аппаратных конфликтов защиты и составим пошаговый безопасный алгоритм решения проблемы без простоя рабочей системы.
Для начала снимем правовые вопросы. Официальная позиция компании «1С» однозначна: запуск нескольких кластеров серверов «1С:Предприятия» разных версий (или даже одной версии) на одном физическом или виртуальном компьютере полностью легален. С точки зрения лицензионного соглашения, программная лицензия на сервер привязывается к уникальным параметрам конкретного «железа». Количество запущенных процессов и служб на этом компьютере программно не ограничивается. Таким образом, одна серверная лицензия активирует абсолютно все службы сервера 1С на данной машине.
Первая техническая сложность заключается в том, что разные версии платформы используют разные каталоги по умолчанию для хранения и поиска файлов программных лицензий с расширением .lic.
Рассмотрим структуру каталогов для обеих версий:
C:\ProgramData\1C\1Cv82\conf\.C:\ProgramData\1C\licenses\.Если сервер 8.3 запущен, он по умолчанию ищет файлы лицензий в своей папке licenses. Так как файл лицензии 8.2 лежит в своей «старой» папке, сервер 8.3 его просто не находит.
Важное предупреждение: никогда не пытайтесь просто скопировать файл лицензии из папки 8.2 в папку 8.3! Механизм защиты платформы при сканировании каталогов обнаружит дублирование одного и того же файла лицензии на одном компьютере. Это расценивается системой защиты как попытка нарушения правил использования программного обеспечения, в результате чего обе лицензии могут быть заблокированы (аннулированы).
Для корректного перенаправления поиска используется конфигурационный файл location.cfg. Разберем по шагам, как настроить перенаправление:
2*.lic в каталоге платформы 8.2: C:\ProgramData\1C\1Cv82\conf\.C:\ProgramData\1C\1cv8\ (который относится к платформе 8.3).location.cfg.
location=C:\ProgramData\1C\1Cv82
Обратите внимание, что путь указывается именно к папке 1Cv82, а не к конечной папке conf. Платформа самостоятельно подставит нужный подкаталог при поиске.
Если после настройки путей или перемещения файлов платформа 8.3 выдает ошибку о том, что ключевой файл не подходит, или сообщает об изменении конфигурации компьютера, в то время как 8.2 продолжает стабильно работать — мы имеем дело с разницей в алгоритмах проверки оборудования.
Выясним причину этой ситуации. Алгоритм сбора характеристик компьютера (так называемый хеш оборудования) в платформе 8.3 существенно отличается от старой платформы 8.2:
Также стоит проверить разрядность сервера. Программные лицензии делятся на 32-разрядные и 64-разрядные. Если ваш старый сервер 8.2 работал в 32-битном режиме, а новый сервер 8.3 вы установили как 64-битный, то старая 32-битная серверная лицензия физически не подойдет к новому 64-битному серверу. В этом случае потребуется произвести апгрейд лицензии.
Чтобы точно понять, какой параметр компьютера изменился и мешает активации, администраторы используют специализированное ПО:
ring license list
Для получения подробной информации по конкретному файлу лицензии используем:
ring license info --name <Имя_Файла_Лицензии>
.lic. Утилита выводит информацию в два столбца: параметры компьютера на момент первой активации лицензии и текущие параметры оборудования, которые платформа видит прямо сейчас. Сравнив эти данные, можно сразу понять, что послужило причиной сбоя (например, изменился MAC-адрес или сетевое имя сервера). Иногда проще вернуть имя сервера назад или отключить лишний сетевой адаптер, чем тратить резервный пин-код.Рассмотрим детальный план действий, который позволит гарантированно запустить сервер 8.3 без риска надолго остановить работу пользователей в базе 8.2.
Шаг 1. Подготовка резервного пин-кода.
Перед началом любых манипуляций найдите конверт с пин-кодами от вашей серверной лицензии. Убедитесь, что у вас есть неиспользованные резервные пин-коды. Если они закончились, заранее напишите письмо на электронную почту Центра лицензирования 1С (lic@1c.ru) с темой «Запрос дополнительного пин-кода», указав регистрационный номер программного продукта и данные организации. Новые пин-коды предоставляются бесплатно.
Шаг 2. Объединение каталогов поиска (рекомендуемый современный метод).
Поскольку современные релизы платформы 8.2 (начиная с 8.2.15) умеют искать лицензии в единой папке licenses, лучше всего консолидировать файлы в одном месте:
services.msc. Это необходимо для того, чтобы процессы rphost освободили занятые файлы лицензий.2*.lic из папки C:\ProgramData\1C\1Cv82\conf\ в общую папку C:\ProgramData\1C\licenses\.Шаг 3. Запуск служб и активация через 8.3.
Запустите службу сервера 1С 8.2. Она должна успешно стартануть, так как умеет искать лицензии в новой папке. Далее перейдем к запуску сервера 8.3:
После успешного завершения процедуры в папке C:\ProgramData\1C\licenses\ создастся новый файл лицензии, содержащий обновленные параметры привязки к оборудованию, которые удовлетворят жестким требованиям платформы 8.3. При этом старый сервер 8.2 также сможет беспрепятственно работать с этим новым файлом.