Имя: Пароль:
1C
1C 7.7
v7: Событие при выходе из поля ввода (1С 7.7)
0 zelenprog
 
01.02.24
14:24
Добрый день!

Есть в 1С 7.7 какое-нибудь событие при выходе из поля ввода после редактирования?
Нужно проверить введенное значение.
1 mishaPH
 
01.02.24
14:24
(0) что значит при выходе из поля? поле редактировали?
2 mishaPH
 
01.02.24
14:27
если чтото введи и не нажали энтер а перескочили мышкой или табом то нет. только если формэкс как-то задействовать
3 Chai Nic
 
01.02.24
14:29
(2) Вроде как классический лайфхак можно применить, кинуть невидимую надпись с формулой, в которой собственно и проверять что изменилось
4 mishaPH
 
01.02.24
14:35
(3) ну так то да. на форму функцию которая будет дергать и в ТЗ запоминать тек отслеживаемые значения и если изменено анализировать.
5 Волшебник
 
01.02.24
14:37
Надо запретить семёрку, чтобы не портить зелёных программистов дурацкими лайфхаками
6 zelenprog
 
01.02.24
14:49
(1),(2) >> что значит при выходе из поля?

Курсор находится в поле редактирования.
Пользователь либо что-то вводит на клавиатуре, либо ничего не делает.
А затем пользователь нажимает либо
7 zelenprog
 
01.02.24
14:50
... Enter, либо мышкой, либо Tab - неважно что.
Но в результате этого действия курсор выходит из поля ввода, что означает, что ввод значения завершен.
8 zelenprog
 
01.02.24
14:51
Надо отловить это событие "окончания" ввода.
9 zelenprog
 
01.02.24
14:52
(2) А с помощью Formex это как делается?
10 zelenprog
 
01.02.24
14:54
(3) >> кинуть невидимую надпись с формулой, в которой собственно и проверять что изменилось

А с чем сравнивать значение в поле ввода?
Получается, это значение сначала надо запомнить при входе в поле?
11 MWWRuza
 
гуру
01.02.24
14:56
Сделайте на АкивеИксах из VBA. Там это можно сделать.
У меня так "живой" поиск сделан, и "сокращалка" длинных наименований, прилетающих из ЕГАИС.
Вот так это в конфинураторе выглядит:





А вот так в пользовательском режиме:





А вот так работает(видеоролик): https://cloud.mail.ru/public/TnxZ/Aq3SGXTCt
12 MWWRuza
 
гуру
01.02.24
15:02
А вот "живой поиск", видео:
https://cloud.mail.ru/public/t142/X4fP5YcWz
13 MWWRuza
 
гуру
01.02.24
15:06
(0) Нужно проверить введенное значение.

тут можно даже не выходить из поля, а проверять его сразу, при вводе каждого символа, без нажатия ввод.
14 Djelf
 
01.02.24
15:07
(0) Только мониторить АктивныйЭлемент, АЛьФ не делал события "ПередСменойАктивногоЭлемента" и "ПриСменеАктивногоЭлемента", но оно было бы хорошо но зачем?
Есть же вкладка Формула где обычно висят События типа ПриСменеКонтрагента и т.п.
15 Волшебник
 
01.02.24
15:16
(12) Нет, так мы семёрку не убьём. Прекратите писать на ней такие шедевры
16 MWWRuza
 
гуру
01.02.24
15:19
(15) А у меня и нет такой цели. Пусть живет и здравствует :-)
Умрет постепенно сама, когда время придет...
17 zelenprog
 
01.02.24
15:40
(14) >> Есть же вкладка Формула где обычно висят События типа ПриСменеКонтрагента и т.п.

Да, это работает!
Формула в поле ввода срабатывает при выходе из поля и только если в поле были сделаны изменения.
Похоже, это именно то что нужно. Спасибо.
18 ЯнСмит
 
01.02.24
17:44
(14) ну надо же, оказывается есть еще те, кто только осваивает азы 7.7 =))
19 Злопчинский
 
01.02.24
16:55
капец... мир открытий чудных...
20 mishaPH
 
01.02.24
19:59
(10) конечно. при открытии формы пробегаешь по нужным реквизитам и запоминаешь, далее при обновлении формы проверяешь не изменилось ли. по идее тормозить не должно
21 Волшебник
 
01.02.24
20:02
(16) А как же осиновый кол в сердце и гвоздь в гробик? ;)
22 Злопчинский
 
01.02.24
20:24
(21) вы не путайте зомби-клюшки со снеговиком-вампиром! ;-)
23 Волшебник
 
01.02.24
20:34
(22) Ладно, проехали...
24 Builder
 
01.02.24
23:00
(12) А совсем без ВК похожий поиск сделать? У меня сделано :)
25 Злопчинский
 
02.02.24
02:13
(24) основной кунштюк видимо это сделать перехват нажатий клавиш без ВК?  Как это сделать красово без вк - хз... Через тз с буквами?
26 Builder
 
02.02.24
09:31
(25) Нет, сделать такой запрос по частям наименований. Я вроде как-то давно выкладывал сюда этот код.
27 АгентБезопасной Нацио
 
02.02.24
09:46
(24) а смысл? Усложнить себе жизнь? Кроме спортивного интереса - лично я смысла не вижу.
28 Chai Nic
 
02.02.24
09:51
Основная проблема в "красивом отборе", что пока не вышел из элемента - значение его переменной не меняется, то есть просто взять строку после нажатия любой клавиши не получится.
Нужно по сути собственными силами собирать результирующую строку из нажатых клавиш, что при использовании ещё мыши и клавиш курсора, а также BackSpace и Delete делает задачу весьма не тривиальной.
29 MWWRuza
 
гуру
02.02.24
10:27
(24)(26) Ну, да, сам поиск именно по частям наименования в любом порядке у меня на SQLLite сделан. Можно было-бы конечно и без ВК это сделать, но, не уверен, что это отрабатывало бы с приемлемой скоростью...
Но, к теме сабжа, это как-то мало относится. Тут именно интересен перехват нажатий клавиш и обработка этого, без нажатия ввода или покидания этого поля(изменения фокуса).
Я специально выложил не только "поиск", но и "сокращалку" - редактор наименований. Там никакого поиска нет, но работа со строками без ввода, в куче полей организована. Это именно как в (28) описано работает. Не решено у меня там только копи/паст с этими полями, не делал, как-то не очень нужно было... Хотя, если поднапрячься, можно и это решить.
30 Злопчинский
 
02.02.24
21:35
(26) что значит по частям наименований? Пример плиз
31 MarySue
 
02.02.24
22:56
(29) Мастер, поделись плиз секретом, как это реализовано?
Что значит "на АкивеИксах из VBA" ?
Кинь пожалуйста ссылку или кусок кода, очень интересно, как такое можно сделать.
32 Злопчинский
 
03.02.24
07:42
(29) тут было бы интересно сделать может быть более универсально, типа в любом списке жмём ф7, с передачей контекста открывается обработка-окошко для ввода, вводим буковки - обновляется фор а контекста, по контексту анализируем что жто и строим соответствующий запрос...
33 Злопчинский
 
03.02.24
07:46
... И даже в этой же обработке-окошае показываем первые 20 найденых и при выборе одной из найденых уже позиционируется в контексте с закрытием обработаи-оаошка... Типа так както
34 MWWRuza
 
гуру
03.02.24
12:11
(31) Что значит "на АкивеИксах из VBA"
А то и значит, что реально там не поля ввода, а кнопки, которые в процедурах модуля подменяются на поля ввода от MS Офиса(из "ВижелБейсикаДляАпликаций(VBA)"), которые умеют то, что не умеют контролы от 1С.

(31) Кинь пожалуйста ссылку или кусок кода
Тут это обсуждалось: Глюк Формекс? Или я чего-то не понял...&page=1
И в месаге 214 в той теме, я выкладывад рабочую "демку", со всем набором нужных ДЛЛ и прочего... Для того, что-бы разобраться, как это работает и внедрить себе - там инфы более чем достаточно. Если что-то не поймете, пишите, подскажу.

PS MS Офиса на компе может и не быть - есть компонента, которую можно зарегить отдельно, или установить РанТайм того-же Акцеса, он распространяется бесплатно. Просто у моих у многих вместо офиса от MS стоит ОпенОфис, и все равно это все работает :-)
35 MWWRuza
 
гуру
03.02.24
12:08
(32)(33) Можно конечно... Вопрос - а надо-ли??? Где это можно применить? Поиск номенклатуры? Безусловно! Ну, тут и так работает, для этого и сделано, во всех формах списка этого справочника. А еще где? Ну... Можно допустить, что у кого-то контрагентов так много, что надо их таким способом искать... Все?
Больше даже предположить не могу, для остальных справочников хватает и штатных средств, в частности стандартный "ПоискПоПодстроке". А в контрагентов можно добавить по тому-же принципу, как в номенклатуру, без претензий на универсальность, это проще и функциональнее, чем "универсальная птица гусь, которая сами знаете, что делает :-) ".
36 Djelf
 
03.02.24
14:40
(35) Почему нельзя, можно, будет даже прикольно, создаем like список по 3м буквам (тут даже поиск по fts можно включить /*если база кэша не локальная. но можно и локально. если не 100500 позиций*/), это будет турбо поиск).
Мне кажется что разработчики 1С в 8.3 вообще не понимает как fts работает, это не должно так работать.
Подсветки тэгов в 1с++ и ТП нет, бяда, бяда, а то бы сделал бы круче и проще.
37 Chai Nic
 
03.02.24
17:51
(36) FTS (ППД) имеет принципиальный недостаток - он обновляется несинхронно с изменением данных, и вновь измененные или обновленные данные могут оказаться "ненаходимыми" до следующего момента обновления индекса. Поэтому то, что его прикрутили в типовых восьмерочных решениях к оперативной работе с данными - ошибка.
38 MarySue
 
04.02.24
01:08
(34) благодарю
39 Злопчинский
 
04.02.24
01:33
(34) "А не работает - потому, что форма в модальном режиме открывается. Ну, так надо по концепции конфигурации. Не могу я ее открывать не модально."
- Ёпрст (да пребудет с ним сила) выкладывал, когда можно немодальным окном эмулировать модальное
40 MWWRuza
 
гуру
04.02.24
13:44
(39) Это ты отку-да то старое вытащил. Так, как сейчас сделано - на АктивИксах, работает и в модальных окнах и в не модальных.
Но в любом случае, интересно, если кинешь ссылочку на то, что Ёпрст выкладвал, буду благодарен, может еще когда-то где-то пригодится :-)

PS Хотя, я в принципе предпологаю, как такое с помощью ФормЕкса сделать, там можно много-чего сделать при желании, но, все равно интересна его "готовая реализация".
41 Злопчинский
 
04.02.24
14:07
(39) это из старой ветки пост пониже 214-го