При работе с программными продуктами семейства «1С:Предприятие 8» на терминальных серверах часто возникают ситуации, когда техническое поведение программы вводит в заблуждение даже опытных специалистов. Рассмотрим типичный сценарий: на сервере под управлением Windows Server 2012 R2 развернуто несколько информационных баз конфигурации «Бухгалтерия предприятия базовая». Внезапно системный администратор сталкивается с тем, что только ограниченное число пользователей может войти в систему, а остальные получают сообщения о необходимости получения лицензии. Разберем детально, почему это происходит, как интерпретировать данные из окна «О программе» и в чем заключаются фундаментальные ограничения базовых версий.
Первым делом проанализируем информацию о лицензировании, которую выдает платформа. В диагностических данных часто можно встретить строку вида Локальный HASP4 ORGL8 500 или Сетевой HASP4 ORGL8 500. Выясним причину появления такой записи. В официальной линейке аппаратных ключей защиты «1С» ключи на 500 пользователей существуют, но это крайне дорогостоящие устройства, представляющие собой красные USB-токены. Если физически такой ключ в сервер не установлен, появление этой записи однозначно указывает на наличие установленного эмулятора ключа HASP (так называемого «дампа»).
Важно понимать, что фраза HASP4 ORGL8 500 в окне «О программе» часто является «исторической справкой» или результатом работы драйвера виртуальной шины USB (например, VUSB или Multikey). Проанализируем ситуацию: наличие эмулятора может «обмануть» платформу, заставляя её считать, что лицензий на запуск клиентского приложения бесконечно много. Однако это не решает проблему запуска именно базовой конфигурации. Платформа 1С разделяет понятия «лицензия на запуск платформы» и «лицензия на использование конкретной конфигурации».
Рассмотрим специфику программных продуктов. Существует стандартная 1С:Бухгалтерия 8. Базовая версия и специальное издание 1С:Бухгалтерия 8. Базовая для 1. Разберем их ключевые отличия, которые влияют на механизм лицензирования:
.lic.Выясним, почему даже при наличии «безлимитного» эмулятора или свободных лицензий PROF, базовая версия не позволяет работать двоим пользователям одновременно в одной базе. Ответ кроется не в ключе защиты, а в программном коде самой конфигурации.
В момент запуска базы платформа считывает метаданные конфигурации. Если тип конфигурации определен как «Базовая», включаются внутренние механизмы контроля:
1. Платформа проверяет наличие файла блокировки 1Cv8.lcl в каталоге информационной базы или соответствующие записи в таблице сеансов (для клиент-серверного варианта, хотя базовые версии работают только в файловом режиме).
2. Если один сеанс уже активен, при попытке входа второго пользователя система выдаст ошибку: «Ограничение базовой версии. Базовая версия не поддерживает одновременную работу нескольких пользователей». Это ограничение невозможно обойти установкой дополнительных лицензий PROF или использованием эмуляторов, так как проверка зашита на уровне программной логики метаданных.
Рассмотрим ситуацию из практики: если два пользователя могут заходить в базу «по очереди», это означает, что лицензия платформы находится, но механизм контроля сеансов отрабатывает корректно, запрещая одновременный доступ. Если же пользователи «шлются получить лицензию», значит, проблема переходит на уровень поиска файлов .lic или ответов от HASP-драйвера.
Проанализируем, где платформа ищет программные лицензии. Файлы обычно именуются по маске file(0).lic, file(1).lic и так далее. Посмотрим на стандартные пути поиска:
C:\ProgramData\1C\1cv8\conf — это общая папка для всех пользователей. Если лицензия лежит здесь, её увидят все терминальные сессии.%AppData%\1C\1cv8\conf — персональная папка пользователя. Если файл лицензии попал сюда при активации под конкретной учетной записью, другие пользователи терминала его не увидят.C:\Program Files\1cv8\conf).Проанализируем ситуацию, описанную в теме: файл file(0).lic был найден, но неясно, содержит ли он лицензии для всех баз. На самом деле, для каждой базовой версии (если их куплено 5 штук) должен быть свой отдельный файл лицензии или несколько лицензий внутри одного каталога. Использование терминального сервера для базовых версий официально не поддерживается производителем, так как базовая лицензия технически является «однопользовательской локальной».
Разберем важный технический нюанс взаимодействия драйверов защиты. На одном сервере крайне не рекомендуется совмещать легальные программные лицензии и эмуляторы аппаратных ключей. Процесс 1cv8.exe при запуске опрашивает доступные службы защиты в определенном порядке. Если драйвер эмулятора перехватывает запрос и отдает ответ HASP4 ORGL8 500, платформа может прекратить дальнейший поиск программных файлов .lic в папке ProgramData.
В результате мы получаем ситуацию, когда платформа запускается (так как эмулятор «разрешил» запуск 1cv8.exe), но конфигурация отказывается работать, так как не находит специфическую «базовую» лицензию, которая подтверждает право использования именно этого прикладного решения. Посмотрим, как это выглядит в окне «О программе»: в разделе «Лицензия» может быть указан сетевой или локальный HASP, но отсутствовать информация о программной лицензии для конкретной ИБ.
Для восстановления штатной работы и понимания причин сбоев, выполним следующие шаги:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Emulator (название может варьироваться). Только после этого можно объективно оценить наличие легальных лицензий.C:\ProgramData\1C\1cv8\conf.%AppData%\1C\1ce\1CEStart.cfg. Параметр UseHasp=No может принудительно отключать поиск аппаратных ключей, что полезно при использовании только программных лицензий.В завершение подчеркнем: работа нескольких пользователей в одной базовой информационной базе технически невозможна в силу ограничений самой конфигурации. Если бизнес-задача требует одновременной работы, единственным легальным и технически верным решением является переход (апгрейд) на версию PROF, которая поддерживает многопользовательский режим и корректную работу на терминальных серверах с использованием клиентских лицензий.