Как работает СЛК 1С через веб-сервер и передаются ли ключи защиты пользователям

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

В практике автоматизации малого бизнеса часто возникает задача: организовать удаленную работу в отраслевой базе 1С для нескольких сотрудников из разных точек, не тратя при этом бюджет на полноценный сервер приложений и терминальные лицензии. Решением становится публикация файловой базы на веб-сервере (Apache или IIS). Однако при использовании отраслевых решений, защищенных Системой Лицензирования и Конфигурирования (СЛК), возникает закономерный вопрос: как клиент, работающий через браузер или тонкий клиент, «увидит» ключ защиты? Рассмотрим этот процесс детально и разберем все технические нюансы.

Архитектура взаимодействия СЛК и веб-сервера

Для начала проанализируем, как меняется схема работы 1С при публикации базы. В обычном файловом режиме (по локальной сети) программный код выполняется на компьютере пользователя. Но как только мы используем веб-сервер, ситуация кардинально меняется. Рассмотрим цепочку событий:

  1. Пользователь подключается к базе через браузер (веб-клиент) или тонкий клиент по протоколу HTTP/HTTPS.
  2. Веб-сервер (например, Apache) принимает запрос и инициирует выполнение серверного кода 1С.
  3. В случае файловой базы веб-сервер сам выступает в роли «хоста» для расширения 1С, которое исполняет защищенные модули.
  4. Если в коде конфигурации есть обращение к защищенным функциям, запрос на проверку лицензии уходит от процесса веб-сервера к Серверу СЛК.

Таким образом, мы приходим к важному выводу: ключи СЛК физически не передаются на компьютер клиента. Все взаимодействие с защитой происходит на той машине, где опубликован веб-сервер. Клиент получает лишь результат работы программы.

Настройка сервера СЛК для веб-публикации

Разберем по шагам, что необходимо настроить на стороне сервера, чтобы система лицензирования работала корректно. Поскольку СЛК (начиная с версии 3.0) является самостоятельным системным сервисом, его работа не зависит напрямую от запуска платформы 1С.

Во-первых, выясним причину возможных сбоев: если веб-сервер запущен от имени ограниченной учетной записи (например, www-data в Linux или IUSR в Windows), у него должны быть права на сетевые обращения к порту СЛК. По умолчанию сервер СЛК использует TCP-порт 9099.

Проанализируем типичный сценарий настройки параметров защиты в самой конфигурации 1С. Обычно это делается через специальную обработку, входящую в состав отраслевого решения. В поле «Адрес сервера СЛК» следует указывать localhost (если СЛК стоит на той же машине) или внутренний IP-адрес сервера. Не забудьте убедиться, что порт открыт в брандмауэре:


// Пример настройки параметров связи в коде (условно)
ПараметрыСвязи = СЛК.СоздатьПараметрыСвязи();
ПараметрыСвязи.АдресСервера = "127.0.0.1";
ПараметрыСвязи.Порт = 9099;
Если Не СЛК.УстановитьСвязь(ПараметрыСвязи) Тогда
    Сообщить("Не удалось обнаружить ключ защиты на сервере!");
КонецЕсли;

Особенности работы Тонкого и Веб-клиента

Рассмотрим подробнее различия в работе разных типов клиентов. Это критично для понимания того, где именно будет происходить проверка лицензии.

Веб-клиент (браузер): Это самый «чистый» вариант. На компьютере пользователя вообще нет компонентов 1С и СЛК. Все обращения к ключу происходят на стороне Apache/IIS. Это идеально подходит для работы через мобильные устройства или из «деревень», о которых упоминалось в исходном вопросе.

Тонкий клиент: При подключении через веб-сервер он работает аналогично веб-клиенту. Код выполняется на сервере. Однако стоит помнить, что сама платформа 1С (не СЛК, а именно 1С:Предприятие) может потребовать клиентскую лицензию. Если в файле default.vrd не прописана раздача лицензий сервером, тонкий клиент будет искать ключ 1С на локальной машине пользователя.

Настройка файла публикации default.vrd

Для того чтобы веб-сервер корректно обрабатывал лицензии, мы должны заглянуть в файл default.vrd, который создается при публикации базы. Проанализируем важный параметр ib (информационная база). Чтобы минимизировать проблемы с лицензиями самой платформы при работе через веб, убедитесь, что параметры публикации настроены правильно.


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/MyBase"
       ib="File="C:\Bases\MyBase";Licensing=Server;">
</point>

Параметр Licensing=Server указывает, что лицензии 1С должен раздавать веб-сервер. Что касается СЛК, то она работает параллельно и «подхватывает» свои ключи независимо от этой настройки, основываясь на настройках внутри самой конфигурации.

Безопасность при работе через интернет

Поскольку планируется работа «из нескольких разных мест» через открытый интернет, проанализируем риски. Оставлять базу на стандартном HTTP-протоколе крайне опасно. Рассмотрим два способа защиты:

  1. Использование HTTPS: Необходимо установить SSL-сертификат (например, бесплатный Let's Encrypt). Это зашифрует трафик между браузером клиента и вашим сервером. В этом случае данные авторизации и результаты работы защищенных модулей СЛК не будут перехвачены.
  2. VPN-соединение: Как отмечалось в обсуждении, создание VPN-канала (например, через WireGuard или OpenVPN) позволяет «спрятать» веб-сервер из общего доступа. Это наиболее надежный вариант, хотя он и требует настройки на стороне каждого клиента.

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

Подведем итог нашему исследованию. Работа отраслевых решений с СЛК через веб-сервер — это вполне рабочая и надежная схема для небольших компаний. Выясним основные моменты:

Таким образом, для реализации задумки «дешево и стильно» достаточно настроить один компьютер в качестве сервера, установить на него Apache, опубликовать базу и настроить Сервер СЛК. Это избавит от необходимости покупки дорогостоящих серверных ОС и терминальных лицензий, обеспечив при этом полноценную работу в защищенной конфигурации.

← На главную