При работе в среде «1С:Предприятие 8» администраторы и разработчики часто сталкиваются с парадоксальной ситуацией: на сервере успешно работают крупные конфигурации (например, «1С:Комплексная автоматизация» или «1С:Бухгалтерия»), но при попытке запустить локальную файловую базу (демонстрационную версию или вспомогательную базу «1С:Конвертация данных») система упорно выдает ошибку и требует лицензию. На первый взгляд это кажется нелогичным, ведь лицензии у организации есть, и их «хватает» для работы основных конфигураций.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем внутренние алгоритмы платформы «1С» по поиску лицензий и рассмотрим несколько практических способов решения, которые позволят запускать локальные базы без покупки дополнительных лицензий.
Для того чтобы понять суть проблемы, нам необходимо детально изучить архитектуру взаимодействия платформы «1С» с лицензиями в различных режимах работы. Существует два принципиально разных режима запуска баз данных: клиент-серверный и локальный (файловый).
Когда вы запускаете базу данных, которая развернута на сервере приложений «1С:Предприятие», запуск происходит по следующей схеме:
Разрешить выдачу лицензий сервером «1С:Предприятия».В этой схеме вашему локальному компьютеру физически не требуется иметь установленный ключ защиты или файл лицензии — всю работу по обеспечению сеанса лицензией берет на себя сервер.
Совсем иначе обстоит дело, когда вы запускаете локальную файловую базу, расположенную на вашем жестком диске (например, в папке C:\MyBases\DemoKA). В этом сценарии сервер приложений «1С» вообще не участвует в процессе. Платформа запускается локально и выполняет поиск лицензии на вашем персональном компьютере по строго определенному алгоритму.
Давайте по шагам разберем, как именно локальный клиент «1С» пытается найти программную лицензию (файл с расширением .lic) при запуске файловой базы:
%APPDATA%\1C\1Cv8\%APPDATA%\1C\licenses\%ProgramData%\1C\licenses\C:\Program Files\1cv8\conf\).Важный вывод: В данном алгоритме полностью отсутствует этап обращения к какому-либо удаленному серверу приложений «1С» для получения лицензии. Локальная файловая база технически не умеет «забирать» программные лицензии с удаленного сервера 1С. Именно поэтому ваши демо-версии и базы конвертации выдают ошибку лицензирования.
Часто в процессе обсуждения подобных проблем системные администраторы предлагают прописать адрес сервера лицензий в конфигурационном файле nnhasp.ini. Давайте проанализируем, почему этот метод не сработает в случае с программными лицензиями.
Файл конфигурации nnhasp.ini и сопутствующая утилита HASP License Manager предназначены исключительно для работы с аппаратными USB-ключами защиты (сетевыми красными ключами HASP). Пример типичной настройки такого файла выглядит так:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100
NH_PORT_NUM = 475
NH_TCPIP_METHOD = UDP
Программные лицензии (файлы типа .lic, которые активируются с помощью пин-кодов) не имеют никакого отношения к системе HASP. Для них не существует сетевой службы типа License Manager, способной транслировать лицензии по сети для файловых баз. Настройка nnhasp.ini для программных лицензий абсолютно бесполезна.
Мы выяснили причину поведения системы. Теперь рассмотрим подробнее несколько эффективных способов решения этой проблемы, начиная от самых простых и заканчивая более продвинутыми архитектурными решениями.
Это самый очевидный и быстрый способ, если у вас уже развернут и функционирует сервер «1С:Предприятие». Если вы перенесете демонстрационную базу или базу «1С:Конвертация данных» на сервер (сделаете их клиент-серверными под управлением СУБД MS SQL, PostgreSQL и др.), то сервер «1С» начнет самостоятельно выдавать им программные лицензии из своего общего пула.
Для этого выполните следующие шаги:
Разрешить выдачу лицензий сервером установлен в значение Да..dt) через Конфигуратор..dt в созданную клиент-серверную базу. Теперь база будет запускаться без локальных ключей на клиентском ПК.Если вы не хотите нагружать SQL-сервер демонстрационными или вспомогательными базами, существует отличная альтернатива — публикация файловой базы на веб-сервере (Apache или IIS). Этот способ позволяет сохранить базу в файловом формате, но при этом задействовать серверные лицензии.
Разберем этот процесс по шагам:
http://имя_сервера/имя_публикации.При таком подключении модуль веб-сервера «1С», запущенный на сервере, будет обращаться к локальным программным лицензиям сервера и передавать лицензию вашему тонкому клиенту по протоколу HTTP/HTTPS.
Поскольку базы данных «1С:Конвертация данных» и демо-версии конфигураций используются преимущественно для целей разработки, настройки интеграции и обучения, идеальным и полностью легальным решением является использование официальной «Лицензии для разработчиков» от фирмы «1С».
Преимущества этого решения:
Для ее получения достаточно зарегистрироваться на портале разработчиков «1С» (программа комьюнити-лицензий), скачать дистрибутив и получить бесплатный пин-код для активации лицензии на своей рабочей машине.
Проанализируем комплектацию программных лицензий «1С». Если ваша организация приобретала многопользовательскую программную лицензию (например, на 5, 10 или 20 рабочих мест), обратите внимание на регистрационную карточку с пин-кодами. В комплекте всегда идут два типа пин-кодов:
Если при первоначальной установке системный администратор активировал многопользовательский пин-код на сервере, то все однопользовательские пин-коды остались неиспользованными. Вы можете взять один из этих свободных однопользовательских пин-кодов и активировать его прямо на локальном компьютере, где требуется запускать файловые базы. Платформа создаст локальный файл .lic, и проблема с запуском любых файловых баз будет решена раз и навсегда.
Если сервер, на котором установлены программные лицензии, дополнительно выполняет роль сервера терминалов (на нем развернута служба Remote Desktop Services), вы можете настроить работу пользователей в режиме RDP:
%ProgramData%\1C\licenses (при условии, что при активации лицензий на сервере был выбран параметр установки «Всем пользователям данного компьютера»).Мы проанализировали особенности работы системы лицензирования «1С:Предприятие 8». Понимание разницы между серверной раздачей лицензий и локальным поиском файлов защиты позволяет быстро находить оптимальные конфигурационные решения. Используйте перенос баз на сервер или публикацию на веб-сервере для работы в команде, а для индивидуальной разработки и настройки обменов задействуйте бесплатную комьюнити-лицензию разработчика.