Как исправить ошибку подключения к серверу лицензирования СЛК после переименования компьютера в сети

Системный администратор 1С v8.3 (Управляемые формы)
← На главную

В практике администрирования решений на платформе 1С:Предприятие часто возникает необходимость модернизации ИТ-инфраструктуры: переименование серверов, перенос баз данных или замена рабочих станций. Однако после изменения сетевого имени компьютера, на котором установлен ключ защиты, пользователи могут столкнуться с ошибкой запуска программы. На клиентских компьютерах продолжает всплывать старое имя сервера, и система отказывается запускаться, несмотря на то, что физически ключ исправен и служба лицензирования работает.

В этой статье мы подробно разберем, почему возникает эта проблема, почему стандартные файлы конфигурации HASP не помогают в ее решении, и как по шагам восстановить работоспособность системы при использовании СЛК (Системы лицензирования конфигураций).

Выясняем причину: почему nethasp.ini и файл hosts не помогают?

При возникновении проблем с поиском ключа защиты системные администраторы первым делом начинают проверять сетевые настройки HASP-клиента. Они редактируют файл nethasp.ini, прописывают новые IP-адреса в файле hosts или проверяют настройки брандмауэра. Однако эти действия не принесут результата, если в вашей конфигурации используется специализированная защита — СЛК (разработка компании «1С-Рарус» или ВДГБ, часто применяемая в отраслевых решениях, таких как ЖКХ, Ломбард, Общепит и др.).

В отличие от классических аппаратных ключей защиты HASP от компании Sentinel, система СЛК работает по собственному программному протоколу через TCP-порт (обычно 9099). Параметры подключения клиентов к серверу лицензий СЛК хранятся не в файлах операционной системы, а непосредственно внутри самой информационной базы 1С — в специальной константе.

Проанализируем программный код конфигурации, отвечающий за связь с сервером лицензирования:


Процедура ПрочитатьПараметрыСвязи()
    
    СтрокаПараметровСвязи = НаборКонстант.СЗК_ПараметрыСвязи;
    
    ИмяАдресКомпьютера = ПолучитьНастройкуИзКонстанты("host=", СтрокаПараметровСвязи);
    СетевойПорт        = ПолучитьНастройкуИзКонстанты("port=", СтрокаПараметровСвязи);
    
    Если ПустаяСтрока(СтрокаПараметровСвязи) И ЭтоФайловыйВариантИБ Тогда
        ВариантСвязи = 2;
    ИначеЕсли НРег(ИмяАдресКомпьютера) = "localhost" Тогда
        ВариантСвязи = 0;
    Иначе
        ВариантСвязи = 1;
    КонецЕсли;
    
КонецПроцедуры

Как мы видим из кода, обработка защиты считывает настройки из константы СЗК_ПараметрыСвязи (Система Защиты Конфигурации). В ней в виде строки хранится адрес хоста и порт, например: host=BELEOKS;port=9099;. Когда имя компьютера-сервера меняется в локальной сети, старое имя остается записанным в этой константе внутри базы данных. Именно поэтому на всех клиентских компьютерах при запуске продолжает отображаться ошибка со старым именем хоста.

Ниже мы подробно рассмотрим четыре практических способа решения этой проблемы, начиная от самых простых интерфейсных методов и заканчивая низкоуровневой настройкой файлов конфигурации.

Способ 1. Изменение настроек через пользовательский интерфейс 1С:Предприятие

Самый правильный и безопасный способ — изменить настройки СЛК непосредственно из режима «1С:Предприятие» под пользователем с полными правами. В зависимости от конкретного отраслевого решения меню настройки может располагаться в разных местах.

Выполним следующие шаги для изменения параметров связи:

  1. Запустите программу 1С:Предприятие под учетной записью с правами Администратора.
  2. Перейдите в раздел настроек решения. Для программ сферы ЖКХ перейдите в меню Учет в ЖКХ -> Настройка программы (ЖКХ).
  3. В открывшемся окне найдите вкладку Дополнительно (или аналогичный раздел, связанный с сервисными функциями) и выберите пункт Настройка параметров системы лицензирования.
  4. В открывшейся форме «Параметры связи с сервером СЛК» выберите вариант подключения На другом компьютере сети.
  5. В поле «Адрес компьютера» введите новое имя вашего сервера лицензий или его статический IP-адрес. В поле «Порт» укажите актуальный порт (по умолчанию 9099).
  6. Нажмите кнопку Записать и закрыть. Параметры будут успешно сохранены в информационной базе, и у всех пользователей восстановится доступ.

Способ 2. Изменение константы напрямую через «Функции для технического специалиста»

Если интерфейсный пункт меню по какой-то причине недоступен (например, программа не запускается у администратора из-за жесткой блокировки при отсутствии связи с ключом), мы можем отредактировать константу напрямую.

Разберем этот процесс по шагам:

  1. Запустите 1С:Предприятие. Если при запуске всплывает окно ошибки защиты СЛК, попробуйте войти в режиме Конфигуратора, либо временно запустите локальную копию базы в файловом режиме (если это возможно).
  2. Если база открылась, перейдите в главное меню программы (кнопка с тремя полосками в левом верхнем углу) -> Настройки -> Параметры.
  3. Установите флажок Отображать команду "Функции для технического специалиста" (в старых версиях платформы эта команда называлась «Все функции») и нажмите «ОК».
  4. Откройте меню Функции для технического специалиста.
  5. Раскройте ветку Константы и найдите в списке константу с именем Параметры связи СЗК (системное имя — СЗК_ПараметрыСвязи).
  6. Откройте значение этой константы. Вы увидите строку вида host=СТАРОЕ_ИМЯ;port=9099;.
  7. Замените старое имя компьютера на новое сетевое имя или на постоянный IP-адрес нового сервера. Пример корректной строки: host=192.168.1.50;port=9099;.
  8. Нажмите кнопку Записать. Настройки вступят в силу мгновенно для всех пользователей сети.

Способ 3. Программное изменение константы (для разработчиков)

Если у вас есть доступ к Конфигуратору, но запустить режим Предприятия для редактирования константы не удается из-за ошибок лицензирования, вы можете обновить значение константы программно с помощью короткого скрипта.

Для этого выполните следующие действия:

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

&НаСервере
Процедура ИзменитьНастройкиСЛКНаСервере()
    
    // Задаем параметры подключения к новому серверу лицензирования
    НовыеПараметры = "host=ИМЯ_НОВОГО_КОМПЬЮТЕРА;port=9099;";
    
    // Записываем значение напрямую в константу
    Константы.СЗК_ПараметрыСвязи.Установить(НовыеПараметры);
    
    Сообщить("Параметры связи СЛК успешно обновлены на: " + НовыеПараметры);
    
КонецПроцедуры
  1. Запустите отладку (клавиша F5). Даже если режим Предприятия выдаст ошибку защиты, в некоторых случаях платформа позволяет запустить конфигурацию для администратора в режиме отладки с ограниченным функционалом.
  2. Откройте созданную обработку через меню Файл -> Открыть, нажмите кнопку и выполните код.

Альтернативно, если база данных файловая, вы можете временно отключить проверку лицензионного ключа в коде модуля управляемого приложения (в процедуре ПриНачалеРаботыСистемы), запустить Предприятие, изменить константу стандартным способом и вернуть код в исходное состояние.

Способ 4. Локальное переопределение настроек на клиентских ПК

Бывают ситуации, когда база данных является распределенной (РИБ) или используется в разных филиалах, где установлены свои локальные серверы лицензирования СЛК. В таком случае централизованное изменение константы в базе данных не подходит, так как у каждого офиса должен быть свой адрес сервера лицензий.

Для решения этой задачи разработчики СЛК предусмотрели механизм локального переопределения через файлы конфигурации на клиентских рабочих станциях:

  1. На клиентском компьютере перейдите в каталог данных программы. Обычно он располагается по пути: %ProgramData%\1C\licence\3.0\ (в операционной системе Windows этот путь ведет в скрытую папку C:\ProgramData\1C\licence\3.0\).
  2. Найдите или, если он отсутствует, создайте текстовый файл с именем licenceaddin.conf.
  3. Откройте этот файл в любом текстовом редакторе (например, Блокноте) и пропишите параметры подключения к локальному серверу лицензий в формате JSON. Пример содержимого файла:

{
    "host": "ИМЯ_НОВОГО_КОМПЬЮТЕРА",
    "port": 9099
}
  1. Сохраните файл. При запуске 1С компонента защиты СЛК в первую очередь прочитает настройки из локального файла licenceaddin.conf, проигнорировав значение общей константы СЗК_ПараметрыСвязи из базы данных. Это позволит гибко настроить подключение индивидуально для каждого рабочего места.

Дополнительная диагностика: работа с консолью сервера СЛК

После того как вы изменили имя компьютера в настройках 1С, убедитесь, что сам сервер лицензирования СЛК работает корректно на новом месте. СЛК версии 3.0 и выше имеет удобную встроенную веб-консоль управления.

Чтобы проверить статус сервера лицензий:

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

← На главную