При развертывании копии базы данных или переносе конфигурации «Рарус: Комбинат питания» на новый сервер специалисты часто сталкиваются с критической ошибкой на этапе запуска системы. Проблема проявляется не как прямое сообщение об отсутствии лицензии, а как программный сбой в модулях инициализации прав. Рассмотрим детально, почему это происходит и как восстановить работоспособность системы.
Проанализируем ситуацию, когда при запуске система выдает ошибку: Значение не является значением объектного типа (Типы). Если мы обратимся к отладчику, то увидим, что сбой происходит в Плане видов характеристик (ПВХ) «Права и настройки». Типовой фрагмент кода, вызывающий исключение, выглядит следующим образом:
ТипЗнач = ОписаниеТипов.Типы().Получить(0); // Получим первый (и единственный) попавшийся из типов
Выясним причину: переменная ОписаниеТипов в данный момент не содержит ожидаемого объекта. Это происходит потому, что ссылка на объект ПВХ (например, СсылкаПВХправ) возвращает значение «Объект не найден». В решениях компании «Рарус» это классический симптом того, что защищенные объекты метаданных стали недоступны для платформы «1С:Предприятие» из-за отсутствия связи с ключом защиты или сервером лицензирования.
Разберем, как работает защита в данной конфигурации. «Рарус» использует компоненты СЛК (Система лицензирования и конфигурирования) или систему «Катран». Если база является копией рабочей, она по-прежнему пытается найти сервер лицензий по старым настройкам. Рассмотрим шаги по диагностике:
Rarus License Server запущена на сервере, где установлен ключ. Попробуем зайти в консоль администрирования СЛК (обычно это адрес http://localhost:9099 в браузере).Protect.ini или LicServer.ini. Убедимся, что в параметре IP или ServerName указан актуальный адрес сервера, на котором физически установлен USB-ключ или активирована программная лицензия.Объект не найден.Часто проблема возникает при переносе базы с 32-битного на 64-битный сервер «1С». Посмотрим на важный нюанс: старые версии конфигураций «Раруса» используют 32-битные библиотеки защиты (например, Protect.dll), которые не могут быть загружены 64-битным процессом rphost.
Для устранения этой проблемы выполним следующие действия:
regsvr32 "C:\PathToComponent\Protect.dll"
Если сервер лицензий доступен, но ошибка сохраняется, проанализируем состояние кэша. Платформа «1С» может кэшировать состояние объектов метаданных, и «битая» ссылка может сохраняться даже после восстановления связи с защитой. Попробуем выполнить полную очистку кэша конфигурации на стороне сервера и на рабочем месте пользователя.
Также стоит обратить внимание на сообщение из темы: ОбработкаСтартСистемы.ПервоначальнаяИнициализация. Если это первый запуск копии базы, система пытается создать дерево прав. Если в этот момент связь с сервером лицензий была нестабильной, записи в ПВХ могли создаться некорректно. В таком случае может потребоваться повторный запуск процедуры ИнициализироватьПраваИНастройки() после восстановления стабильной связи с СЛК.
Рассмотрим предложение закомментировать строку, вызывающую ошибку. В конфигурациях «Раруса» проверка лицензии встроена глубоко в логику системы. Если мы «проскочим» инициализацию прав в МодулеОбычногоПриложения, это приведет к тому, что:
Важный вывод: Ошибка Значение не является значением объектного типа (Типы) в контексте ПВХ.ПраваИНастройки является лишь следствием. Первопричина всегда кроется в недоступности защищенного модуля «Раруса» из-за проблем с лицензированием.
Подведем итог. Чтобы успешно запустить копию «Комбината питания», выполните следующие шаги:
Только после обеспечения стабильного доступа к системе лицензирования ссылки в ПВХ.ПраваИНастройки станут валидными, и метод ОписаниеТипов.Типы() вернет корректную коллекцию типов, что позволит системе завершить запуск без ошибок.