Переход к редактированию значения в цифровой колонке при нажатии на цифровую клавишу
Переход к редактированию значения в цифровой колонке при нажатии на цифровую клавишу
- Описание
- Подробнее
Описание
По анонсу все понятно, для работы нужен FormEX.DLL, интегрируется в модуль формы документа, в приведенном примере редактируем значение в колонке «Количество», как прикрутить к своей думаю прозрачно — разглагольствовать не буду
Перем РедКоличество;
//*****************************************************************************
Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Ctrl, Символ, ФСО)
Если РедКоличество=1 Тогда
Возврат;
КонецЕсли;
Если Форма.ТекущаяКолонка()=«Количество» Тогда
Если (КодКлавиши>=96) И (КодКлавиши<=105) Тогда
КодКлавиши=КодКлавиши—48;
КонецЕсли;
Если (КодКлавиши>=48) И (КодКлавиши<=57) Тогда
РедКоличество=1;
Сервис = СоздатьОбъект(«Сервис»);
Сервис.SendKeys(«{ENTER}{DEL}»,1);
Сервис.SendKeys(Симв(КодКлавиши));
ФСО=0;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//******************************************************************************
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = «Количество» Тогда
РедКоличество=1;
КонецЕсли;
КонецПроцедуры //ПриНачалеРедактированияСтроки()
//*****************************************************************************
Процедура ПриОкончанииРедактированияСтроки(НовСтр)
РедКоличество=0;
КонецПроцедуры
//*****************************************************************************
РедКоличество = 0;
при использовании такой реализации ф-ции ПриОкончанииРедактированияСтроки:
//*****************************************************************************
Процедура ПриОкончанииРедактированияСтроки(НовСтр)
РедКоличество=0;
Если (Форма.ТекущаяКолонка()<>«Количество») ИЛИ (НовСтр=1) Тогда
Возврат;
КонецЕсли;
Сервис = СоздатьОбъект(«Сервис»);
Сервис.SendKeys(«{DOWN}»);
КонецПроцедуры
получим еще и переход на следующую строку по завершающему редактирование ENTER-у

