При переходе на работу через веб-интерфейс или тонкий клиент через HTTP/HTTPS многие технические специалисты сталкиваются с вопросом: как в этом случае будут вести себя отраслевые лицензии (СЛК)? В классической схеме с толстым клиентом или RDP все понятно, но веб-сервер вносит свои коррективы в механизмы защиты. Разберем подробно, как устроена эта система, и выясним, в каких случаях лицензии будут «подхватываться» автоматически, а в каких — потребуется дополнительная настройка.
Для начала проанализируем, как изменилась архитектура системы лицензирования в последних версиях. В современных отраслевых решениях проверка лицензий практически полностью перенесена на сторону сервера 1С:Предприятия. Это фундаментальное отличие от старых систем защиты, которые требовали физического или программного присутствия ключа непосредственно на компьютере пользователя.
Когда пользователь подключается через веб-браузер, его сеанс обслуживается процессом rphost на сервере 1С. Рассмотрим цепочку взаимодействия:
Таким образом, конечному пользователю вообще не нужно иметь установленные драйверы СЛК или ключи на своем локальном компьютере. Вся работа по получению лицензий ложится «на плечи» сервера.
Как было отмечено в обсуждении, такие решения, как БитФинанс, отлично работают на веб-сервере, в то время как с БСХП (Бухгалтерия сельхозпредприятия) могут возникнуть сложности. Выясним причину этого разделения. Все дело в так называемом «контексте исполнения» кода защиты.
Если разработчик отраслевого решения вынес проверку лицензии в серверные модули (префикс &НаСервере), то веб-клиент будет работать без проблем. Однако, если проверка или вызов защищенных функций прописаны в модулях, работающих «НаКлиенте», веб-браузер не сможет их выполнить. Браузер работает в изолированной среде («песочнице») и не имеет прямого доступа к аппаратным ресурсам или специфическим DLL-библиотекам защиты СЛК без специальных расширений.
Проанализируем ситуацию с технической точки зрения. Если в коде встречается вызов компоненты защиты в клиентском контексте:
// Пример проблемного кода для веб-клиента
&НаКлиенте
Процедура ПриОткрытииЗащищеннойФормы()
Результат = КомпонентаСЛК.ПроверитьЛицензию();
// В браузере это вызовет ошибку, так как объект не инициализирован
КонецПроцедуры
В современных конфигурациях этот код заменяется на серверный вызов, что и позволяет использовать веб-сервер в полной мере.
Разберем по шагам, как правильно подготовить инфраструктуру, чтобы пользователи веб-клиента не получали ошибок лицензирования. Основная задача — обеспечить бесперебойную связь между сервером 1С и сервером лицензирования.
9099 (порт по умолчанию для СЛК 3.0) для входящих соединений на сервере, где установлен сервер СЛК.Важный момент: если вы используете аппаратные USB-ключи на виртуальном сервере, вам потребуется проброс USB-устройств через специализированное ПО (USB-over-IP), так как сервер СЛК должен физически «видеть» ключ.
Часто возникает путаница: нужно ли покупать лицензии «Удаленный офис» для работы через веб-сервер? Проанализируем назначение этого типа лицензий. Лицензия «Удаленный офис» предназначена для сценария, когда у вас есть два территориально распределенных сервера СЛК, и вы хотите, чтобы один сервер мог заимствовать ключи у другого через интернет или VPN.
Для работы обычных пользователей через веб-сервер (даже если они находятся в другом городе) эта лицензия не требуется. Пользователь подключается к веб-серверу по HTTP, а веб-сервер обращается к локальному серверу СЛК. С точки зрения системы защиты, это обычное локальное потребление лицензии серверным процессом.
Если при публикации на веб-сервере система сообщает, что «Отраслевая лицензия не найдена», выполним следующие действия:
http://[Адрес_Сервера]:9099. Если консоль не открывается, значит, служба сервера СЛК остановлена или порт закрыт.Подводя итог, можно утверждать: работа отраслевых лицензий через веб-сервер в 2024 году является стандартным и штатным режимом для большинства современных решений на платформе 1С:Предприятие 8.3. Главное — обеспечить серверную проверку ключей и корректную настройку связи между rphost и службой СЛК.