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