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