Программа требует сервер СЛК: как найти причину и вернуть лицензии

· 9 мин

Содержание

СЛК — это не код ошибки и не состояние сервера 1С. Так называется система лицензирования и защиты конфигураций: её используют разработчики отраслевых решений, чтобы их модули работали только при наличии купленных лицензий. Сервер СЛК — отдельная служба, которая хранит эти лицензии (программные или на аппаратном ключе) и выдаёт их сеансам 1С.

Поэтому сообщение про сервер СЛК почти всегда значит одно: защищённая конфигурация попросила лицензию и не получила её. Причина — в цепочке «база → сервер СЛК → лицензия», а не в самой платформе 1С:Предприятие. Платформенные лицензии 1С здесь ни при чём: их выдаёт другой механизм.

Как устроена защита СЛК и где возникает сбой

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

Звеньев в этой цепочке пять, и обрыв любого из них даёт похожее сообщение:

  • 🧩 внешняя компонента СЛК — должна загрузиться в процесс 1С;
  • 🌐 сеть — адрес и порт сервера СЛК должны быть доступны;
  • ⚙️ служба сервера СЛК — должна быть запущена;
  • 🔑 ключ или программная лицензия — должны быть видны серверу СЛК и активированы;
  • 📊 свободные лицензии — их число не должно быть исчерпано.

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

В файловом варианте всё наоборот: компонента работает на каждом клиентском компьютере, и каждый из них должен «достучаться» до сервера СЛК.

Не путайте СЛК с лицензированием платформы

Что защищаетМеханизмКак проверить
Запуск платформы 1С:ПредприятиеПрограммные лицензии платформы или ключи HASP с менеджером лицензий (порт 475)Сообщение о том, что не найдена лицензия платформы, сразу при входе
Модули отраслевой конфигурацииСервер СЛК и его ключи/лицензииБаза открывается, но при обращении к защищённой функции появляется ошибка СЛК

Если база не запускается вообще — дело в лицензии платформы. Если открывается, а ломаются отдельные документы, обработки или обмены — смотрите СЛК.

Почему сервер СЛК перестаёт выдавать лицензии

Причины удобно разделить по звеньям цепочки.

Служба и сам сервер СЛК:

  • ⛔ служба остановлена после перезагрузки Windows или обновления;
  • 🔄 сервер СЛК переустановили на другой компьютер, а в базе остался старый адрес;
  • 🧱 обновили конфигурацию, и новая версия требует более свежий сервер СЛК.

Лицензии и ключи:

  • 🔌 аппаратный ключ вынули, переставили в другой USB-порт или он перестал определяться;
  • 🖥️ сервер СЛК работает на виртуальной машине, и после миграции хоста проброс USB-ключа пропал;
  • 💳 программная лицензия привязана к оборудованию, а железо заменили (диск, сетевая карта, материнская плата);
  • 👥 лицензии заняты: число одновременных сеансов превысило купленное.

Сеть и окружение:

  • 🔥 брандмауэр Windows или сетевой экран закрыл порт сервера СЛК;
  • 🛡️ антивирус заблокировал или удалил файл внешней компоненты;
  • 🌍 имя сервера СЛК не разрешается в DNS, а в настройках базы указано именно имя.

Сервер 1С:

  • 📁 у пользователя, от которого работает служба сервера 1С, нет прав на каталог, куда распаковывается внешняя компонента;
  • 🔒 в кластере включены профили безопасности, и они запрещают внешние компоненты.
Диагностика: выберите симптом

Диагностика сервера СЛК по шагам

Идите от сервера СЛК к базе. Так быстрее отсечь целые группы причин.

Шаг 1. Проверьте службу

На компьютере, где установлен сервер СЛК, откройте services.msc и найдите службу по слову «СЛК» или по имени из документации разработчика. Состояние — «Выполняется», тип запуска — «Автоматически».

Если служба остановлена, запустите её и посмотрите журнал Windows: eventvwr.msc → Журналы Windows → Приложение. Там будет причина остановки.

Шаг 2. Откройте веб-консоль сервера СЛК

У сервера СЛК есть веб-интерфейс администрирования. Обычно он открывается в браузере на самом сервере по адресу вида http://localhost:9099. Если порт меняли при установке, возьмите его из настроек службы.

В консоли проверьте три вещи:

  1. Виден ли ключ или программная лицензия.
  2. Для какого продукта лицензия и на сколько рабочих мест.
  3. Сколько лицензий выдано сейчас и каким сеансам.

Если ключ в списке не отображается, дальше искать нет смысла: проблема в ключе, драйвере или пробросе USB.

Шаг 3. Проверьте доступность порта с сервера 1С

На сервере 1С (для файловой базы — на компьютере пользователя) выполните в PowerShell:

Test-NetConnection -ComputerName slk-server -Port 9099

Вместо slk-server подставьте имя или IP-адрес сервера СЛК, вместо 9099 — фактический порт. Результат TcpTestSucceeded : True значит, что сеть в порядке. False — ищите правило брандмауэра или сетевого экрана.

Отдельно проверьте имя:

Resolve-DnsName slk-server

Если имя не разрешается, пропишите в настройках базы IP-адрес или поправьте DNS.

Шаг 4. Сверьте настройки подключения в базе

Адрес и порт сервера СЛК задаются в самой защищённой конфигурации. Форма настройки у каждого разработчика своя: ищите её в разделе администрирования решения или в документации по слову «лицензирование». Убедитесь, что там указан текущий сервер, а не тот, что был до переезда.

Шаг 5. Найдите следы в журнале регистрации

Откройте Администрирование → Обслуживание → Журнал регистрации (в Конфигураторе — Администрирование → Журнал регистрации). Поставьте отбор:

  • уровень — «Ошибка»;
  • период — время, когда пользователи сообщили о сбое;
  • пользователь — тот, у кого возникла ошибка.

В комментарии события будет полный текст исключения. По нему видно, на каком звене всё сломалось: не загрузилась компонента, нет связи с сервером или нет свободной лицензии. Если ошибок много, отфильтруйте по тексту «СЛК» в поле комментария.

Сохраните выгрузку журнала регистрации за день сбоя. Если придётся писать в поддержку разработчика решения, первым делом попросят именно её и версию сервера СЛК.

Что настроить в кластере 1С, чтобы защита работала стабильно

Этот раздел нужен только для клиент-серверного варианта. Настройки делаются в консоли администрирования серверов 1С:Предприятия.

Права службы сервера 1С

Служба сервера 1С по умолчанию работает от пользователя USR1CV8. Внешние компоненты распаковываются во временные каталоги этого пользователя. Если у него урезаны права или каталог чистит скрипт, компонента СЛК не загрузится.

Что сделать:

  1. Узнайте, от какого пользователя работает служба «Агент сервера 1С:Предприятия 8.3».
  2. Проверьте, что у него есть права на запись в его профиль и временный каталог.
  3. Исключите эти каталоги из агрессивной очистки и из блокировки антивирусом.

Профили безопасности

Если в кластере включены профили безопасности и для информационной базы назначен профиль, проверьте, разрешено ли в нём использование внешних компонент. Без этого разрешения защищённый код не запустится, причём только в серверной базе.

Перезапуск рабочих процессов

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

Если сбои совпадают по времени с перезапуском, перенесите его на ночь или увеличьте интервал.

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

Зависшие сеансы и занятые лицензии

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

rac session list --cluster=<id кластера>

Идентификатор кластера даёт rac cluster list. Перед завершением сеанса убедитесь, что пользователь действительно не работает: несохранённые данные пропадут.

Сеть, виртуализация и антивирус

Даже исправный сервер СЛК бывает недоступен из-за окружения. Проверьте эти места.

Брандмауэр и сетевые экраны

На сервере СЛК нужно входящее правило для его порта (TCP). Если между сервером 1С и сервером СЛК стоит аппаратный сетевой экран или они в разных подсетях, правило нужно и там. Типичная история: сервер СЛК перенесли в другой VLAN, а доступ открыли только для пользовательской сети.

Антивирус

Антивирус может принять файл внешней компоненты за подозрительный: он неизвестен, распаковывается во временный каталог и обращается к сети. Признаки — компонента пропадает после обновления антивирусных баз, а в его карантине лежит файл с похожим именем.

Решение — исключения для каталога распаковки компонент и для каталога установки сервера СЛК. Отключать антивирус полностью не нужно.

Виртуальные машины и USB-ключи

С аппаратным ключом на виртуальной машине важен проброс USB. После переноса виртуальной машины на другой хост или перезагрузки хоста ключ может не вернуться в гостевую систему. Варианты:

  • закрепить машину за хостом, где вставлен ключ;
  • использовать USB-over-IP концентратор;
  • перейти на программную лицензию, если разработчик решения её предлагает.

Замена оборудования

Программная лицензия обычно привязана к параметрам компьютера. Замена диска, сетевой карты или перенос на новый сервер может сделать её недействительной. До переезда сервера СЛК узнайте у поставщика, как перенести лицензию, иначе после переезда база останется без защищённых функций.

Профилактика: как заметить проблему раньше пользователей

Большинство остановок СЛК предсказуемы. Несколько простых мер снимают их заранее.

Регламент обслуживания сервера СЛК
Выполнено: 0 / 8

Для мониторинга достаточно простого скрипта по расписанию. Он проверяет порт и пишет в журнал Windows, если сервер СЛК не отвечает:

$ok = (Test-NetConnection -ComputerName slk-server -Port 9099 -WarningAction SilentlyContinue).TcpTestSucceeded
if (-not $ok) {
    Write-EventLog -LogName Application -Source "SLKCheck" -EntryType Error -EventId 1001 -Message "Сервер СЛК не отвечает"
}

Источник событий SLKCheck нужно один раз зарегистрировать от администратора: New-EventLog -LogName Application -Source SLKCheck. Дальше событие подхватит любая система мониторинга, которая читает журнал Windows.

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

Частые вопросы

Можно ли работать в базе, пока сервер СЛК недоступен?
Обычные функции конфигурации, как правило, работают. Не открываются только модули, которые разработчик закрыл защитой. Что именно перестанет работать, зависит от решения.
Нужно ли ставить сервер СЛК на тот же компьютер, что и сервер 1С?
Нет. Его можно поставить на любой компьютер в сети, к которому есть доступ по порту с сервера 1С. На одном сервере проще администрировать и меньше сетевых звеньев.
Сколько лицензий СЛК нужно на одного пользователя?
Обычно лицензия расходуется на сеанс, который обратился к защищённому коду. Пользователь с двумя открытыми окнами 1С может занять две. Точную модель учёта смотрите в описании решения.
Подойдёт ли один сервер СЛК для нескольких защищённых конфигураций?
Да, если у вас лицензии на все эти решения и версия сервера СЛК подходит каждому из них. Лицензии разных продуктов хранятся на нём раздельно.
Можно ли обойтись без сервера СЛК, если ключ потерян?
Нет. Защищённые модули без лицензии не запустятся. При потере или поломке ключа обращайтесь к поставщику решения за восстановлением лицензии.