|
Символы с цифрами в числовое поле. Как предотвратить? | ☑ | ||
---|---|---|---|---|
0
Flutt1
22.04.20
✎
03:14
|
Здравствуйте. Наш кассир считал номер дисконтной карты (AD9281Z0282HKA999) в поле количество, это не заметил и пробил чек на миллион. Это из-за того, что, если вставить в числовое поле (можно даже из буфера обмена) строку, содержащую символы и цифры , то платформа отбросит символы, а цифры оставит. Подскажите, пожалуйста, можно как-нибудь перехватить это преобразование, чтоб сделать пользователю предупреждение? События "ПриНачалеРедактирования", "ПередНачаломИзменения" срабатывают уже после того, как произошло преобразование.
|
|||
1
Flutt1
22.04.20
✎
03:16
|
Единственное, что приходит на ум, - это просто проверять, не ввели ли число больше, скажем 1000, и тогда задавать вопрос. Но это не совсем корректно. Может, лучше решение кто знает?
|
|||
2
Garykom
гуру
22.04.20
✎
03:21
|
ТО (сканер ШК, ридер карт и т.д.) использовать через драйвер (и внешнее событие) а не как клавиатуру.
|
|||
3
PR
22.04.20
✎
03:24
|
(1) У тебя один вариант, сделать реквизит формы типа строка, а не число
Тогда если вводится "мама", то ты сможешь понять, что это не число Но вообще задача такая себе, странная слегка Вообще я считал, что считывание карты — это событие, а не по типу сканера ШК, когда по сути подключение в разрыв клавы |
|||
4
PR
22.04.20
✎
03:31
|
(3) Хотя нет, подумал, что как-то же решается вариант со сканером ШК, есть адекватный вариант
Префикс и постфикс тебе помогут Идея такая же как и со сканером ШК У сканера ШК при сканировании программируется префикс (например F7) и постфикс (Enter) В итоге когда тело на кассе что-то сканирует сканером, то это не просто нажатие на клаве символов ШК, а нажатие F7, потом символов ШК, потом Enter В итоге на форме на F7 повешен обработчик открытия формы ввода ШК в виде простого ввода строки, которая закрывается при нажатии Enter Делай также для ридера, если в нем возможно настроить префикс и постфикс и будет тебе счастье |
|||
5
PR
22.04.20
✎
03:33
|
(2) Так-то это геморрой еще тот, клава гораздо проще, никаких дров не нужно
|
|||
6
Flutt1
22.04.20
✎
03:39
|
(3) Поменять тип реквизита Количества формы РМК кассира - это значит внести правки в десяток процедур и функций, где потом это количество используется. Обновляться будет потом очень больно:(
|
|||
7
Flutt1
22.04.20
✎
03:40
|
(4) Спасибо большое, попробую)
|
|||
8
PR
22.04.20
✎
03:43
|
(6) Не тип реквизита, а сделать элемент формы, который потом обрабатывать
Но вообще идея в любом случае дерьмовенькая, я бы так не стал делать конечно же |
|||
9
Garykom
гуру
22.04.20
✎
07:59
|
(4)
>У сканера ШК при сканировании программируется префикс (например F7) и постфикс (Enter) >на форме на F7 повешен обработчик открытия формы ввода ШК в виде простого ввода строки, которая закрывается при нажатии Enter Проблема с этим с какой то версии платформы 1С. Между F7 и ШК нет паузы. Форма ввода строки еще не открылась - шк попал не туд |
|||
10
strange2007
22.04.20
✎
08:26
|
(0) Просто личный опыт, а вдруг пригодится:
Данные сканера ШК перенаправлялись драйвером в процедуру, а не в активное поле. С процедуры уже контролировал номерок и писал, куда надо. Да, драйвер периодически отваливался и данные писались в активное окно, но это уже мелочи. В другой организации просто применили метод морковки. В зад. Как только не туда пикнула, сразу нависает морковка. В третьей организации F7 заменил на супермегаформу, которая данные ШК колбасит как ненормальная и в конце уже переносит в основной документ, раскладывая всё по полочкам. Все варианты живут прекрасно много лет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |