Обработка нажатия клавиши

10.06.20

Разработка - Работа с интерфейсом

Один из способов обработки события нажатия клавиши.

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

Встал вопрос - а как отловить событие нажатия клавиши?

У таблицы формы есть свойство "Сочетание клавиш". Может быть попробовать воспользоваться им?

Вот что по поводу этого свойства говорит синтакс-помощник.

 

 

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

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

В общем-то всё логично, и правильно. Но мне-то зачем на форме показывать команду для управления значением флажка в таблице формы? Зачем мне "лишний" элемент в форме? Как его одновременно и показать, и скрыть?

И тут мне пришла в голову такая мысль - а что, если команду отобразить как гиперссылку, а цвет текста установить совпадающий с цветом фона формы? Визуально её не будет видно, она не будет бросаться в глаза. А если сделать это программно, например ПриСозданииНаСервере, или ПриОткрытии, тогда разработчику в конфигураторе эту гиперссылку будет видно, а в пользовательском режиме - нет. А если еще и заголовок при этом минимизировать (совсем пустой сделать нельзя), но можно ведь указать " " (один пробел), то эта гиперссылка будет занимать еще и минимальную площадь.

Так и сделал. И всё прекрасно работает!

P.S. Как программно скрыть гиперссылку

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Элементы.КомандаФормы.Заголовок = " ";
	Элементы.КомандаФормы.ЦветТекста = ЦветаСтиля.ЦветФонаФормы;
КонецПроцедуры

UPD. Прочитал эту статью мой друг, сразу спросил: А ты пробовал команду скрыть через пользовательскую видимость?
Решил уточнить этот момент.

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

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

управляемая форма обработка нажатия клавиши нажатие

См. также

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55974    17    23    

43

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    64308    45    60    

83

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    20297    29    6    

45

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    26191    mrXoxot    44    

130

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    13627    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18899    1241    elcoan    53    

128

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    13250    171    acces969    31    

127

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    8864    kalyaka    6    

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Darklight 34 10.06.20 14:40 Сейчас в теме
На мой взгляд глобальные команды для этого лучше подходят - и кто знает - именно для этого их и использует.

Другое дело - что 1С поддерживает слишком ограниченное число горячих комбинаций - вот от этого действительно грустно!
3. RotaninV 24 10.06.20 16:12 Сейчас в теме
(1) Возможно. Но у меня это не форма из конфигурации, а внешняя обработка.
2. EVKash 16 10.06.20 15:52 Сейчас в теме
А как по мне, то такой команде самое место в командной панели с вариантом размещения "В дополнительном подменю". Среди всяких "Найти", "Удалить" и т.д.
ixijixi; Yashazz; +2 Ответить
4. RotaninV 24 10.06.20 16:13 Сейчас в теме
(2) На вкус и цвет все фломастеры разные. Хотите - располагайте в дополнительном подменю. Хотите, можете сделать как я.
5. Darklight 34 10.06.20 18:31 Сейчас в теме
(4)Ни о каком доп. меню я не говорил - нужно просто сделать глобальную команду и настроить в ней горячую клавишу (ну или в обработчике )разместить код допределния тек формы - если надо.
Впрочем - если надо корчить конкретную форму - то можно делать как Вы написали . Ничего не имею против. Такой вариант я тоже использую - только немного в другом контексте
8. DELOVOYDOM 12.02.24 01:23 Сейчас в теме
(4) При нажатии клавиши фокус перескакивает с таблицы на эту скрытую кнопку, удалось как то элегантно решить этот вопрос?
9. DELOVOYDOM 12.02.24 01:24 Сейчас в теме
(8) Когда гиперссылка не перескакивает)
6. zqzq 25 11.06.20 10:47 Сейчас в теме
(2) Тоже делал команду только во "Всех дейсвиях", причем синоним установил в " " (пробел).
Если назначить кнопкой по умолчанию, то можно отлавливать Enter.
7. Shmell 548 11.06.20 12:13 Сейчас в теме
Взял на заметку. В последнее время много интерфейсных задач, думаю что точно пригодиться!
Оставьте свое сообщение