Рассмотрим распространенную ситуацию в инфраструктуре 1С: развернут кластер серверов 1С:Предприятия, на котором успешно функционируют клиент-серверные базы данных. На сервере активирован комплект многопользовательских программных лицензий, и все пользователи серверных баз получают доступ без сбоев. Однако при попытке одного из пользователей запустить дополнительную базу в файловом варианте (например, «Бухгалтерия предприятия 2.0») система выдает ошибку об отсутствии свободной лицензии.
Выясним причину такого поведения платформы и разберем по шагам доступные технические решения.
Проанализируем механизм получения лицензий в платформе «1С:Предприятие 8.3». При запуске файловой базы данных весь исполняемый код выполняется локально на рабочей станции пользователя внутри процесса 1cv8.exe. Порядок поиска лицензий в этом режиме строго регламентирован разработчиками платформы:
%ALLUSERSPROFILE%\1C\licenses или C:\ProgramData\1C\licenses) на наличие действующих файлов с расширением *.lic.Важно понимать: клиентское приложение 1С при запуске файловой базы не отправляет сетевых запросов к службе кластера 1С (процессам ragent, rmngr, rphost). Сервер 1С:Предприятия физически не может выдать лицензию процессу, который к нему не подключается. При этом скопировать файл *.lic с сервера на рабочую станцию пользователя также нельзя: программная лицензия жестко привязывается к ключевым параметрам аппаратного обеспечения (материнская плата, процессор, объем оперативной памяти, сетевая карта, BIOS, накопители). При переносе файла на другой компьютер контрольная сумма не сойдется, и лицензия перейдет в статус поврежденной.
Рассмотрим проверенные способы решения этой проблемы без нарушения лицензионной политики.
Наиболее надежный, производительный и технически правильный способ — включить файловую базу в существующую серверную инфраструктуру. Разберем порядок действий:
*.dt).После этого клиент подключается к базе через сервер 1С, и служба кластера автоматически выдает пользователю одну из программных лицензий из своего общего пула.
Если базу данных по каким-либо причинам требуется оставить именно файловой, но переносить ее на сервер СУБД не планируется, проанализируем терминальный доступ. Если сервер приложений 1С совмещен с терминальным сервером (или на сервере настроены службы удаленных рабочих столов):
1cv8.exe запускается непосредственно в терминальной сессии на том же компьютере, где физически активированы программные лицензии.C:\ProgramData\1C\licenses этого сервера. Поскольку аппаратные параметры окружения совпадают с привязкой файла *.lic, клиент успешно подхватывает лицензию и запускается.Разберем вариант, когда пользователь должен продолжать работать локально на своем рабочем месте. При покупке многопользовательской программной лицензии (например, на 5 или 10 рабочих мест) в конверте поставляются пин-коды двух видов:
Если при первичной настройке системы многопользовательский пин-код еще не был задействован на весь номинал (или у системного администратора есть отдельные неактивированные пин-коды), выполним локальную активацию:
Обратите внимание: если на сервере приложений уже был активирован общий многопользовательский пин-код из комплекта, входящие в этот же комплект индивидуальные пин-коды аннулируются Центром лицензирования 1С. В таком случае потребуется либо приобрести дополнительную лицензию на 1 рабочее место, либо запросить в Центре лицензирования резервный пин-код, если для этого есть основания.
Часто в качестве решения для файловых баз предлагают публикацию на веб-сервере (IIS или Apache): веб-сервер запускается на хосте с лицензиями и при обращении клиентов раздает их через свои модули. Однако для конфигурации «Бухгалтерия предприятия 2.0» этот вариант не применим.
Конфигурация «Бухгалтерия предприятия 2.0» разработана на базе обычных форм (толстый клиент в режиме обычного приложения). Модули расширения веб-сервера 1С работают исключительно с управляемым интерфейсом (тонкий клиент и веб-клиент). Поэтому для редакции 2.0 публикация базы на веб-сервере не решит задачу запуска; доступ возможен только через серверный вариант базы (SQL), терминальный доступ (RDP) либо установку локальной лицензии на рабочую станцию.