Каждый системный администратор или специалист 1С рано или поздно сталкивается с классической проблемой: база прекрасно запускается локально на компьютере-сервере, но как только пользователь пытается подключиться к этому же компьютеру удаленно через стандартное средство Windows — удаленный рабочий стол (RDP), программа выдает ошибку: «Не обнаружен ключ защиты программы!».
В этой статье мы подробно разберем, почему возникает эта проблема с точки зрения архитектуры платформы 1С, как функционируют различные типы аппаратных ключей, и рассмотрим шесть практических способов решения данной задачи — от бесплатных настроек до официального перехода на современные технологии лицензирования.
Для начала проанализируем ситуацию и поймем, почему обычная переустановка драйверов или утилиты HASP License Manager не приносит результата. Всё дело в аппаратной разновидности используемого USB-ключа и заложенном в платформу 1С алгоритме проверки лицензий.
Аппаратные USB-ключи HASP (выпускаемые компанией Thales/Gemalto, ранее Aladdin) делятся на три основные категории:
HASP HL Basic или H4 M1 ORGL8).NET5 ORGL8, NET10 ORGL8 и т.д.).ENSR8).Если вы используете синий однопользовательский ключ, то при его обработке вступает в силу жесткое лицензионное ограничение. Как только платформа 1С запускается, она опрашивает операционную систему на предмет типа текущей сессии. Если ОС возвращает статус терминального подключения (Terminal Services / RDP-сессия), 1С целенаправленно игнорирует локальный USB-порт с установленным однопользовательским ключом.
Разработчики сделали это для того, чтобы исключить возможность нелегального использования одной локальной лицензии несколькими пользователями одновременно на одном сервере. Утилита HASP License Manager в данном случае абсолютно бесполезна: она умеет работать и раздавать лицензии по сети (через порт 475 UDP/TCP) только для сетевых (красных) ключей. Однопользовательский ключ она просто «не видит» и не транслирует.
Рассмотрим подробнее по шагам, какие существуют пути обхода и официального решения этой проблемы.
Если с базой удаленно должен работать только один человек (например, системный администратор во внерабочее время или приходящий бухгалтер), мы можем обойти ограничение RDP, подключившись непосредственно к физической (консольной) сессии компьютера. В Windows этот режим называется сессией «0».
Для этого выполним следующие действия:
mstsc.exe /v:IP_адрес_сервера /admin (для устаревших операционных систем Windows XP/Server 2003 использовался параметр /console).При таком подключении операционная система сообщает платформе 1С, что пользователь находится за физическим монитором компьютера. Блокировка однопользовательского ключа не срабатывает, программа успешно запускается. Однако помните о важном ограничении: если за компьютером в данный момент физически кто-то работает, его сеанс будет заблокирован. Для централизованного хранения параметров и быстрого запуска сеансов можно использовать утилиту для управления RDP-подключениями.
Если консольный режим RDP по каким-то причинам не подходит или вызывает неудобства, мы можем полностью отказаться от RDP в пользу программ удаленного управления, которые работают по принципу захвата экрана (зеркалирования физического рабочего стола).
К таким программам относятся:
Поскольку эти утилиты не создают изолированную виртуальную сессию терминала, а транслируют текущую физическую консоль Windows, платформа 1С не распознает сессию как удаленную. Драйвер защиты считывает синий USB-ключ без каких-либо препятствий. Для централизованного запуска сторонних клиентов и ведения истории сессий подойдёт конфигурация для организации удаленного подключения через сторонние программы.
Это наиболее технологичный, стабильный и полностью легальный метод организации совместной работы пользователей в файловой базе. Вместо того чтобы пускать пользователей по RDP на компьютер-сервер, мы можем опубликовать базу на веб-сервере.
Разберем этот процесс по шагам:
default.vrd.http://имя_сервера/имя_публикации).При таком сценарии веб-сервер сам взаимодействует с ключом защиты, а пользователи подключаются через веб-протокол. Это решает проблему блокировки сессий RDP и значительно ускоряет работу в файловом режиме по сети.
Если нам нужно, чтобы ключ физически находился на одном компьютере (или даже у удаленного сотрудника дома), но определялся операционной системой сервера так, будто он вставлен непосредственно в USB-разъем материнской платы сервера, мы можем прибегнуть к виртуализации USB-портов.
Для этого используется специализированное программное обеспечение:
Программа состоит из двух частей: сервера (устанавливается на ПК, куда физически вставлен ключ) и клиента (устанавливается на сервере 1С). Клиентская часть подключается к серверной по сети и монтирует виртуальный USB-порт. Операционная система считает устройство локальным.
Важное примечание: Если на целевом сервере пользователи все равно будут запускать 1С внутри RDP-сеансов, этот метод обязательно нужно комбинировать с консольным режимом запуска (параметр /admin), иначе встроенная в 1С проверка терминального сеанса все равно заблокирует работу.
Посмотрим на проблему шире. Использование аппаратных USB-ключей постепенно уходит в прошлое. Фирма 1С предлагает современную альтернативу — программные лицензии (активация с помощью электронных пин-кодов).
Основное преимущество программной лицензии заключается в том, что однопользовательская программная лицензия, в отличие от синего аппаратного ключа, не блокируется при запуске внутри RDP-сессий. Вы можете активировать ее прямо на терминальном сервере, и она позволит без проблем работать одному пользователю под любым RDP-подключением.
Если у вас есть зарегистрированный программный продукт с аппаратным ключом, вы можете обратиться к вашему обслуживающему партнеру 1С для выполнения процедуры взаимного обмена аппаратного ключа на программную лицензию (в рамках стандартных процедур апгрейда или замены защиты).
В кругах системных администраторов часто обсуждается радикальный метод обхода ограничений RDP — так называемый HEX-патч библиотек платформы 1С. Мы обязаны упомянуть его для полноты картины, но предостеречь от его использования.
Суть метода заключается в том, что исполняемые файлы платформы (в частности, библиотека backbas.dll, расположенная в каталоге bin установленной версии платформы) модифицируются с помощью HEX-редактора. Специалисты находят байтовую последовательность, отвечающую за системный вызов проверки терминального режима (API-функция определения удаленной сессии), и заменяют ее на инструкции, которые всегда возвращают ложь (будто сессия локальная). После такой модификации 1С перестает замечать RDP и начинает видеть синий USB-ключ.
Предупреждение о рисках: Настоятельно рекомендуем избегать подобных модификаций по следующим причинам:
Проанализировав все возможные варианты, мы можем составить оптимальный алгоритм действий. Если перед вами стоит задача запустить 1С с однопользовательским ключом по сети RDP:
/admin или перейдите на бесплатный RustDesk.