Почему 1С не видит HASP-ключ при подключении по RDP и как решить эту проблему?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Каждый системный администратор или специалист 1С рано или поздно сталкивается с классической проблемой: база прекрасно запускается локально на компьютере-сервере, но как только пользователь пытается подключиться к этому же компьютеру удаленно через стандартное средство Windows — удаленный рабочий стол (RDP), программа выдает ошибку: «Не обнаружен ключ защиты программы!».

В этой статье мы подробно разберем, почему возникает эта проблема с точки зрения архитектуры платформы 1С, как функционируют различные типы аппаратных ключей, и рассмотрим шесть практических способов решения данной задачи — от бесплатных настроек до официального перехода на современные технологии лицензирования.

Выясняем причину: техническая суть ограничения

Для начала проанализируем ситуацию и поймем, почему обычная переустановка драйверов или утилиты HASP License Manager не приносит результата. Всё дело в аппаратной разновидности используемого USB-ключа и заложенном в платформу 1С алгоритме проверки лицензий.

Аппаратные USB-ключи HASP (выпускаемые компанией Thales/Gemalto, ранее Aladdin) делятся на три основные категории:

  1. Однопользовательские локальные ключи (обычно синего цвета, маркировка HASP HL Basic или H4 M1 ORGL8).
  2. Многопользовательские сетевые ключи (обычно красного цвета, маркировка NET5 ORGL8, NET10 ORGL8 и т.д.).
  3. Ключи сервера 1С:Предприятия (зеленые или фиолетовые, например, ENSR8).

Если вы используете синий однопользовательский ключ, то при его обработке вступает в силу жесткое лицензионное ограничение. Как только платформа 1С запускается, она опрашивает операционную систему на предмет типа текущей сессии. Если ОС возвращает статус терминального подключения (Terminal Services / RDP-сессия), 1С целенаправленно игнорирует локальный USB-порт с установленным однопользовательским ключом.

Разработчики сделали это для того, чтобы исключить возможность нелегального использования одной локальной лицензии несколькими пользователями одновременно на одном сервере. Утилита HASP License Manager в данном случае абсолютно бесполезна: она умеет работать и раздавать лицензии по сети (через порт 475 UDP/TCP) только для сетевых (красных) ключей. Однопользовательский ключ она просто «не видит» и не транслирует.

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

Решение 1. Подключение через консольный режим RDP (параметр /admin)

Если с базой удаленно должен работать только один человек (например, системный администратор во внерабочее время или приходящий бухгалтер), мы можем обойти ограничение RDP, подключившись непосредственно к физической (консольной) сессии компьютера. В Windows этот режим называется сессией «0».

Для этого выполним следующие действия:

  1. На удаленном клиентском компьютере нажмем комбинацию клавиш Win + R для вызова окна запуска программ.
  2. Введем команду запуска RDP-клиента с ключом администрирования консоли: mstsc.exe /v:IP_адрес_сервера /admin (для устаревших операционных систем Windows XP/Server 2003 использовался параметр /console).
  3. Авторизуемся под учетной записью с правами администратора.

При таком подключении операционная система сообщает платформе 1С, что пользователь находится за физическим монитором компьютера. Блокировка однопользовательского ключа не срабатывает, программа успешно запускается. Однако помните о важном ограничении: если за компьютером в данный момент физически кто-то работает, его сеанс будет заблокирован. Для централизованного хранения параметров и быстрого запуска сеансов можно использовать утилиту для управления RDP-подключениями.

Решение 2. Использование альтернативного софта для удаленного доступа

Если консольный режим RDP по каким-то причинам не подходит или вызывает неудобства, мы можем полностью отказаться от RDP в пользу программ удаленного управления, которые работают по принципу захвата экрана (зеркалирования физического рабочего стола).

К таким программам относятся:

Поскольку эти утилиты не создают изолированную виртуальную сессию терминала, а транслируют текущую физическую консоль Windows, платформа 1С не распознает сессию как удаленную. Драйвер защиты считывает синий USB-ключ без каких-либо препятствий. Для централизованного запуска сторонних клиентов и ведения истории сессий подойдёт конфигурация для организации удаленного подключения через сторонние программы.

Решение 3. Публикация файловой базы на веб-сервере

Это наиболее технологичный, стабильный и полностью легальный метод организации совместной работы пользователей в файловой базе. Вместо того чтобы пускать пользователей по RDP на компьютер-сервер, мы можем опубликовать базу на веб-сервере.

Разберем этот процесс по шагам:

  1. На компьютере, где физически установлен USB-ключ, развернем и настроим веб-сервер. В операционных системах Windows проще всего активировать встроенный компонент IIS (Internet Information Services), либо установить бесплатный веб-сервер Apache.
  2. Запустим конфигуратор 1С от имени администратора, перейдем в меню Администрирование — Публикация на веб-сервере....
  3. Укажем имя публикации, выберем установленный веб-сервер, настроим необходимые модули расширения и нажмем кнопку Опубликовать. При этом платформа автоматически создаст конфигурационный файл default.vrd.
  4. На компьютерах пользователей установим локальный Тонкий клиент 1С. При добавлении базы выберем вариант подключения «На веб-сервере» и укажем URL-адрес нашей публикации (например, http://имя_сервера/имя_публикации).

При таком сценарии веб-сервер сам взаимодействует с ключом защиты, а пользователи подключаются через веб-протокол. Это решает проблему блокировки сессий RDP и значительно ускоряет работу в файловом режиме по сети.

Решение 4. Использование ПО для проброса USB-портов (USB-over-IP)

Если нам нужно, чтобы ключ физически находился на одном компьютере (или даже у удаленного сотрудника дома), но определялся операционной системой сервера так, будто он вставлен непосредственно в USB-разъем материнской платы сервера, мы можем прибегнуть к виртуализации USB-портов.

Для этого используется специализированное программное обеспечение:

Программа состоит из двух частей: сервера (устанавливается на ПК, куда физически вставлен ключ) и клиента (устанавливается на сервере 1С). Клиентская часть подключается к серверной по сети и монтирует виртуальный USB-порт. Операционная система считает устройство локальным.

Важное примечание: Если на целевом сервере пользователи все равно будут запускать 1С внутри RDP-сеансов, этот метод обязательно нужно комбинировать с консольным режимом запуска (параметр /admin), иначе встроенная в 1С проверка терминального сеанса все равно заблокирует работу.

Решение 5. Переход на современные программные лицензии

Посмотрим на проблему шире. Использование аппаратных USB-ключей постепенно уходит в прошлое. Фирма 1С предлагает современную альтернативу — программные лицензии (активация с помощью электронных пин-кодов).

Основное преимущество программной лицензии заключается в том, что однопользовательская программная лицензия, в отличие от синего аппаратного ключа, не блокируется при запуске внутри RDP-сессий. Вы можете активировать ее прямо на терминальном сервере, и она позволит без проблем работать одному пользователю под любым RDP-подключением.

Если у вас есть зарегистрированный программный продукт с аппаратным ключом, вы можете обратиться к вашему обслуживающему партнеру 1С для выполнения процедуры взаимного обмена аппаратного ключа на программную лицензию (в рамках стандартных процедур апгрейда или замены защиты).

Решение 6. Анализ неофициальных методов (HEX-модификация)

В кругах системных администраторов часто обсуждается радикальный метод обхода ограничений RDP — так называемый HEX-патч библиотек платформы 1С. Мы обязаны упомянуть его для полноты картины, но предостеречь от его использования.

Суть метода заключается в том, что исполняемые файлы платформы (в частности, библиотека backbas.dll, расположенная в каталоге bin установленной версии платформы) модифицируются с помощью HEX-редактора. Специалисты находят байтовую последовательность, отвечающую за системный вызов проверки терминального режима (API-функция определения удаленной сессии), и заменяют ее на инструкции, которые всегда возвращают ложь (будто сессия локальная). После такой модификации 1С перестает замечать RDP и начинает видеть синий USB-ключ.

Предупреждение о рисках: Настоятельно рекомендуем избегать подобных модификаций по следующим причинам:

  1. Это прямое нарушение Лицензионного соглашения (EULA) компании 1С.
  2. С юридической точки зрения такое действие квалифицируется как несанкционированное изменение кода программы (ст. 273 УК РФ), что влечет за собой серьезную ответственность.
  3. Любое обновление платформы сотрет эти изменения, и процедуру придется повторять заново.
  4. Модифицированные файлы могут вызывать непредсказуемые сбои, утечки памяти и искажение данных в базе.

Резюме и рекомендации

Проанализировав все возможные варианты, мы можем составить оптимальный алгоритм действий. Если перед вами стоит задача запустить 1С с однопользовательским ключом по сети RDP:

← На главную