|   |   | 
| 
 | Символы с цифрами в числовое поле. Как предотвратить? | ☑ | ||
|---|---|---|---|---|
| 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 заменил на супермегаформу, которая данные ШК колбасит как ненормальная и в конце уже переносит в основной документ, раскладывая всё по полочкам. Все варианты живут прекрасно много лет. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |