В процессе развертывания нового сервера «1С:Предприятие» системные администраторы часто сталкиваются с процедурой активации программных лицензий. Казалось бы, процесс стандартный: ввод регистрационного номера и пин-кода. Однако иногда система выдает пугающее сообщение: «Ошибка вызова операции сервиса LicenseCenter:LinkLicense(). Ошибка SOAP сервера: Неизвестная ошибка. Ошибка СУБД: Не удалось выделить место для объекта dbo.Reference10... в базе данных LicenseCenter». Рассмотрим подробно, почему возникает эта ошибка и как нам действовать в такой ситуации.
Первое, на что мы обращаем внимание при чтении текста ошибки — это упоминание СУБД и переполнение файловой группы PRIMARY. Если ваш сервер работает на SQL Express, первой реакцией будет проверить лимит в 10 ГБ на базу данных. Но давайте проанализируем ситуацию внимательнее: пользователь сообщает, что база данных абсолютно пустая или создана только что. Более того, в тексте ошибки фигурирует база данных с именем LicenseCenter.
Выясним важную деталь: базы данных с названием LicenseCenter на вашем локальном SQL-сервере не существует. Эта база принадлежит Центру лицензирования фирмы «1С». Таким образом, ошибка сообщает не о проблемах вашего оборудования или настроек SQL, а о техническом сбое на стороне серверов правообладателя. Операция LinkLicense — это веб-сервис, который отвечает за связывание (линковку) ваших идентификаторов оборудования с программным ключом в реестре «1С».
Разберем основные причины, по которым сервер активации «1С» может выдавать подобные ошибки СУБД:
dbo.Reference10).Поскольку мы выяснили, что проблема внешняя, наши действия должны быть направлены либо на ожидание, либо на использование альтернативных каналов связи с Центром лицензирования. Разберем по шагам, что можно предпринять.
Способ 1. Ожидание и повторная попытка
Как показывает практика, подобные сбои на стороне «1С» устраняются техническими специалистами в течение времени от 15 минут до пары часов. Если ситуация не критичная, попробуйте повторить активацию через некоторое время. Это самый простой путь, не требующий ручных манипуляций с файлами.
Способ 2. Получение лицензии через файл (автономно)
Если автоматическая активация через интернет («Получить лицензию») продолжает выдавать ошибку LinkLicense, воспользуемся более надежным методом, который задействует другие механизмы обработки запросов. Рассмотрим этот процесс подробнее:
.txt или .req).Этот метод часто оказывается самым жизнеспособным, когда веб-сервисы (SOAP) работают нестабильно. Проанализируем алгоритм:
Сформированный файл запроса необходимо отправить по адресу lic@1c.ru. В теме письма можно ничего не указывать, либо написать «Запрос на получение лицензии». Робот автоматической обработки проанализирует вложение и в ответном письме пришлет файл лицензии с расширением .lic.
После получения файла вернемся в мастер активации в 1С, выберем пункт «Загрузить файл ответа» и укажем путь к полученному документу. Программа применит лицензию, и сервер запустится.
Хотя в данной конкретной ошибке ваш SQL-сервер не виноват, при установке сервера «1С» на SQL Express важно помнить о его реальных ограничениях, чтобы не спутать их с внешними ошибками в будущем:
Если в будущем вы увидите ошибку Could not allocate space... in database [ИмяВашейБазы], это будет означать, что вы достигли лимита в 10 ГБ. В случае с ошибкой LicenseCenter, как мы выяснили, имя базы всегда указывает на виновника.
Для программиста бывает полезно проверить, видит ли система установленные лицензии, не заходя в консоль администрирования. Мы можем использовать встроенные средства платформы. Рассмотрим пример кода, который позволяет получить информацию о доступных ключах защиты:
// Пример получения информации о текущем сеансе
Инфо = ПолучитьСоединенияИнформационнойБазы();
Для Каждого Соединение Из Инфо Цикл
Если Соединение.НомерСеанса = НомерСеансаТекущего Тогда
// Здесь можно проанализировать параметры соединения
// включая тип используемой лицензии
КонецЕсли;
КонецЦикла;
Стоит отметить, что подробная информация о программных лицензиях (пин-коды, файлы) в объектной модели 1С напрямую недоступна из соображений безопасности. Эти данные хранятся в файлах .lic в локальных папках профиля пользователя или сервера (%ProgramData%\1C\1cv8\conf).
Подведем итог нашему разбору. Если при активации вы видите упоминание базы данных LicenseCenter и ошибку LinkLicense:
sa, создание новых баз или переустановка Native Client не помогут, так как проблема находится на стороне серверов «1С».lic@1c.ru является самым надежным способом обхода проблем с веб-сервисами активации.LicenseCenter) — скорее всего, вы столкнулись с проблемой внешнего сервиса.Помните, что активация серверной лицензии возможна и из обычной файловой базы, запущенной на этом сервере. Главное, чтобы мастер активации отработал корректно и сохранил заветный файл .lic в системную папку, где его сможет прочитать служба 1C:Enterprise 8.3 Server Agent.