При разработке конфигураций на платформе «1С:Предприятие 8.3» разработчики часто сталкиваются с ситуацией, когда в форме элемента или списка справочника внезапно появляются лишние гиперссылки (например, надпись «Основное» или прямые ссылки на регистры) — в решении таких задач поможет профессиональный инструмент для анализа и отладки прав доступа в 1С. Разберем детально, почему это происходит, за что отвечает свойство Ведущее и как правильно управлять интерфейсом, не нарушая логику работы базы данных.
Давайте проанализируем, как платформа принимает решение о выводе ссылки на регистр в форме справочника. В 1С реализована концепция автоматического построения навигации. Если в системе существует регистр (сведений, накопления или расчета), в котором одно из измерений имеет тип ссылки на наш справочник, платформа может счесть эту связь важной и предложить пользователю быстрый переход.
Ключевым фактором здесь является свойство измерения регистра — «Ведущее» (Master). Рассмотрим, на что оно влияет:
Ведущее, то при удалении элемента справочника система автоматически удалит все записи в этом регистре, связанные с удаляемым элементом. Это избавляет базу данных от «битых» ссылок и зависших записей в регистрах — для автоматизации этого процесса подойдёт обработка поиска и безопасного удаления битых ссылок в 1С.Разберем ситуацию: если мы снимем этот флаг только ради того, чтобы ссылка исчезла из интерфейса, мы рискуем нарушить логику очистки данных. Поэтому давайте рассмотрим правильные способы управления видимостью.
Если нам необходимо оставить свойство Ведущее для контроля целостности, но при этом скрыть ссылку из конкретной формы, мы воспользуемся редактором командного интерфейса. Выполним следующие шаги:
Этот метод является наиболее предпочтительным, так как он не затрагивает метаданные и бизнес-логику удаления объектов, работая исключительно на уровне представления (UI).
Бывают случаи, когда ссылку нужно скрывать не всегда, а в зависимости от определенных условий (например, от значения реквизитов справочника или прав текущего пользователя). В таком случае проанализируем программный метод управления через модуль формы.
Для этого в обработчике события ПриСозданииНаСервере мы можем обратиться к коллекции команд формы. Рассмотрим пример кода:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Определим имя команды перехода к регистру.
// Обычно оно строится по шаблону: КомандаПерехода_ИмяРегистра
// Но в управляемых формах для навигационной панели используется коллекция команд.
Для Каждого ЭлементКомандногоИнтерфейса Из ЭтаФорма.КомандныйИнтерфейс.ПанельНавигации.ПодменюПерейти.ПодчиненныеЭлементы Цикл
Если Найти(ЭлементКомандногоИнтерфейса.Имя, "РегистрСведенийИмяВашегоРегистра") > 0 Тогда
ЭлементКомандногоИнтерфейса.Видимость = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Важно помнить, что состав команд навигационной панели жестко привязан к метаданным, и иногда проще управлять видимостью через Функциональные опции, если скрытие ссылки зависит от настроек системы в целом.
Выясним еще одну причину, по которой ссылка может отображаться или отсутствовать. Платформа 1С строго соблюдает права доступа. Даже если свойство Ведущее установлено и в командном интерфейсе включена видимость, пользователь не увидит гиперссылку, если у него нет прав на «Просмотр» или «Чтение» данного регистра сведений — быстро настроить права поможет обработка автоматической настройки прав доступа пользователей на просмотр и редактирование объектов.
Если вы работаете с расширением конфигурации (как упоминалось в исходном вопросе), убедитесь, что в профили групп доступа добавлены права на новые объекты, созданные в расширении. В противном случае интерфейсные элементы могут вести себя непредсказуемо.
Часто вопрос касается появления группы «Основное» в верхней части формы. Это происходит, когда в панели навигации формы появляется более одной ссылки (например, на несколько регистров или подчиненных справочников). Платформа автоматически группирует стандартные реквизиты формы под заголовком «Основное», а связанные данные — в отдельные команды. Чтобы убрать эту группировку, необходимо минимизировать количество команд в панели навигации, оставив только необходимые, либо перенастроить состав групп в командном интерфейсе формы, как мы разбирали выше.
Проанализировав проблему, мы пришли к выводу, что управление ссылками в 1С требует комплексного подхода:
Таким образом, мы сохраняем чистоту интерфейса для пользователя, не жертвуя при этом надежностью и целостностью структуры данных в базе 1С.