Программа требует сервер СЛК: как найти причину и вернуть лицензии
Содержание
СЛК — это не код ошибки и не состояние сервера 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. Если порт меняли при установке, возьмите его из настроек службы.
В консоли проверьте три вещи:
- Виден ли ключ или программная лицензия.
- Для какого продукта лицензия и на сколько рабочих мест.
- Сколько лицензий выдано сейчас и каким сеансам.
Если ключ в списке не отображается, дальше искать нет смысла: проблема в ключе, драйвере или пробросе 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С:Предприятия 8.3».
- Проверьте, что у него есть права на запись в его профиль и временный каталог.
- Исключите эти каталоги из агрессивной очистки и из блокировки антивирусом.
Профили безопасности
Если в кластере включены профили безопасности и для информационной базы назначен профиль, проверьте, разрешено ли в нём использование внешних компонент. Без этого разрешения защищённый код не запустится, причём только в серверной базе.
Перезапуск рабочих процессов
В свойствах рабочего сервера может быть задан интервал перезапуска рабочих процессов. Перезапуск обрывает сеансы. Сеанс, который держал лицензию СЛК, отпускает её не всегда мгновенно — новый сеанс может на короткое время не получить свободную лицензию.
Если сбои совпадают по времени с перезапуском, перенесите его на ночь или увеличьте интервал.
Перезапуск рабочих процессов и службы сервера 1С обрывает работу всех пользователей базы. Делайте это вне рабочего времени и предупредите людей заранее.
Зависшие сеансы и занятые лицензии
Сеансы, которые остались после аварийного закрытия клиента, продолжают числиться в кластере. Посмотреть их можно в консоли администрирования (ветка «Сеансы» информационной базы) или командой:
rac session list --cluster=<id кластера>
Идентификатор кластера даёт rac cluster list. Перед завершением сеанса убедитесь, что пользователь действительно не работает: несохранённые данные пропадут.
Сеть, виртуализация и антивирус
Даже исправный сервер СЛК бывает недоступен из-за окружения. Проверьте эти места.
Брандмауэр и сетевые экраны
На сервере СЛК нужно входящее правило для его порта (TCP). Если между сервером 1С и сервером СЛК стоит аппаратный сетевой экран или они в разных подсетях, правило нужно и там. Типичная история: сервер СЛК перенесли в другой VLAN, а доступ открыли только для пользовательской сети.
Антивирус
Антивирус может принять файл внешней компоненты за подозрительный: он неизвестен, распаковывается во временный каталог и обращается к сети. Признаки — компонента пропадает после обновления антивирусных баз, а в его карантине лежит файл с похожим именем.
Решение — исключения для каталога распаковки компонент и для каталога установки сервера СЛК. Отключать антивирус полностью не нужно.
Виртуальные машины и USB-ключи
С аппаратным ключом на виртуальной машине важен проброс USB. После переноса виртуальной машины на другой хост или перезагрузки хоста ключ может не вернуться в гостевую систему. Варианты:
- закрепить машину за хостом, где вставлен ключ;
- использовать USB-over-IP концентратор;
- перейти на программную лицензию, если разработчик решения её предлагает.
Замена оборудования
Программная лицензия обычно привязана к параметрам компьютера. Замена диска, сетевой карты или перенос на новый сервер может сделать её недействительной. До переезда сервера СЛК узнайте у поставщика, как перенести лицензию, иначе после переезда база останется без защищённых функций.
Профилактика: как заметить проблему раньше пользователей
Большинство остановок СЛК предсказуемы. Несколько простых мер снимают их заранее.
Для мониторинга достаточно простого скрипта по расписанию. Он проверяет порт и пишет в журнал 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.
Обновления держите в паре. Новая версия конфигурации может требовать новую версию сервера СЛК и компоненты. Читайте примечания к релизу решения перед обновлением, а не после.