Почему при подключении к удаленному SQL-серверу 1С выдает ошибку «Не обнаружена лицензия на сервер предприятия»?

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

При модернизации серверной инфраструктуры системные администраторы часто разделяют роли: служба «1С:Предприятия» остается на одном хосте, а сервер баз данных (MS SQL Server, PostgreSQL и др.) переносится на отдельный физический или виртуальный сервер. Однако при добавлении новой версии платформы (например, переходе на линейку 8.3) и создании информационной базы на новом SQL-сервере пользователи могут столкнуться с ошибкой: «Не обнаружена лицензия для использования программы (Не обнаружена лицензия на сервер предприятия)», хотя ранее на этом же хосте базы версий 8.1 и 8.2 работали корректно.

Проанализируем причины возникновения этой проблемы, разберем правила лицензирования клиент-серверного варианта «1С:Предприятия» и рассмотрим пошаговые способы устранения неполадки.

Причина 1: Несоответствие разрядности (битности) сервера 1С и лицензии

Основная и самая распространенная причина такой ошибки — различие между разрядностью установленной службы ragent и разрядностью имеющейся серверной лицензии (аппаратного USB-ключа HASP или программного пин-кода).

Выясним правила лицензирования по разрядности:

  1. Лицензия на 32-разрядный (x86) сервер: позволяет запускать исключительно 32-битную службу сервера «1С:Предприятия». Если на сервере развернуть 64-разрядный дистрибутив 1С, служба сможет зарегистрироваться и создать кластер, но при попытке запуска клиентского сеанса выдаст ошибку отсутствия серверной лицензии.
  2. Лицензия на 64-разрядный (x64) сервер: обладает обратной совместимостью и позволяет запускать как 64-битный, так и 32-битный сервер «1С:Предприятия».

Если серверная лицензия приобреталась ранее для версий 8.1/8.2 в 32-разрядном исполнении, то при установке платформы 8.3 x64 служба не увидит существующий x86-ключ.

Решение проблемы с разрядностью службы

Разберем по шагам, как исправить ситуацию при наличии лицензии на 32-разрядный сервер:

  1. Остановим службу 64-разрядного сервера «1С:Предприятия 8.3» через консоль services.msc.
  2. Удалим 64-разрядную версию сервера «1С:Предприятия» через панель управления или переустановим компоненты.
  3. Скачаем и установим 32-разрядный дистрибутив сервера «1С:Предприятия 8.3» (x86). Он без проблем работает на 64-разрядной операционной системе Windows Server.
  4. Запустим службу сервера 1С x86 и проверим подключение пользователей. Базы откроются в штатном режиме.

Влияет ли размещение СУБД на удаленном сервере на лицензирование 1С?

Рассмотрим вопрос лицензирования архитектуры СУБД: физическое или виртуальное расположение SQL-сервера не требует покупки дополнительной лицензии на сервер «1С:Предприятия». Лицензия 1С требуется только тому хосту, на котором запущена служба агента кластера ragent.

На одном сервере 1С под одной лицензией (соответствующей разрядности) можно одновременно запускать разные кластеры и службы разных версий платформ (8.1, 8.2, 8.3), подключающиеся к любым доступным в сети экземплярам MS SQL Server.

Особенности параллельной работы нескольких версий (8.1, 8.2, 8.3) на одном сервере

Если на одном физическом хосте требуется сохранить старые базы (например, на платформах 8.1 и 8.2) и добавить кластер платформы 8.3, необходимо развести службы по сетевым портам, так как по умолчанию все версии претендуют на одни и те же порты (главный порт агента — 1540, менеджер кластера — 1541, диапазон рабочих процессов — 1560-1591).

Для корректного сосуществования служб выполним следующие настройки:

  1. При регистрации службы новой версии укажем смещение портов (параметр /portoffset) либо явно зададим свободные порты через параметры командной строки при создании службы:
    
    sc create "1C:Enterprise 8.3 Server Agent" binPath= "\"C:\Program Files (x86)\1cv8\8.3.10.2667\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\Program Files (x86)\1cv8\srvinfo\"" start= auto
    
  2. В окне подключения кластера в утилите администрирования укажем имя сервера с новым портом: ИмяСервера:2540.

Важные требования при подключении 1С к удаленной СУБД

Проанализируем сопутствующие технические требования, необходимые для стабильной работы 1С с удаленным SQL-сервером:

  1. Клиентские компоненты доступа к SQL: На сервере, где функционирует служба 1С, должен быть установлен SQL Native Client или OLE DB Driver for SQL Server. Важно, чтобы разрядность установленного драйвера совпадала с разрядностью службы 1С (для 32-битного сервера 1С требуется 32-битный клиент СУБД).
  2. Сетевой доступ: На стороне удаленного сервера MS SQL Server в утилите SQL Server Configuration Manager должен быть активирован протокол TCP/IP, а в брандмауэре открыт входящий TCP-порт (по умолчанию 1433) и UDP-порт 1434 (служба SQL Browser, если используется именованный экземпляр).
  3. Совместимость версий: Платформа 8.3 не поддерживает устаревшие версии СУБД (например, MS SQL Server 2000). Для баз на платформе 8.3 СУБД должна быть обновлена минимум до MS SQL Server 2005/2008 или выше.
  4. Ограничения памяти x86: 32-разрядный рабочий процесс rphost ограничен адресным пространством в 4 ГБ. При использовании x86-сервера 1С на 64-битной ОС рекомендуется в свойствах кластера ограничить допустимый объем памяти на процесс и настроить интервалы перезапуска рабочих процессов для защиты от сбоев из-за фрагментации памяти.
← На главную