В практике автоматизации малого бизнеса часто возникает задача: организовать удаленную работу в отраслевой базе 1С для нескольких сотрудников из разных точек, не тратя при этом бюджет на полноценный сервер приложений и терминальные лицензии. Решением становится публикация файловой базы на веб-сервере (Apache или IIS). Однако при использовании отраслевых решений, защищенных Системой Лицензирования и Конфигурирования (СЛК), возникает закономерный вопрос: как клиент, работающий через браузер или тонкий клиент, «увидит» ключ защиты? Рассмотрим этот процесс детально и разберем все технические нюансы.
Для начала проанализируем, как меняется схема работы 1С при публикации базы. В обычном файловом режиме (по локальной сети) программный код выполняется на компьютере пользователя. Но как только мы используем веб-сервер, ситуация кардинально меняется. Рассмотрим цепочку событий:
Таким образом, мы приходим к важному выводу: ключи СЛК физически не передаются на компьютер клиента. Все взаимодействие с защитой происходит на той машине, где опубликован веб-сервер. Клиент получает лишь результат работы программы.
Разберем по шагам, что необходимо настроить на стороне сервера, чтобы система лицензирования работала корректно. Поскольку СЛК (начиная с версии 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, который создается при публикации базы. Проанализируем важный параметр 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-протоколе крайне опасно. Рассмотрим два способа защиты:
Подведем итог нашему исследованию. Работа отраслевых решений с СЛК через веб-сервер — это вполне рабочая и надежная схема для небольших компаний. Выясним основные моменты:
Таким образом, для реализации задумки «дешево и стильно» достаточно настроить один компьютер в качестве сервера, установить на него Apache, опубликовать базу и настроить Сервер СЛК. Это избавит от необходимости покупки дорогостоящих серверных ОС и терминальных лицензий, обеспечив при этом полноценную работу в защищенной конфигурации.