При работе с отраслевыми решениями на платформе 1С:Предприятие часто возникает ситуация, когда количество отраслевых лицензий (СЛК) ограничено и значительно меньше общего числа пользователей, работающих в информационной базе. Например, в базе могут работать 10 сотрудников, выполняющих типовые задачи бухгалтерии, и лишь 4-5 специалистов, которым необходим специфический отраслевой функционал. В таких условиях критически важно настроить систему так, чтобы «типовые» пользователи не занимали дефицитные лицензии СЛК. Рассмотрим подробно, как работает механизм захвата и как им можно управлять.
Прежде всего, разберем, в какой момент происходит обращение к серверу СЛК. Поведение системы защиты зависит от того, как именно разработчик конкретной конфигурации интегрировал компоненту защиты в программный код. Существует два основных сценария:
ПриНачалеРаботыСистемы). В этом случае, если свободных лицензий нет, пользователь либо не сможет войти в базу вовсе, либо получит сообщение об ограничении функционала.Проанализируем ситуацию: если в вашей конфигурации лицензия занимается только при открытии отраслевой формы, то простое ограничение прав доступа для «лишних» пользователей может решить проблему. Однако, если проверка встроена в общие модули, инициализируемые при запуске, потребуются дополнительные настройки.
Одним из самых эффективных способов управления лицензиями является явное указание системе, нужно ли запрашивать ключ для конкретного пользователя. Рассмотрим пример реализации логики в модуле управляемого приложения. Мы можем проверять роли пользователя и, исходя из этого, разрешать или запрещать подключение к СЛК.
Для реализации этого метода можно использовать метод УстановитьПараметрыСвязи(). Посмотрим на пример кода:
Процедура ПриНачалеРаботыСистемы()
// Проверяем, есть ли у пользователя роль для работы с отраслевым функционалом
Если РольДоступна("ОтраслевойФункционал") Тогда
// Разрешаем системе использовать СЛК
ПараметрыСвязи = Новый Структура;
ПараметрыСвязи.Вставить("ИспользоватьЗащиту", Истина);
// Здесь могут быть дополнительные настройки подключения к серверу СЛК
МенеджерЗащиты.УстановитьПараметрыСвязи(ПараметрыСвязи);
Иначе
// Явно указываем, что для данного сеанса защита не должна запрашиваться
ПараметрыСвязи = Новый Структура;
ПараметрыСвязи.Вставить("ИспользоватьЗащиту", Ложь);
МенеджерЗащиты.УстановитьПараметрыСвязи(ПараметрыСвязи);
КонецЕсли;
КонецПроцедуры
Такой подход позволяет гарантированно отсечь пользователей, которым отраслевой блок не нужен по должностным инструкциям.
Если программное вмешательство в код конфигурации нежелательно (например, конфигурация находится на поддержке), проанализируем возможности самого Сервера СЛК. Современные версии СЛК (3.0 и выше) обладают развитым веб-интерфейсом администрирования (обычно доступен по адресу http://localhost:9099).
В консоли сервера СЛК можно выполнить следующие действия:
Выясним причину, по которой лицензия может запрашиваться даже без открытия документов. Часто в коде стоит проверка функциональной опции. Если функциональная опция использования отраслевого решения включена глобально для всей базы, система защиты может инициализироваться автоматически.
Рассмотрим вариант, когда использование отраслевого функционала можно привязать к персональным настройкам пользователя. Если отключить видимость отраслевых разделов через функциональные опции для конкретных сотрудников, это может предотвратить вызов защищенных модулей и, как следствие, захват лицензии.
При настройке системы защиты важно учитывать режим подсчета лицензий, который был выбран разработчиком решения. Рассмотрим два основных режима:
Тайм-ауты неактивности: Проанализируем ситуацию, когда пользователь открыл документ, занял лицензию и ушел на обед. В настройках сервера СЛК существует параметр «Тайм-аут неактивности». Мы рекомендуем устанавливать его в разумных пределах (например, 20-30 минут). Если в течение этого времени клиентское приложение не подтверждает активность, сервер принудительно освобождает лицензию для других сотрудников.
Чтобы понять, кто именно и в какой момент занимает лицензии, используйте встроенный Монитор лицензий в консоли сервера СЛК. Разберем, на что обратить внимание:
В заключение отметим, что наиболее надежным методом является сочетание ограничения прав доступа в самой 1С и настройки резервирования в консоли сервера СЛК. Это гарантирует, что бизнес-процессы не остановятся из-за случайного захвата лицензии сотрудником, которому этот функционал не требуется для работы.