Работа с контекстным меню элемента формы в 1С

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

  1. Вручную, созданием соответствующего списка и определением набор процедур;
  2. Автоматически.

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

Автоматическое создание контекстного меню

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

Допустим, условие задачи предполагает наличие контекстного меню у элемента формы «ТабличныйДокумент». Решим эту задачу для обычной формы внешней обработки.

  1. Создадим обработку и добавим ей новую форму;
  2. На форме создадим элемент с типом «ТаблицаЗначений»;
  3. Откроем меню свойств этого элемента (Рис.1); Рис.1
  4. Здесь следует обратить внимание на пункты «АвтоКонтекстноеМеню» и «КонтекстноеМеню».

Выключение галочки «АвтоКонтекстноеМеню» позволяет разработчику создать меню, состоящее только из собственных пунктов. Если же флажок активирован, автоматически созданное меню будет располагаться под списком команд, сформированным пользователем.

В свойствах параметра «КонтекстноеМеню» можно определить типовой список команд, который существует на форме (Рис.2).

Рис.2

В нашем случае мы можем:

  • Связать контекстное меню с командной панелью формы обработки;
  • Вызвать те же действия, которые включены в выпадающий список команды «Действия»;
  • Определить тот же набор пунктов, который реализован в основных действиях формы.

Если мы хотим, чтобы в выпадающем по правому клику списке был реализован набор команд, характерный для табличного поля, мы должны:

  1. Создать командную панель, для которой источником действий будет выступать наше табличное поле;
  2. Снять видимость с этого элемента;
  3. Установить в параметре «КонтекстноеМеню» нашу командную панель.

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

Рис.3

Включить контекстное меню можно, если по элементу формы «Реквизит1» кликнуть правой кнопкой мыши (Рис.4). В выпавшем списке выберем пункт «Показать контекстное меню».

Рис.4

После этого дерево элементов формы получит новую ветку (Рис.5)

Рис.5

Теперь рассмотрим процесс заполнения контекстного меню.

Ручное заполнение пунктов меню

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

Для управляемой формы набор команд, реализованных в  выпадающем списке можно определить, перетаскиванием их с закладки «Команды» в соответствующую ветку дерева элементов (Рис.6).

Рис.6

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

Программное добавление контекстного меню и списка команд в нем

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

Для этого:

  1. У формы создадим обработчик события ПриОткрытии;
  2. Процедуры разместим на клиенте и на сервере, так как для работы нам понадобятся элементы формы, использование директив без контекста не имеет смысла;
  3.  Важное замечание: сами команды должны быть определены и прописаны, иначе запуск обработки не состоится;
  4. Наша форма будет иметь вид, представленный на Рис.7; Рис.7
  5. Перейдем к программированию;
  6. В первую очередь добавим новые элементы код на Рис.8; Рис.8
  7. Определим представление новых элементов и соответствующие команды (Рис.9); Рис.9

После этих действий контекстное меню будет выглядеть как на Рис.10

Рис.10

Если нам не нужны остальные действия с таблицей, и мы хотим, чтобы меню состояло только из наших пунктов, нам придется добавить еще несколько строк кода.

Первая мысль, которая приходит в голову – отключить автозаполнение. Если бы наше контекстное меню не было создано программно, мы бы так и сделали, однако попытки обнаружить соответствующее свойство у созданного с помощью кода меню (у автора статьи) не увенчались успехом. И было принято решение сделать все предопределенные строки списка невидимыми.

Для этого, перед вышеприведенным кодом был вставлен следующий цикл (Рис.11):

Рис.11.

Таким образом, все подчиненные элементы контекстного меню стали не видны, и оно приобрело вид, как на Рис.12

Рис.12


Добавить комментарий

Ваш e-mail не будет опубликован.

*

code


Опыт бесшовной интеграции программ "1С" от компании НОУ-ХАУ
Представляем вашему вниманию интервью руководителя департамента программно-технического обеспечения Цифрового центра "ИОН" Алексея Зайцева. Обсудим совместное использование 1C:ERP, 1С:ЗУП КОРП, 1С:Документооборот ...
Интернет вещей за неделю: больницы Сингапура отключили от сети, DNS rebinding атакует, мир защитят от оружия на ИИ
В Сингапуре после кибератаки компьютеры медучреждений отключили от интернета. Большинство IoT-устройств уязвимы перед атаками DNS rebinding. Ведущие ИТ-компании отказались от ...
Скамы со звездами и не только: как обманывают криптовалютных инвесторов
Медиаперсона Ольга Бузова объявила о старте ICO своего блокчейна Buzar и криптовалюты BuZcoin. Пока привлечь запланированный объем средств не удается ...
Зачем запросу план и кто его выполняет?
Как определить, почему запрос выполняется слишком долго? Что происходит с запросом на стороне сервера баз данных? В статье приводится объяснение, ...
Автоматизация контроля границ
Продолжаем изучение учебника по бизнес-программированию. На этот раз - параграф из раздела "Автоматизация" ...
Форма статистического наблюдения № 1-Т за 2018 год
Утверждена годовая форма статистического наблюдения № 1-Т "Сведения о численности и заработной плате работников" за 2018 год. Приказ Росстата от ...
Форма статистического наблюдения № 2-ГС (ГЗ) за 2018 год
Утверждена годовая форма статистического наблюдения № 2-ГС (ГЗ) "Сведения о дополнительном профессиональном образовании федеральных государственных гражданских служащих и государственных гражданских ...
Форма статистического наблюдения № 1-Т (ГМС) за 2018 год
Утверждена годовая форма статистического наблюдения № 1-Т (ГМС) "Сведения о численности и оплате труда работников государственных органов и органов местного ...
Форма статистического наблюдения № П-4 для 2019 года
Утверждена месячная форма статистического наблюдения № П-4 "Сведения о численности, заработной плате и движении работников" для отчетности 2019 года. Приказ ...
Форма статистического наблюдения № 2-МС за 2018 год
Утверждена годовая форма статистического наблюдения № 2-МС "Сведения о дополнительном профессиональном образовании муниципальных служащих" для отчета за 2018 год. Приказ ...
Форма статистического наблюдения № П-1 (СХ) для 2019 года
Утверждена месячная форма статистического наблюдения № П-1 (СХ) «Сведения о производстве и отгрузке сельскохозяйственной продукции» для отчетности 2019 года. Приказ ...
Форма статистического наблюдения № 1-Т (условия труда) за 2018 год
Утверждена годовая форма статистического наблюдения № 1-Т (условия труда) "Сведения о состоянии условий труда и компенсациях за работу во вредных ...
Форма статистического наблюдения № 3-Ф для 2019 года
Утверждена месячная форма статистического наблюдения № 3-Ф "Сведения о просроченной задолженности по заработной плате" для отчетности 2019 года. Приказ Росстата ...
ТГУ автоматизирует маркетинговые коммуникации за 9,5 млн рублей
ТГУ разместил тендер на 9,5 миллионов рублей. Университету требуется внедрение системы управления маркетинговыми коммуникациями со студентами на базе платформы «1С:Предприятие ...
Не только о погоде: «Алиса» направит пользователя в корпоративный чат
«Яндекс» начал показывать кнопку чата с компанией в «Каталоге навыков» «Алисы». Пользователи смогут отправлять вопросы в выбранную компанию при поисковом ...