|
v7: Позиционирование курсора | ☑ | ||
---|---|---|---|---|
0
Invzor
04.03.15
✎
10:39
|
Друзья приветствую!
есть такая проблемка... Есть форма справочника... на форме есть поле для ввода информации. Ставим курсор в это поле.. считываем штрихкод и выполняется обработка. После выполнения обработки курсор уходит в другое поле. Как можно сделать, что бы курсор опять там же стал? Что бы его не тыкать опять в это поле? Я так понимаю надо как-то задать положение курсора после выполнения чтения штрихкода... Можете подсказать? |
|||
1
Ёпрст
04.03.15
✎
10:40
|
есть несколько способов
|
|||
2
Ёпрст
04.03.15
✎
10:40
|
http://my1c-archive.narod.ru/knowhow/chk_val.html
вот один из них. |
|||
3
Invzor
04.03.15
✎
10:51
|
Процедура ЧитатьШтрих()
Сообщить("Читаю штрихкод..."); СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); СпрДог = создатьОбъект("Справочник.Договоры"); СпрШтрих = СоздатьОбъект("Справочник.Идентификатор"); Если СпрШтрих.НайтиПоКоду(Число(СоСканераШтрих)) =1 тогда Сообщить(СпрШтрих.Код); Если СоСканераШтрих >= 1 тогда СпрКонтр.ВыбратьЭлементы(); // Сообщить(СпрКонтр.Наименование); Пока СпрКонтр.ПолучитьЭлемент() = 1 Цикл // Сообщить(СпрКонтр.Наименование); конецЦикла; Если СпрКонтр.ЭтоГруппа() = 0 Тогда СпрДог.ИспользоватьВладельца(СпрКонтр); СпрДог.ВыбратьЭлементы(); // Сообщить(СпрДОг.ИдентификаторШтриха); Пока СпрДог.ПолучитьЭлемент() = 1 цикл Если СпрДог.ИдентификаторШтриха.код = СпрШтрих.Код тогда // сообщить(СпрДог.Код); сообщить(СпрКонтр.Наименование); СпрДог.Статус = Перечисление.СтатусДоговора.Действует; СпрДог.Записать(); конецЕсли; КонецЦИкла; КонецЕсли; КонецЦикла; СоСканераШтрих = ""; Сообщить("обработал"); Иначе Сообщить("Введен нулевой ШТРИХКОД"); конецЕсли; Иначе Сообщить("Такого штрихКода нет в базе!"); конецЕсли; КонецПроцедуры |
|||
4
Invzor
04.03.15
✎
10:52
|
Данная процедура стоит в выполнении при нажатии курсора на ПОЛЕ ДЛЯ ВВОДА "ЧитатьСосканера"
|
|||
5
Invzor
04.03.15
✎
10:53
|
вот после нее нужно, что бы курсор возвращался в это же самое поле...
|
|||
6
Invzor
04.03.15
✎
11:07
|
(2) вот тут немного не понял... это я так понимаю если модально вызывается форма?...
|
|||
7
Ёпрст
04.03.15
✎
11:09
|
(6) нет.
читай еще раз. |
|||
8
Ёпрст
04.03.15
✎
11:10
|
фокус остается на реквизите диалога, если была вызвана из него любая модальная форма.
|
|||
9
Ёпрст
04.03.15
✎
11:11
|
в "любой" модальной форме в при открытии статусвозврата в 0 и привет - она даже не откроется, а фокус останется где и был
|
|||
10
Invzor
04.03.15
✎
11:19
|
ща отпишусь
|
|||
11
Invzor
04.03.15
✎
11:27
|
все равно перескакивает на следующую позицию после выполнения
|
|||
12
Ёпрст
04.03.15
✎
11:29
|
Больше кода
|
|||
13
Invzor
04.03.15
✎
11:41
|
Пробывал в процедуру при открытии добавлял:
СтатусВозврата(0) и по другому пробовал: Если форма.параметр="НеИзменятьФокусВвода" тогда СтатусВозврата(0); возврат; КонецЕсли; В первом случае вообще не открывает форму. |
|||
14
Ёпрст
04.03.15
✎
11:46
|
Не вижу ОткрытьФормуМодально в твоём коде в (3) в конце процедуры.
|
|||
15
Invzor
04.03.15
✎
13:11
|
(14) так я ж что и говорю... что открывать ее модально не надо... она открывается пользователем... пользователь открыл... поставил курсор в поле... тукгул в сканер бумажкой... штрих считался.. а вот после этого надо что бы курсор устанавливался в то же поле... а он перескакивает на следующую позицию... это можно как-то сделать?
|
|||
16
Ёпрст
04.03.15
✎
13:30
|
(15) понятно, рано вам еще этим заниматься.
Мот того, то , что в (2) следует еще раз перечитать, на ночь ? |
|||
17
Invzor
04.03.15
✎
13:42
|
А какой еще способ есть? (1)
|
|||
18
Ёпрст
04.03.15
✎
13:45
|
(17) активизировать..
но, тебе тоже не подойдет, раз ты (2) не осилил |
|||
19
Ёпрст
04.03.15
✎
13:45
|
можно еще формексом вернуть фокус
|
|||
20
Провинциальный 1сник
04.03.15
✎
13:46
|
Активизировать(<?>,);
Синтаксис: Активизировать(<ИмяРеквизита>,<Режим>) Назначение: Активизировать для редактирования поле диалога. Параметры: <ИмяРеквизита> - необязательный параметр. Строка с именем поля диалога, которое нужно активизировать. Пустое имя элемента диалога используется для активизации всей формы. <Режим> - необязательный параметр. Имеет смысл только для строк списков. Число: 1 - войти в режим редактирования, 0 - не входить. Значение по умолчанию - 1. Замечание: Метод Активизировать может быть вызван из другого (внешнего) модуля, если в нем известен контекст формы, в которой нужно активизировать элемент диалога. Доступ к методу возможен только в контексте Модуля формы. |
|||
21
Invzor
04.03.15
✎
13:53
|
(20) в данной формуле не может быть вызвана эта процедура (функция) ... это по поводу Активизировать...
|
|||
22
Ёпрст
04.03.15
✎
13:53
|
||||
23
Ёпрст
04.03.15
✎
13:54
|
хотя, тоже не освоишь..
|
|||
24
ДенисЧ
04.03.15
✎
13:54
|
(23) Слушай... Ты что, перебрался на бисерную фабрику?
|
|||
25
Builder
04.03.15
✎
13:55
|
Не проще поставить нормальный драйвер АТОЛ 6 версии для клавиатурного сканера штрихкода и генерировать событие?
|
|||
26
Invzor
04.03.15
✎
13:58
|
(22) вот это думаю уже осилю))
|
|||
27
Ёпрст
04.03.15
✎
14:01
|
(24) а похоже, да ?
Да не, просто мётлы все зарезервированы.. |
|||
28
ДенисЧ
04.03.15
✎
14:03
|
(27) Ага. А ещё по совместительству апельсины раздаёшь...
|
|||
29
Злопчинский
04.03.15
✎
19:48
|
(25) нафейхоа...? чтобы если вдруг все рухнуло - маяться установокой куч драйверов. через внешнее событие НАМНОГО проще это да.
|
|||
30
Злопчинский
04.03.15
✎
19:50
|
а так все тривиально: на форме - ПРИНИМАЮЩЕЙ ШТРИХКОД - (ведь задача формы принять штрихкод и отработать его прием, не так ли?) - ставишь всем активным элементам (тз, поля ввода - правда нхаера другие поля ввода в форме принимающей ШК непонятно) - доступность в 0 (ноль). доступным оставляешь только поле ввода для приема штрихкода. и все.
|
|||
31
Invzor
05.03.15
✎
09:03
|
(30) ща попробую и так сделать... интеренсо прокатит или нетъ
|
|||
32
Invzor
05.03.15
✎
11:01
|
(30) другие поля не принимают штрих.. а предназначены для другого... поиск по адресу к примеру... а поля вообще другие не причем... там без разницы... хоть поле будет стоять... хоть кнопка.. он перейдет на следующую позицию...
|
|||
33
Злопчинский
05.03.15
✎
15:35
|
(32) убери нафиг кнопки
Все по горячим клавишам Поле ввода штрихкода можно использовать ВНИМАНИЕ какполе ввода Что мешает в поле ввода ШК вбить адрес и при обработке ввода понять по структуре введенной ины что вбит не шк а адрес и искать пименно адрес И даже если похож адрес на шк то поискать по шк если не найден то искать адрес и тд Я как то с одним полем ввода умудряюсь обрабатывать разные штрихкода ручной ввод артикула а также количеств и все прокатывает Опять же если так трудно сделай по горче клавише переключение режима ввода штрихкод или адрес Опять же ничто не мешает на форме всякие кнопки имет сделать их недоступными а жмак по ним отлавливать по позиции мыши через формекс Короче возможносте вагон и тележка |
|||
34
Злопчинский
05.03.15
✎
15:37
|
В этом смысле штатная семерка то есть клюшки плюс формекс плюс одинэсплюсплсю по возможностям обработки нажатия клавиш и мыши богаче штатной восьмерки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |