Как исправить ошибку «Объект не найден» и сбои инициализации прав в конфигурации «Рарус: Комбинат питания»?

Программист 1С v8.3 (Обычные формы) Сфера услуг, туризм и социальный сектор
← На главную

При развертывании копии базы данных или переносе конфигурации «Рарус: Комбинат питания» на новый сервер специалисты часто сталкиваются с критической ошибкой на этапе запуска системы. Проблема проявляется не как прямое сообщение об отсутствии лицензии, а как программный сбой в модулях инициализации прав. Рассмотрим детально, почему это происходит и как восстановить работоспособность системы.

Анализ технической причины ошибки

Проанализируем ситуацию, когда при запуске система выдает ошибку: Значение не является значением объектного типа (Типы). Если мы обратимся к отладчику, то увидим, что сбой происходит в Плане видов характеристик (ПВХ) «Права и настройки». Типовой фрагмент кода, вызывающий исключение, выглядит следующим образом:


ТипЗнач = ОписаниеТипов.Типы().Получить(0); // Получим первый (и единственный) попавшийся из типов

Выясним причину: переменная ОписаниеТипов в данный момент не содержит ожидаемого объекта. Это происходит потому, что ссылка на объект ПВХ (например, СсылкаПВХправ) возвращает значение «Объект не найден». В решениях компании «Рарус» это классический симптом того, что защищенные объекты метаданных стали недоступны для платформы «1С:Предприятие» из-за отсутствия связи с ключом защиты или сервером лицензирования.

Решение 1: Проверка системы лицензирования и конфигурирования (СЛК)

Разберем, как работает защита в данной конфигурации. «Рарус» использует компоненты СЛК (Система лицензирования и конфигурирования) или систему «Катран». Если база является копией рабочей, она по-прежнему пытается найти сервер лицензий по старым настройкам. Рассмотрим шаги по диагностике:

  1. Проверка доступности сервера лицензий. Убедимся, что служба Rarus License Server запущена на сервере, где установлен ключ. Попробуем зайти в консоль администрирования СЛК (обычно это адрес http://localhost:9099 в браузере).
  2. Настройка адреса сервера. Проанализируем файлы конфигурации защиты. В папке с установленной компонентой защиты или в каталоге информационной базы найдем файлы типа Protect.ini или LicServer.ini. Убедимся, что в параметре IP или ServerName указан актуальный адрес сервера, на котором физически установлен USB-ключ или активирована программная лицензия.
  3. Проверка занятых лицензий. В консоли СЛК проверим, нет ли превышения количества одновременных подключений. Если все лицензии заняты, защищенный функционал (включая ПВХ «Права и настройки») будет заблокирован, что приведет к ошибке Объект не найден.

Решение 2: Совместимость разрядности сервера и компонент защиты

Часто проблема возникает при переносе базы с 32-битного на 64-битный сервер «1С». Посмотрим на важный нюанс: старые версии конфигураций «Раруса» используют 32-битные библиотеки защиты (например, Protect.dll), которые не могут быть загружены 64-битным процессом rphost.

Для устранения этой проблемы выполним следующие действия:

  1. Установим 64-битную версию компоненты защиты «Рарус», соответствующую версии вашей конфигурации.
  2. Зарегистрируем необходимые библиотеки в операционной системе с помощью команды: regsvr32 "C:\PathToComponent\Protect.dll"
  3. Перезапустим службу «Агент сервера 1С:Предприятия».

Решение 3: Очистка кэша и инициализация прав

Если сервер лицензий доступен, но ошибка сохраняется, проанализируем состояние кэша. Платформа «1С» может кэшировать состояние объектов метаданных, и «битая» ссылка может сохраняться даже после восстановления связи с защитой. Попробуем выполнить полную очистку кэша конфигурации на стороне сервера и на рабочем месте пользователя.

Также стоит обратить внимание на сообщение из темы: ОбработкаСтартСистемы.ПервоначальнаяИнициализация. Если это первый запуск копии базы, система пытается создать дерево прав. Если в этот момент связь с сервером лицензий была нестабильной, записи в ПВХ могли создаться некорректно. В таком случае может потребоваться повторный запуск процедуры ИнициализироватьПраваИНастройки() после восстановления стабильной связи с СЛК.

Почему нельзя просто закомментировать код?

Рассмотрим предложение закомментировать строку, вызывающую ошибку. В конфигурациях «Раруса» проверка лицензии встроена глубоко в логику системы. Если мы «проскочим» инициализацию прав в МодулеОбычногоПриложения, это приведет к тому, что:

Важный вывод: Ошибка Значение не является значением объектного типа (Типы) в контексте ПВХ.ПраваИНастройки является лишь следствием. Первопричина всегда кроется в недоступности защищенного модуля «Раруса» из-за проблем с лицензированием.

Резюме действий для системного администратора и программиста

Подведем итог. Чтобы успешно запустить копию «Комбината питания», выполните следующие шаги:

  1. Убедитесь, что служба СЛК запущена и видит ключ.
  2. Проверьте, что настройки подключения в конфигурационных файлах (.ini) указывают на правильный сервер.
  3. Убедитесь в соответствии разрядности сервера 1С и установленных драйверов/библиотек защиты.
  4. Проверьте права доступа пользователя, под которым работает служба сервера «1С», к папкам с компонентами защиты.

Только после обеспечения стабильного доступа к системе лицензирования ссылки в ПВХ.ПраваИНастройки станут валидными, и метод ОписаниеТипов.Типы() вернет корректную коллекцию типов, что позволит системе завершить запуск без ошибок.

← На главную