28.02.2025 Степан Радченко 3714
Программная настройка видимости контекстного ...

Содержание:

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

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

 

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


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

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

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

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


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


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

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

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

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

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

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

        Тогда

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

    Иначе

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

    КонецЕсли;

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

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

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

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

Пример:

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

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

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

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

   

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

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

    Иначе

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

    КонецЕсли; 

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

 

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


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

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

 

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

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

Наши проекты

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Бухгалтерский учет
- Расчет зарплаты и кадровый учет
- Налоговый учет ...

Автоматизация производственного планирования нефтесервисной компании на базе 1С:ЕРП 2.0
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Блок планирования проектов (процессы объемно-календарного планирования пр...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Комплексная автоматизация

- Налоговый учет;...

Госкорпорация «Ростех»
Госкорпорация «Ростех»

Отрасль:
Производство, ТЭК >> Машиностроение, приборостроение

Внедренное типовое решение:
1С:Управление холдингом 1.3.

Специалисты «Кодерлайн» помогли разработать и внедрить автоматизированную...

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Отказ от бумажного документооборота, от громоздких систем на базе офисного...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

МИР ХОББИ
МИР ХОББИ

Отрасль:
Торговля. Интернет магазин

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Оформление заказов поставщикам
Взаиморасчеты с покупателями
Оформление...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый ...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием для Украины

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Уч...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

Внедренное типовое решение:
Платформа 1С:Предприятие 8

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:ТОИР Управление ремонтами и обслуживанием оборудования

Мониторинг и анализ ключевых показателей деятельности предприятия Управле...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение