В практике разработчика 1С часто встречается ситуация, когда новый или существующий объект (например, РегистрСведений) присутствует в дереве метаданных конфигуратора, но полностью отсутствует в пользовательском режиме. Он не виден в меню «Функции технического специалиста» (ранее «Все функции») и не доступен для выбора в консоли запросов. Рассмотрим подробнее причины этого явления и разберем по шагам методы исправления ситуации без потери накопленных данных.
Первым делом проанализируем настройки безопасности. Если объект добавлен в основную конфигурацию или через расширение, платформа проверяет наличие прав Чтение и, что более важно для интерфейса, Просмотр. Выясним причину отсутствия прав:
ПолныеПрава (или аналогичная основная роль расширения) была соответствующим образом дополнена. В расширении необходимо не просто добавить объект, но и расширить роль, установив галочки на правах доступа для этого объекта.Просмотр. Часто разработчики ограничиваются правом Чтение, забывая, что именно Просмотр отвечает за видимость объекта в списках, таких как «Функции технического специалиста».Разберем ситуацию, которая является самой частой причиной «исчезновения» объектов в современных типовых решениях (УНФ, ERP, КА). Рассмотрим, как работают Функциональные опции. Если ваш регистр сведений включен в состав функциональной опции, его видимость напрямую зависит от значения этой опции в константе или регистре сведений.
Посмотрим на алгоритм проверки:
В конфигурациях на базе Библиотеки стандартных подсистем (БСП), к которым относится 1С:Управление нашей фирмой, существует реестр объектов метаданных. Он хранится в справочнике ИдентификаторыОбъектовМетаданных. Если вы добавили объект, но записи в этом справочнике не обновились, система может «игнорировать» существование нового регистра.
Для решения этой проблемы выполним программное обновление идентификаторов. Мы можем запустить процедуру обновления вручную, используя внешнюю обработку или консоль кода:
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанные(Истина, Ложь, Ложь);
Параметр Истина заставит систему принудительно перечитать структуру метаданных и актуализировать записи. Также можно запустить информационную базу с параметром командной строки /С ЗапуститьОбновлениеИнформационнойБазы.
Иногда причина кроется в локальном кэше пользователя или серверном кэше сеансов. Платформа может использовать устаревшее описание конфигурации. Чтобы исключить этот фактор, выполним следующие действия:
Агент сервера 1С:Предприятия.Выясним, не связана ли проблема с банальной невнимательностью. Проверьте свойство Синоним объекта. В окне «Функции технического специалиста» поиск осуществляется именно по синонимам. Если синоним существенно отличается от имени (например, имя ДополнительныеДанные, а синоним _СтарыйРегистр), вы можете просто не найти его в списке по привычному названию.
Также проверим настройки самого окна «Функции технического специалиста». Нажмем на значок шестеренки в этом окне и убедимся, что флаг на ветке Регистры сведений установлен.
Как было отмечено в обсуждении, иногда помогает копирование объекта метаданных. При копировании платформа присваивает объекту новый GUID (уникальный идентификатор). Рассмотрим последствия этого шага:
Важно: Прибегайте к этому методу только в том случае, если база пустая или клиент официально подтвердил допустимость потери данных в этом объекте. Если данные нужно сохранить, лучше воспользоваться методом ВыгрузитьДанные в таблицу значений, пересоздать объект и затем ЗагрузитьДанные обратно программным способом.
Подводя итог, проанализируем последовательность действий при исчезновении объекта:
Просмотр в ролях.Такой системный подход позволит вернуть видимость регистра без разрушительных манипуляций со структурой базы данных и сохранит целостность вашей учетной системы.