Контекстное меню для ячеек
Обработчик меню отвечает за формирование контекстного меню для показа. Но обработка вызова данного события не происходит в контексте определенной ячейки таблицы, поэтому для проверки вызова меню у ячейки применяется специальный метод ЯЧЕЙКА_МЕНЮ. Данный метод проверяет было ли вызвано меню над ячейкой таблицы или контекстное меню было вызвано вне ячеек таблицы, или вызова контекстного меню не происходило. В результате вызова данного метода выходными параметрами являются координаты ячейки, над которой осуществлялся вызов контекстного меню. Данный метод позволяет проверить вызов меню над ячейками фиксированных столбцов и строк.
Для проверки вызова меню у ячейки данных существуют методы КУР_СТРОКА и КУР_СТОЛБЕЦ, но для проверки вызова у фиксированных ячеек эти методы не подходят. Это объясняется тем, что при нажатии правой кнопки мыши над ячейкой данных для показа меню, курсор перемещается на эту ячейку, а при нажатии над фиксированной ячейкой перемещения курсора не происходит. Поэтому данные методы не стоит применять для определения контекста вызова меню ячейки, лучше использовать метод ЯЧЕЙКА_МЕНЮ.
Методы для проверки вызова меню у ячейки используются в обработчиках меню и команда, чтобы обработка этих событий происходила в контексте определенной ячейки.
В примере ниже реализована проверка вызова меню у ячейки. Если вызов меню происходит у ячейки из первой строки, то выводится текстовое сообщение.
Пример
... ФУНКЦИЯ ЛОГИКА: Команда(ПЕРЕМ ТАБЛИЦА: элемент; СТРОКА: код) ПЕРЕМ ЦЕЛОЕ: столбец, строка ВЫБОР(код) #"инфо": ЕСЛИ элемент.ЯЧЕЙКА_МЕНЮ(столбец, строка) ТО ЕСЛИ строка = 1 ТО СООБЩЕНИЕ("Ячейка из первой строки") КОНЕЦ_ЕСЛИ КОНЕЦ_ЕСЛИ РЕЗУЛЬТАТ = ДА ИНАЧЕ РЕЗУЛЬТАТ = НЕТ КОНЕЦ_ВЫБОРА КОНЕЦ_ФУНКЦИИ ...