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

Содержание:

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

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

 

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


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

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

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

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


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


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

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

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

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

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

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

        Тогда

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

    Иначе

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

    КонецЕсли;

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

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

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

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

Пример:

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

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

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

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

   

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

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

    Иначе

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

    КонецЕсли; 

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

 

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


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

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

 

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

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

Наши проекты

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

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

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

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

- Разработка подсистемы оперативного учета транзакций...

ООО "НЦКТ"
ООО "НЦКТ"

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

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

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

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

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

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

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

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

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

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

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

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

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление ...

Установка программного продукта БИТ.Финанс для 1С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

Отрасль:
Транспорт

Внедренное типовое решение:
БИТ.Финанс

Построение единого информационного пространства финансовой службы;
Учет ...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

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

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

Внедренное типовое решение:

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

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

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

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

Объемно-календарное планирование производства Автоматизация бизнес-проце...

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

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

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам
- Оформление заказов покупателей
- Упр...

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

– Управление складскими запасами;
– Оформление заказов покупателей;
– ...

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

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

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

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