Событие при смене активного элемента формы
День добрый, коллеги.
Появилась необходимость помнить предыдущий активный элемент на форме (упр)
Есть ли какой-нибудь общий механизм формы (событие), который активируется при смене активного элемента формы чтобы из него получать текущий активный элемент формы?
Прописывать такое в каждом элементе формы очень не хочется, их очень много.
Появилась необходимость помнить предыдущий активный элемент на форме (упр)
Есть ли какой-нибудь общий механизм формы (событие), который активируется при смене активного элемента формы чтобы из него получать текущий активный элемент формы?
Прописывать такое в каждом элементе формы очень не хочется, их очень много.
По теме из базы знаний
- Требование-накладная с просмотром остатков в форме
- Пометка тестовой копии рабочей базы через механизм оповещений и раскрашивание форм (Управляемое приложение)
- Вывод вариантов СКД в таблицы на управляемой форме
- Открыть форму внутри другой формы - наконец-то возможно!
- "..и хочу, чтобы при скролле взмывали бабочки" (с) - 1С:Элемент и нестандартные требования к интерфейсу
Найденные решения
(9) Вот что сейчас откопал.
Если разместить кнопки в командной панели в выпадающем подменю, то текущий элемент не пропадает. То есть работает так, как тебе надо. Просто команды расположенные в командной панели не проверял, но с меню точно работает.
Если разместить кнопки в командной панели в выпадающем подменю, то текущий элемент не пропадает. То есть работает так, как тебе надо. Просто команды расположенные в командной панели не проверял, но с меню точно работает.
&НаКлиенте
Процедура КомандаВставитьСимвол(Команда)
Перем Текст;
Если Команда = Команды.КомандаВставитьВопрос Тогда
Текст = "?";
ИначеЕсли Команда = Команды.КомандаВставитьВосклицательный Тогда
Текст = "!";
КонецЕсли;
Элемент = ЭтаФорма.ТекущийЭлемент;
Если Элемент = Элементы.Строка1 или Элемент = Элементы.Строка2 Тогда
ВставитьТекст(Элемент, Текст);
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Такого события нет. На для строк таблицы есть. Обычно этого за глаза хватает. Лучше напиши, задачу подробнее, возможно подскажут более подходящее решение.
(3) если коротко, то задача следующая:
предыдущий активный элемент формы запоминать и при определенных нажатиях на кнопки формы вносить изменения в этот предыдущий элемент формы, так как при нажатии на кнопку формы текущим элементом становится нажимаемая кнопка формы.
предыдущий активный элемент формы запоминать и при определенных нажатиях на кнопки формы вносить изменения в этот предыдущий элемент формы, так как при нажатии на кнопку формы текущим элементом становится нажимаемая кнопка формы.
(5) на форме есть несколько реквизитов текстовых и всего один ряд уникальных кнопок.
К каждой кнопке привязан один специфичный символ.
Нужно чтобы при нажатии на кнопку мышкой, символ назначенный этой кнопке, записывался в текстовый реквизит, который был активен до нажатия кнопки.
Так надеюсь понятнее написал.
Дублировать ряд кнопок под каждый текстовый реквизит не получиться.
Перевести все реквизиты в таблицу тоже не получится.
К каждой кнопке привязан один специфичный символ.
Нужно чтобы при нажатии на кнопку мышкой, символ назначенный этой кнопке, записывался в текстовый реквизит, который был активен до нажатия кнопки.
Так надеюсь понятнее написал.
Дублировать ряд кнопок под каждый текстовый реквизит не получиться.
Перевести все реквизиты в таблицу тоже не получится.
(9) На попробовать такой вариант. Если символы надо вставлять не прям очень часто и можно это делать двумя нажатиями.
То можно попробовать сделать рядом с реквизитами выпадающие списки для выбора нужного символа.
Или открывать форму с таблицей символов по нажатии кнопки Открыть в реквизитах.
То можно попробовать сделать рядом с реквизитами выпадающие списки для выбора нужного символа.
Или открывать форму с таблицей символов по нажатии кнопки Открыть в реквизитах.
(9) Вот что сейчас откопал.
Если разместить кнопки в командной панели в выпадающем подменю, то текущий элемент не пропадает. То есть работает так, как тебе надо. Просто команды расположенные в командной панели не проверял, но с меню точно работает.
Если разместить кнопки в командной панели в выпадающем подменю, то текущий элемент не пропадает. То есть работает так, как тебе надо. Просто команды расположенные в командной панели не проверял, но с меню точно работает.
&НаКлиенте
Процедура КомандаВставитьСимвол(Команда)
Перем Текст;
Если Команда = Команды.КомандаВставитьВопрос Тогда
Текст = "?";
ИначеЕсли Команда = Команды.КомандаВставитьВосклицательный Тогда
Текст = "!";
КонецЕсли;
Элемент = ЭтаФорма.ТекущийЭлемент;
Если Элемент = Элементы.Строка1 или Элемент = Элементы.Строка2 Тогда
ВставитьТекст(Элемент, Текст);
КонецЕсли;
КонецПроцедуры
Показать
(16) Супер, отличный вариант, спасибо. Жаль что у меня не таблица а разрозненные реквизиты формы.
Но попробую может удастся использовать кнопки Командной панели или что-то похожее что не перехватывает активность формы на себя.
Но попробую может удастся использовать кнопки Командной панели или что-то похожее что не перехватывает активность формы на себя.
(4) Это отвратительная логика.
Предыдущим элементом перед нажатием кнопки может быть что угодно, а не только твой целевой элемент. В этом случае кнопка будет нерабочей, а пользователь будет поминать программиста разными словами.
Думай ещё.
Предыдущим элементом перед нажатием кнопки может быть что угодно, а не только твой целевой элемент. В этом случае кнопка будет нерабочей, а пользователь будет поминать программиста разными словами.
Думай ещё.
Попробуй воспользоваться событием элемента формы - АвтоПодбор. Даже при простой активизации поля событие выполняется. Запиши оттуда имя элемента формы в реквизит формы, а затем при нажатии кнопки с символом получи реквизит объекта по имени из сохраненного значения реквизита и допиши в него символы.
Придётся для всех элементов, в которые ты записываешь, сделать такое событие.
Объект[ИмяПоляФормыИзРеквизита] = Объект[ИмяПоляФормыИзРеквизита] + СимволСКнопки;
Придётся для всех элементов, в которые ты записываешь, сделать такое событие.
Объект[ИмяПоляФормыИзРеквизита] = Объект[ИмяПоляФормыИзРеквизита] + СимволСКнопки;
(12) Кстати, если у тебя много элементов формы, то ты можешь их затолкать в массив, затем обойти его и каждому элементу из коллекции установить действие - Элементы[ИмяЭлемента].УстановитьДействие("АвтоПодбор", "ОбщаяПроцедураАвтоПодбор");
У тебя получится, что для всех твоих элементов одно событие, которое будет отрабатывать на все эти элементы, куда нужно значение писать, и оно будет тебе последний активированный элемент в переменную записывать, а дальше уже как выше написал
У тебя получится, что для всех твоих элементов одно событие, которое будет отрабатывать на все эти элементы, куда нужно значение писать, и оно будет тебе последний активированный элемент в переменную записывать, а дальше уже как выше написал
(13) Чтобы корректно отработало нужно всем элементам формы присвоить данное действие.
Иначе не всегда информация по текущему элементу будет актуальная.
Не уверен что в дальнейшем по какому-нибудь элементу не потребуется данное действие для другой цели.
Пока решил свою задачу путем создания кнопок в командной панели.
Но всё равно спасибо за помощь.
Иначе не всегда информация по текущему элементу будет актуальная.
Не уверен что в дальнейшем по какому-нибудь элементу не потребуется данное действие для другой цели.
Пока решил свою задачу путем создания кнопок в командной панели.
Но всё равно спасибо за помощь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
