Рассмотрим распространенную ситуацию, с которой часто сталкиваются небольшие организации и начинающие системные администраторы. Имеется рабочая станция под управлением обычной клиентской операционной системы (например, Windows 10 или Windows 11), на которой локально работает один пользователь. В эту же базу по локальной сети заходят еще несколько сотрудников. База данных файловая, конфигурация построена на обычных формах.
Для работы используются аппаратный USB-ключ из основной поставки программы и комплект из 5 однопользовательских программных лицензий, которые уже были активированы на клиентских компьютерах. Вдруг возникает необходимость подключить еще одного сотрудника удаленно через терминальный доступ (RDP) на тот самый компьютер-хост, где уже трудится локальный пользователь. Однако при попытке запуска 1С в RDP-сессии система выдает ошибку: "Ключ защиты программы не обнаружен" или "Не найдена лицензия 1С".
Выясним причины такого поведения системы защиты платформы 1С:Предприятие и подробно разберем, как правильно настроить программное лицензирование для одновременной работы локального и удаленного пользователей на одном компьютере.
Проанализируем особенности работы аппаратных ключей защиты HASP. Локальный однопользовательский USB-ключ (обычно он имеет синий цвет корпуса), входящий в основную поставку, предназначен строго для использования на том физическом месте, куда он подключен.
Когда удаленный пользователь подключается к компьютеру по протоколу RDP, операционная система создает для него изолированную виртуальную терминальную сессию. Платформа 1С, запущенная внутри этой RDP-сессии, по соображениям безопасности и в соответствии с лицензионной политикой, не видит локальные USB-устройства защиты, подключенные к портам компьютера. Исключением является только так называемая консольная сессия (сеанс с ID 0), в которой работает локальный физический пользователь за монитором.
Сетевая раздача лицензий с USB-ключа возможна только в том случае, если используется многопользовательский (красный) сетевой ключ и на компьютере запущена специальная служба HASP License Manager. Локальный синий ключ раздать по сети или "пробросить" в RDP-сессию штатными средствами невозможно. Именно поэтому пользователю в терминальной сессии требуется отдельная программная лицензия.
Среди ИТ-специалистов часто бытует мнение, что нельзя активировать несколько однопользовательских программных лицензий из одного комплекта на одном физическом компьютере, так как файлы лицензий якобы могут заблокировать или аннулировать друг друга. Это миф.
На самом деле платформа 1С:Предприятие 8 отлично умеет суммировать программные лицензии, находящиеся на одном хосте. При активации различных пин-кодов из одного комплекта система формирует уникальные файлы с расширением .lic. Имена этих файлов создаются на основе регистрационного номера комплекта и уникального идентификатора запроса, поэтому они физически не перезаписывают друг друга. Главное — правильно указать параметры доступности при активации.
Для решения нашей задачи мы будем использовать один оставшийся свободным пин-код из имеющегося пятипользовательского комплекта программных лицензий. Выполним настройку по шагам:
Разберем подробнее разницу между вариантами доступности лицензии при ее активации:
Если бы мы по ошибке выбрали вариант "Только текущему пользователю", платформа записала бы файл лицензии в личный профиль текущего RDP-пользователя Windows по пути:
C:\Users\[Имя_Пользователя_RDP]\AppData\Roaming\1C\1Cv8\Conf\
В этом случае локальный пользователь компьютера или другие пользователи RDP не смогли бы получить доступ к этой лицензии. Платформа просто не увидела бы этот файл из-под других учетных записей операционной системы.
При выборе варианта "Всем пользователям данного компьютера" платформа сохраняет файл лицензии в общую системную директорию, к которой имеют доступ все пользователи операционной системы:
C:\ProgramData\1C\licenses\
В этой папке могут одновременно находиться несколько файлов лицензий (например, файл для локального пользователя и файл для удаленного пользователя RDP). Платформа при запуске сканирует данный каталог, суммирует все найденные в нем лицензии и без проблем запускает параллельные сеансы работы.
Хотя схема с использованием RDP на обычной клиентской Windows 10/11 является рабочей, она имеет ряд существенных недостатков:
termsrv.dll, в результате чего удаленный пользователь потеряет доступ к системе до тех пор, пока администратор снова не обновит патч.Проанализируем альтернативное и гораздо более стабильное решение — работу через веб-сервер. Для этого на компьютере, где физически расположена база данных, настраивается бесплатный веб-сервер (например, Apache или встроенный в Windows IIS). База данных публикуется на веб-сервере штатными средствами Конфигуратора 1С.
В этом случае удаленный сотрудник работает на своем личном компьютере или ноутбуке через бесплатное приложение "1С:Предприятие — Тонкий клиент", подключаясь к базе по протоколу HTTP или HTTPS. Настройка лицензирования при такой схеме выглядит следующим образом:
Данный подход полностью легален, не зависит от обновлений операционной системы на главном компьютере, а также защищает базу данных от повреждений при внезапных обрывах связи, так как Тонкий клиент общается с базой через веб-сервер короткими безопасными пакетами запросов.