Цитата(kuriban @ 10.03.11, 15:40)
Привет. Помогите плз с вопросом. В документе есть числовое поле. Нужно сделать так, чтобы после того, как в него вводятся данные и нажимается Enter курсор не покидал это поле. Решение: установить для всех реквизитов "пропускать при вводе" не подходит. Работает, если выводить "Предупреждение". Но тоже не подходит
Что делал - при открытии документа метод "Активизировать" работает и курсор устанавливается на нужное поле. Пытался вызвать этот же метод после нажатия Enter пишет, что нельзя использовать этот метод в этой процедуре/функции.
По нажатию Enter происходит вызов процедуры из гл модуля. Пытался там в конце использовать "Активизировать" - та же ошибка. Подскажите
Можно с помощью внешней компонеты Formex.dll (предваритльно скопировать в каталог базы данных). Другими словами эмулируем нажатие на клавиатуре комбинации клавиш SHIFT + TAB (попробуйте вручную - эфект тот же).
1. В глобальный модуль в процедуру ПриНачалеРаботыСистемы() добавить:
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"FormEx.dll")=0 Тогда
Состояние("Не удалось обнаружить компоненту!");
Иначе
Сервис = СоздатьОбъект("Сервис");
КонецЕсли;
2. Добавить в формулу в свойства данного ПОЛЯ "ПриВВодеЗначенияВЯчейку()"
3. В модуль формы документа добавить процедуру:
Процедура ПриВВодеЗначенияВЯчейку()
Сервис = СоздатьОбъект("Сервис");
Сервис.SendKeys("{SHIFT}+{TAB}");
КонецПроцедуры