Автовыбор значения текстового поля формы

1. MagTux 16.12.11 12:14 Сейчас в теме
Подскажите, пожалуйста, как можно решить следующую задачу.

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

Текущая реализация:
По нажатию F4 инициализируется выбор значения и в процедуре ПриНачалеВыбораЗначения() формируется список с инициализацией выбора значения.

Как можно заставить 1С автоматически выполнять необходимые действия при попадании курсора в поле?

Спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. garcevis 6 16.12.11 13:46 Сейчас в теме
Можно повесить обработчик ожидания и анализировать текущий элемент
3. deniseek77 86 16.12.11 13:50 Сейчас в теме
Почему требуется именно строка? Можно, я думаю, и другими типами решить задачу, объясните подробнее конечную цель.
4. MagTux 16.12.11 13:59 Сейчас в теме
(3)
На форме есть Автомобиль типа Справочник.Автомобили и Водитель типа Строка 20. У справочника Автомобиль есть реквизиты Водитель1 Строка 20 и Водитель2 Строка 20. Вот надо выбрать одного из них. Но иногда нужно ввести другое значение отличное от этих двух непосредственно в форму документа.

Логический смысл:
Есть несколько десятков автомобилей. К автомобилю привязаны два водителя, которые меняются. Иногда на автомобиле едет подменный водитель.

Водители не работают на предприятии, поэтому справочником изначально не делались. Если справочник сделать, то всё нормально. Просто хотелось строку оставить.
5. warenic 109 16.12.11 14:14 Сейчас в теме
Штатные средства нажатием F4 ограничиваются. Попробуй посмотри FormEx
6. MagTux 16.12.11 14:31 Сейчас в теме
Кстати, решение нарисовалось одно спонтанно.

Реквизит Водитель делаем неопределённого типа. При вводе нового документа реквизит делается типом любого справочника, тогда при попадании курсора делается автовыбор. В процедуре ПриНачалеВыбораЗначения() делаем необходимые действия, в т.ч. меняем тип на Строка 20 и сбрасываем флаг стандартной обработки.

Сейчас Formex посмотрю. Спасибо за совет.
7. pvase 403 16.12.11 16:24 Сейчас в теме
8. MagTux 16.12.11 16:38 Сейчас в теме
(7) Посмотрел. И что мне делать с этой процедурой? У меня процедура в разы проще, только вот вызывать её когда?
9. pvase 403 16.12.11 16:47 Сейчас в теме
Тогда FormEx и:
ПриНажатииКнопкиКлавиатуры(<Контекст>,<КодКлавиши>,<Alt>,<Shift>,<Ctrl>,<Символ>,<ФСО>)
КонецПроцедуры

а также:
Процедура ПриНажатииЛевойКнопки(<Контекст>,<Состояние>,<КоординатаПоГоризонтали>,<КоординатаПоВертикали>,<ФСО>)
КонецПроцедуры


В глобальном модуле надо прописать загрузку FormEx как ЗагрузитьВнешнююКомпоненту("FormEx.dll").
или же при Открытии:
	Попытка
		_Форма=СоздатьОбъект("Форма");
	Исключение
		Если ЗагрузитьВнешнююКомпоненту("FormEx.dll") = 0 Тогда
			Сообщить("Не найдена внешняя компонента FormEx","!!!");
			СтатусВозврата(0);
			Возврат;
		Иначе
			_Форма=СоздатьОбъект("Форма");
		КонецЕсли;
	КонецПопытки;
_Форма.УстановитьФорму(Форма);
Показать


После чего станут доступны функции описанные выше.
10. MagTux 16.12.11 16:51 Сейчас в теме
(9) У меня и так по кнопке F4 всё работает. Мне надо, чтобы само срабатывало без кнопок.

Когда курсор прыгает на реквизит типа Справочник и у него стоит галка Автовыбор, то подбор открывается атоматически. Вот мне надо проделать такой же фокус со строковым реквизитом.
11. pvase 403 16.12.11 17:13 Сейчас в теме
(10) Так о чем и речь:
ПриНажатииКнопкиКлавиатуры()
КонецПроцедуры
в ней смотрится Форма.АктивныйЭлемент(), и если элемент тот что нам надо делаем то же самое что и ПриНачалеВыбораЗначения.
12. MagTux 16.12.11 17:41 Сейчас в теме
(11) Спасибо. Мысль понял. Попробую, но вводить врядли буду.
Это по каждому энтэру или табу будет выполняться процедура проверки активного элемента. Хотя если заметных задержек не будет, то может и внедрю.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот