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