Почему не виден раздел (подсистема) в расширении 1С и как это исправить

Программист 1С:ERP Управление предприятием Управленческий учет Промышленность, строительство и АПК
← На главную

При разработке расширений в системе 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией, когда новая подсистема, добавленная в расширение как подчиненный раздел, прекрасно отображается под полными правами, но напрочь исчезает из интерфейса обычного пользователя. Даже если все роли назначены и права на объекты даны, раздел может оставаться невидимым. В целом, настройка видимости объектов — частая задача при администрировании. Рассмотрим подробно, почему это происходит и как настроить корректное отображение интерфейса.

Анализируем версию платформы и режим совместимости

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

Начиная с версии 8.3.24, ситуация изменилась, но появились важные условия, которые мы должны проверить:

  1. Тип расширения: Подчиненные подсистемы теперь можно создавать только в расширениях с типом Дополнение (Add-on). Если ваше расширение имеет тип Исправление (Patch), функционал создания подразделов будет недоступен.
  2. Режим совместимости: Убедимся, что и в основной конфигурации, и в самом расширении режим совместимости установлен не ниже 8.3.24. В противном случае механизмы платформы будут работать по старым правилам.

Настройка командного интерфейса родительской подсистемы

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

Выполним следующие шаги:

  1. Заимствуем родительскую подсистему (например, Производство) из основной конфигурации в наше расширение.
  2. В дереве объектов расширения находим заимствованную подсистему, нажимаем на неё правой кнопкой мыши и выбираем пункт «Открыть командный интерфейс».
  3. В открывшемся окне мы должны увидеть нашу новую подсистему ОТК. Проверим, стоит ли флаг видимости для неё. Часто автоматического включения не происходит, и видимость нужно проставить вручную.

Проверка видимости по ролям в свойствах объекта

Даже если у пользователя есть роль с правами Чтение и Просмотр на документы, входящие в раздел, сама подсистема может быть скрыта на уровне свойств метаданных. Разберем, как проверить настройки прав доступа в расширении, а также как выполнить быструю проверку прав доступа на объект метаданных с помощью специальных инструментов.

Откроем свойства нашей подсистемы ОТК в расширении. Нам нужно найти свойство «Установить видимость по ролям». В открывшемся списке ролей необходимо убедиться, что напротив нужной нам роли (например, ОТК_ОсновнаяРоль) проставлена галочка. Если роль была добавлена в расширение позже создания подсистемы, платформа могла не включить видимость для неё автоматически.

Борьба с «пустыми» разделами

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

  1. Отсутствие прав на объекты: У пользователя должны быть права Просмотр хотя бы на один объект, включенный в состав подсистемы.
  2. Настройка командного интерфейса самой подсистемы: Откроем командный интерфейс созданной подсистемы ОТК. Убедимся, что включена видимость команд (документов, справочников) в колонках «Просмотр» или «Использование».
  3. Функциональные опции: Проверим, не заимствованы ли в состав подсистемы объекты, видимость которых управляется функциональными опциями в основной конфигурации. Если функциональная опция выключена, объект (а за ним и раздел) исчезнет.

Особенности систем на базе БСП

Если вы работаете с типовой конфигурацией (например, ERP или Комплексная автоматизация), то в ней активно используется Библиотека стандартных подсистем (БСП). БСП динамически управляет интерфейсом и профилями групп доступа. В этом случае новые объекты расширения могут не появиться сразу из-за кэширования метаданных.

Проанализируем необходимые действия для систем с БСП:

Рекомендация по именованию объектов

Чтобы избежать конфликтов прав и коллизий в пространстве имен, всегда используйте уникальные префиксы для своих подсистем в расширении. Вместо простого имени ОТК, лучше использовать прф_ОТК или ИмяКомпании_ОТК. Это гарантирует, что при обновлении основной конфигурации или добавлении других расширений ваши настройки видимости не будут перекрыты одноименными объектами.

Подводя итог: если раздел не виден, последовательно проверяем версию платформы (8.3.24+), тип расширения (Дополнение), командный интерфейс родителя и видимость по ролям в самой подсистеме. В большинстве случаев проблема кроется именно в настройках командного интерфейса родительской подсистемы, которая была заимствована в расширение.

← На главную