Программная настройка видимости контекстного ...
-

Программная настройка видимости контекстного меню в форме списка 1С

0
4509
28.02.2025 Степан Радченко

Содержание:

1.     Подходы к настройке видимости контекстного меню в системе автоматизации 1С

2.     Практические советы по работе с видимостью контекстного меню в учетной программе 1С

 

Контекстное меню — важный элемент интерфейса в 1С, который позволяет пользователю выполнять команды, связанные с текущим объектом или элементом списка. В некоторых случаях требуется настраивать видимость пунктов контекстного меню программно в зависимости от условий, таких как права пользователя, состояние объекта или другие параметры. В этой статье мы разберем, как управлять видимостью пунктов меню в форме списка с помощью встроенных механизмов платформы 1С.


Общие сведения о контекстном меню:

Контекстное меню формы списка — это набор команд, которые появляются при щелчке правой кнопкой мыши на элементе списка. В платформе 1С контекстное меню формируется автоматически на основании:

  • Реквизитов и табличных частей формы.
  • Реквизитов объекта.
  • Команд интерфейса.  

Однако платформенные настройки не всегда удовлетворяют требованиям. Поэтому иногда требуется настроить отображение отдельных пунктов меню через программный код.


1.     Подходы к настройке видимости контекстного меню в системе автоматизации 1С


Настройка видимости пунктов контекстного меню в форме списка выполняется несколькими способами:

  1. Через модуль формы: управление свойством видимости команды.
  2. Использование события ПриОткрытииКонтекстногоМеню.
  3. Использование ролей и дополнительных условий доступа.

Настройка через модуль формы:

Если пункт меню привязан к определенной команде, его видимость можно настроить через модуль формы, изменив свойство Команда.Видимость.

Пример:
Допустим, у вас есть команда Удалить, которая должна быть доступна только для пользователей с определенной ролью.
Процедура СписокПриАктивизацииСтроки(Отказ, СтандартнаяОбработка)

    Если НЕ РольДоступна("Администратор") Тогда

        Тогда

        Элементы.СписокКонтекстноеМенюУдалить.Видимость = Ложь;

    Иначе

        Элементы.СписокКонтекстноеМенюУдалить.Видимость = Истина

    КонецЕсли;

КонецПроцедуры

  • РольДоступна — это вспомогательная функция, проверяющая права пользователя.

Использование события СписокПриАктивизацииСтроки:

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

Пример:

Скрываем пункт меню для строк, где реквизит "Статус" равен "Завершено":

Процедура ПриОткрытииКонтекстногоМеню(Элемент, СтандартнаяОбработка)

    // Получаем текущую строку

    ТекущаяСтрока = ЭлементыФормы.Список.ТекущиеДанные;

   

    Если ТекущаяСтрока.Статус = "Завершено" Тогда

       Элементы.СписокКонтекстноеМенюУдалить.Видимость = Ложь;

    Иначе

                Элементы.СписокКонтекстноеМенюУдалить.Видимость = Истина;

    КонецЕсли; 

КонецПроцедуры

 

2.     Практические советы по работе с видимостью контекстного меню в учетной программе 1С


  1. Минимизируйте дублирование кода:
    • Создавайте вспомогательные функции для проверки условий (например, доступ к роли, статус строки).
  2. Скрывайте пункты вместо их отключения:
    • Если пункт меню не должен быть доступен пользователю, лучше скрыть его (установить Видимость = Ложь), чем просто отключить (Доступность = Ложь). Это делает интерфейс более понятным.
  3. Тестируйте разные сценарии:
    • Убедитесь, что все пункты меню отображаются корректно для разных пользователей и ролей.

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

 

Специалист компании ООО "Кодерлайн"

Степан Радченко

Обсудить статью в Telegram Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.