Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перевод курсора
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
kuriban
Привет. Помогите плз с вопросом. В документе есть числовое поле. Нужно сделать так, чтобы после того, как в него вводятся данные и нажимается Enter курсор не покидал это поле. Решение: установить для всех реквизитов "пропускать при вводе" не подходит. Работает, если выводить "Предупреждение". Но тоже не подходитsad.gif
Что делал - при открытии документа метод "Активизировать" работает и курсор устанавливается на нужное поле. Пытался вызвать этот же метод после нажатия Enter пишет, что нельзя использовать этот метод в этой процедуре/функции.
По нажатию Enter происходит вызов процедуры из гл модуля. Пытался там в конце использовать "Активизировать" - та же ошибка. Подскажите
deskor
Диалог - Настройка порядка обхода, ставите этот реквизит в самый конец
Alex729
Цитата(kuriban @ 10.03.11, 15:40) необходимо зарегистрироваться для просмотра ссылки
Привет. Помогите плз с вопросом. В документе есть числовое поле. Нужно сделать так, чтобы после того, как в него вводятся данные и нажимается Enter курсор не покидал это поле. Решение: установить для всех реквизитов "пропускать при вводе" не подходит. Работает, если выводить "Предупреждение". Но тоже не подходитsad.gif
Что делал - при открытии документа метод "Активизировать" работает и курсор устанавливается на нужное поле. Пытался вызвать этот же метод после нажатия Enter пишет, что нельзя использовать этот метод в этой процедуре/функции.
По нажатию Enter происходит вызов процедуры из гл модуля. Пытался там в конце использовать "Активизировать" - та же ошибка. Подскажите


Можно с помощью внешней компонеты Formex.dll (предваритльно скопировать в каталог базы данных). Другими словами эмулируем нажатие на клавиатуре комбинации клавиш SHIFT + TAB (попробуйте вручную - эфект тот же).
1. В глобальный модуль в процедуру ПриНачалеРаботыСистемы() добавить:
    Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"FormEx.dll")=0 Тогда
        Состояние("Не удалось обнаружить компоненту!");
    Иначе
        Сервис = СоздатьОбъект("Сервис");
    КонецЕсли;


2. Добавить в формулу в свойства данного ПОЛЯ "ПриВВодеЗначенияВЯчейку()"

3. В модуль формы документа добавить процедуру:
Процедура ПриВВодеЗначенияВЯчейку()
    Сервис = СоздатьОбъект("Сервис");
   Сервис.SendKeys("{SHIFT}+{TAB}");
КонецПроцедуры
Ardi
Предупреждение(<Текст_сообщения>,<Таймаут>)

Тоесть делаем так, и сообщение висит 1 сек. и прячется.
Цитата
Предупреждение(Товар.Наименование,1);
dmiter
Запустить Активизировать через ОбработкуОжидания
mister-x
Метод "Активизировать" - баг 1С 7.7. ІМХО - працює через опу, а саме працює тільки в напередвизначених системних процедурах: ПриОткрытии, Отбор, ОбработкаПодбора, ПриЗакрытии...
Я реалізував роботу цього метода для USB-сканера штрихкодів, на полі шрихкоду висіла процедура в якій був зокрема слідуючий код:
Процедура ПриИзмШтрихКод()
  ...
  флЗакрыть = 0;
  ...

Процеудра ПриЗакрытии()
  Если флЗакрыть = 0 Тогда
    СтатусВозврата(0);
    ...
    Активизировать(ШтрихКод);
    ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.