| 
    
            
         
         | 
    
    
  | 
v7: Перенос курсора в конец строки поля ввода (sendkeys("{END}"). Почему не работает? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        jah1111    
     13.08.20 
            ✎
    22:31 
 | 
         
        Нужно, чтобы функция после каждого вводимого символа ставила курсор в конец строки (ну или после символа, еще не решил. тогда будет эмуляция не END а "стрелка вправо"). Но... не работает, курсор постоянно мигает в начале строки
 
        Функция ПриВыбореЗначения(Об="") Енд = СоздатьОбъект("Wscript.Shell"); Если Об = "" Тогда Об = Форма.АктивныйЭлемент(); КонецЕсли; Если Об="кнЙ" Тогда // ввод бувы "Й" Поле=СокрЛП(Поле)+"Й"; ПошукПоБукв(); активизировать("Поле"); енд.SendKeys("{END}"); КонецЕсли; в чем не так?  | 
|||
| 
    1
    
        Злопчинский    
     13.08.20 
            ✎
    23:05 
 | 
         
        ээээ...
 
        в поле ввода принаборе значения СТРОКА - курсор сдвигается по мере набора смволов  | 
|||
| 
    2
    
        Злопчинский    
     13.08.20 
            ✎
    23:06 
 | 
         
        сначала дождись активизации поля, а потом уже двигай в нем курсор     
         | 
|||
| 
    3
    
        jah1111    
     13.08.20 
            ✎
    23:23 
 | 
         
        а как дождаться? задержку ставить?     
         | 
|||
| 
    4
    
        jah1111    
     13.08.20 
            ✎
    23:24 
 | 
         
        (1) да, но форма для сенсора     
         | 
|||
| 
    5
    
        Злопчинский    
     14.08.20 
            ✎
    00:12 
 | 
         
        (4) xчто значит для сенсора? железной клавы нет? если виртуальная клавиатура - и что-то не получается (хотя нихера непонятно почему) - набирай нажимаемые символы в переменную в строку и показывай ее на экране без всяких полей ввода.     
         | 
|||
| 
    6
    
        Злопчинский    
     14.08.20 
            ✎
    00:14 
 | 
         
        (4) xчто значит для сенсора? железной клавы нет? если виртуальная клавиатура - и что-то не получается (хотя ничего непонятно почему) - набирай нажимаемые символы в переменную в строку и показывай ее на экране без всяких полей ввода.     
         | 
|||
| 
    7
    
        jah1111    
     14.08.20 
            ✎
    00:36 
 | 
         
        (6) Есть резон в Ваших словах. но с Полем ввода можна работать двумя способами  - и виртуальной и железной клавой (на всякий случай).     
         | 
|||
| 
    8
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    00:42 
 | 
         
        (7) И ? поведение там одинаковое - курсор всегда в конце строки после ввода     
         | 
|||
| 
    9
    
        jah1111    
     14.08.20 
            ✎
    00:53 
 | 
         
        (8) ну в моем случае курсор остается в начале строки и сендкей(енд) не помагает
 
        реализуется клава для ввода в строку поиска на тач скрин  | 
|||
| 
    10
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    01:17 
 | 
         
        (9) ты в поле ввода сам что -ле символы затаскиваешь, перехватывая нажатия кнопок ? Или что ?     
         | 
|||
| 
    11
    
        uno-group    
     14.08.20 
            ✎
    08:15 
 | 
         
        чет мне кажется что он в 1с свою виртуальную клавиатуру рисует     
         | 
|||
| 
    12
    
        HawkEye    
     14.08.20 
            ✎
    08:19 
 | 
         
        (9) код покажь ))     
         | 
|||
| 
    13
    
        Калиостро    
     14.08.20 
            ✎
    10:36 
 | 
         
        (0) А точно у тебя в коде:
 
        активизировать("Поле"); а не активизировать(Поле); ??  | 
|||
| 
    14
    
        jah1111    
     14.08.20 
            ✎
    13:01 
 | 
         
        (10) без перехвата. просто добавляю символ в поле ввода кодом Поле=СокрЛП(Поле)+"здесь сивол";     
         | 
|||
| 
    15
    
        jah1111    
     14.08.20 
            ✎
    13:03 
 | 
         
        (11) да, именно. простенькую, под полем ввода, которое явлется строкой поиска.     
         | 
|||
| 
    16
    
        jah1111    
     14.08.20 
            ✎
    13:03 
 | 
         
        (12) а код, собственно такой же:     
         | 
|||
| 
    17
    
        jah1111    
     14.08.20 
            ✎
    13:12 
 | 
         
        каждой кнопке виртуальной клав. присвоена функция ПриВыбореЗначения(Об="")
 
        Функция ПриВыбореЗначения(Об="") Енд = СоздатьОбъект("Wscript.Shell"); //подключаем сендкейс для эмуляции клавиши END Если Об = "" Тогда Об = Форма.АктивныйЭлемент(); // определяем активный элемент КонецЕсли; Если Об="кнЙ" Тогда // ввод бувы "Й" при нажатии на кнопку "кнЙ" к примеру Поле=СокрЛП(Поле)+"Й"; ПошукПоБукв(); // процедура в модуле которая выполняет поиск в справочнике после ввода каждого символа активизировать("Поле"); // после справочника возвращаемся назад в поле ввода с буквой Й енд.SendKeys("{END}"); // эмулируем нажатие END для переноса курсора в конец строки КонецЕсли;  | 
|||
| 
    18
    
        Salimbek    
     14.08.20 
            ✎
    13:58 
 | 
         
        (8) в 7-ке при активизации поля курсор в начало строки лезет и весь текст обычно выделяется
 
        (0) Скорее всего дело в том, что в этой процедуре ты активизируешь поле, но фактически оно активизируется только _после_ выхода из этой процедуры. Т.е. ты дал команду 1С-ке - "Активизировать", и сразу же отправил ей sendkeys, но 1С-ка сначала выполнила этот самый СендКейс, потом вышла из этой процедурки и только потом активизировала поле. После чего курсор убежал в начало. Если я прав, то тут проще всего сделать так: делаешь "Активизировать" и сразу же подключаешь ОбработкаОжидания на минимум, и потом, в этой уже ОбработкеОжидания, отправляешь СендКейс и отключаешь эту самую Обработку ожидания.  | 
|||
| 
    19
    
        uno-group    
     14.08.20 
            ✎
    14:21 
 | 
         
        чет как то все сложно. У меня цифровая клавиатура както так выглядит куча кнопок на них типа Цифра(1)
 
        //----------------------------------------------------------------------- Процедура Цифра(Режим); Если (Режим="+")или(Режим="-") Тогда Вычислить(); КонецЕсли; Если Режим="С" Тогда ЧислоСтр=""; Форма.Число.Заголовок(ЧислоСтр); Возврат; КонецЕсли; Если СокрЛП(ЧислоСтр)="0" Тогда ЧислоСтр=""; КонецЕсли; ЧислоСтр=ЧислоСтр+Режим; Форма.Число.Заголовок(ЧислоСтр); КонецПроцедуры //----------------------------------------------------------------------- Процедура Дел(); ЧислоСтр=Лев(ЧислоСтр,СтрДлина(ЧислоСтр)-1); Форма.Число.Заголовок(ЧислоСтр); КонецПроцедуры //----------------------------------------------------------------------- Процедура Ввод(); Вычислить(); Форма.Параметр=ЧислоСтр; Форма.Закрыть(); КонецПроцедуры  | 
|||
| 
    20
    
        uno-group    
     14.08.20 
            ✎
    14:24 
 | 
         
        А для отлова обычной клавы.
 
        //------------------------------------------------ Процедура ПриНажатииКнопкиКлавиатуры(конт, код, _а, _ш, _к) Если Конт=125 Тогда //зеленая клавиша откроем документ // Сформировать(); ВыбТребование(); ИначеЕсли Конт=126 Тогда // Красная клавиша обновим список требований Форма.Закрыть(); КонецЕсли; КонецПроцедуры //******************************************* ЗагрузитьВнешнююКомпоненту("FormEx.dll"); Раскраска=СоздатьОбъект("Сервис"); Раскраска.ВключитьРаскраскуТаблиц(); Эдди=СоздатьОбъект("ADDY.ADD");  | 
|||
| 
    21
    
        jah1111    
     14.08.20 
            ✎
    14:53 
 | 
         
        (18)ну если вы правы то просто надо SendKeys прописать в отдельной процедуре. 
 
        типо: ПроцедураКурсорЕнд () Енд = СоздатьОбъект("Wscript.Shell"); енд.SendKeys("{END}"); КонецПроцедуры Функция ПриВыбореЗначения(Об="") Если Об = "" Тогда Об = Форма.АктивныйЭлемент(); КонецЕсли; Если Об="кнЙ" Тогда // ввод бувы "Й" Поле=СокрЛП(Поле)+"Й"; ПошукПоБукв(); активизировать("Поле"); ПроцедураКурсорЕнд () КонецЕсли; тогда СендКей уж точно должен после активизации выполняться или нет?  | 
|||
| 
    22
    
        jah1111    
     14.08.20 
            ✎
    14:59 
 | 
         
        ай сори, нифига.....     
         | 
|||
| 
    23
    
        jah1111    
     14.08.20 
            ✎
    15:03 
 | 
         
        разве что прописать ПроцедураКурсорЕнд () в формуле кнопки после ПриВыбореЗначения()     
         | 
|||
| 
    24
    
        Salimbek    
     14.08.20 
            ✎
    15:23 
 | 
         
        (21) Конечно же нет. Ничего этого не сработает. По простой причине - есть Код, для выполнения, он вот и будет выполняться, с процедурами, вызовами и прочим. А вот когда он закончит выполняться, тогда и отработает "Сервисный" код. И вам надо вызвать свою команду _после_ этого "сервисного" кода.
 
        Для этого и пишу вам - ОбработкаОжидания.  | 
|||
| 
    25
    
        Salimbek    
     14.08.20 
            ✎
    15:24 
 | 
         
        (23) Это тоже не поможет     
         | 
|||
| 
    26
    
        jah1111    
     14.08.20 
            ✎
    15:26 
 | 
         
        (25) почему?
 
        я понимаю что Вы пишете, но куда эту обработкаожидания вставить мне невдомек  | 
|||
| 
    27
    
        Salimbek    
     14.08.20 
            ✎
    15:38 
 | 
         
        (26) В твоем коде последним пишешь:
 
        Форма.ОбработкаОжидания("ПроцедураКурсорЕнд",1); в этой самой ПроцедураКурсорЕнд - отправляешь свой СендКейс и отключаешь (чтобы оно каждую секунду не слало нажатие), Форма.ОбработкаОжидания("ПроцедураКурсорЕнд",0);  | 
|||
| 
    28
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    16:48 
 | 
         
        В ложном закрытии формы двигай свой курсор     
         | 
|||
| 
    29
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    16:49 
 | 
         
        И..не помню, в какой то вк был вообще метод управления курсором, вспоминать лень     
         | 
|||
| 
    30
    
        jah1111    
     14.08.20 
            ✎
    19:06 
 | 
         
        (29) вспомните - отпишитесь     
         | 
|||
| 
    31
    
        jah1111    
     14.08.20 
            ✎
    19:06 
 | 
         
        (27) не пашет....     
         | 
|||
| 
    32
    
        jah1111    
     14.08.20 
            ✎
    19:28 
 | 
         
        (28) в двух словах, если можно...     
         | 
|||
| 
    33
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    19:33 
 | 
        
     | 
|||
| 
    34
    
        jah1111    
     14.08.20 
            ✎
    19:46 
 | 
         
        (33) Работает!!!! но слетели все примочки фрмекс из формы, шрифты.... это наверно потому что у меня при закрытии глСервис.УдалитьШрифт     
         | 
|||
| 
    35
    
        Злопчинский    
     14.08.20 
            ✎
    19:50 
 | 
         
        (34) При закрытии - да, шрифт удалить
 
        Если у тебя ложное закрытие - то зачем ты удаляешь шрифт?  | 
|||
| 
    36
    
        Злопчинский    
     14.08.20 
            ✎
    19:51 
 | 
         
        капец сколько ТС нагородил...     
         | 
|||
| 
    37
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    20:10 
 | 
         
        (34) Возврат поставь в код     
         | 
|||
| 
    38
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    20:11 
 | 
         
        Если ПустоеЗначение(Вася)=0 Тогда
 
        Вася=""; активизировать("Поле"); ПроцедураКурсорЕнд () СтатусВозврата(0); Возврат; КонецЕсли;  | 
|||
| 
    39
    
        jah1111    
     14.08.20 
            ✎
    20:30 
 | 
         
        (38) спасибо большое человеческое! 
 
        и теперь абсолютно дилетантский вопрос... Ежели Поле=СокрЛП(Поле)+"Й"; дает нам "Й" то как правильно написать "пробел"?  | 
|||
| 
    40
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    20:53 
 | 
         
        (39) Поле = Поле+" ";     
         | 
|||
| 
    41
    
        MWWRuza    
     гуру 
    14.08.20 
            ✎
    20:59 
 | 
         
        Ээээ... Или я вопрос не понял? А так:
 
        Поле=СокрЛП(Поле)+" "; чем не устраивает? PS Ну, в принципе - понятно чем... При вводе следующего символа таким-же методом, СокрЛП уберет пробел... Ну, тогда запоминайте пробел(точнее его наличие и количество в конце строки), в отдельной переменной, и при вводе следующего символа добавляйте перед ним пробелы в количестве, равном этой переменной. После ввода очередного символа, отличного от пробела, переменную обнуляйте... Немного через жо... Но, что делать.  | 
|||
| 
    42
    
        acht    
     14.08.20 
            ✎
    21:05 
 | 
         
        (39) Начать вспоминать, зачем ты написал СокрЛП, не вспомнить и стереть его нахрен.     
         | 
|||
| 
    43
    
        jah1111    
     14.08.20 
            ✎
    21:10 
 | 
         
        (42) сначала надо чтоб он ввелся, експерементально доказано что он нифига не появляется в строке     
         | 
|||
| 
    44
    
        jah1111    
     14.08.20 
            ✎
    21:11 
 | 
         
        (40) записано правильно, пробел в поле ввода не появляется...     
         | 
|||
| 
    45
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    21:38 
 | 
         
        (44) храни строку в переменной, потом выводи в своё поле на форме     
         | 
|||
| 
    46
    
        Ёпрст    
     гуру 
    14.08.20 
            ✎
    21:38 
 | 
         
        Тогда не надо быдет сокрЛП пихать в код     
         | 
|||
| 
    47
    
        Злопчинский    
     14.08.20 
            ✎
    21:45 
 | 
         
        я так и не понял нахрена эти все извращения...
 
        1. обычное поле ввода. 2. топчут клавой железной или виртуальной 3. ПриНажатииКлавиши (или ПриОтжатии...) - скулайтом получаем нужное множество 4. нужное множество из п.3 показываем на форме В ТЗ. (ТЗ - недоступная, на форме всего один активный элемент - ПОЛЕ ВВОДА, листание ТЗ - перехватом кнопок курсора, хоуменд пейджап/даун) 5. пользюк быстрее из ТЗ выберет если надо или продолжит по пп.2-5  | 
|||
| 
    48
    
        jah1111    
     14.08.20 
            ✎
    22:05 
 | 
||||
| 
    49
    
        Злопчинский    
     14.08.20 
            ✎
    22:14 
 | 
         
        (48) угу, примерно так.
 
        правдв непонятно почему при наборе "гра" в таблице видно "апельсин"  | 
|||
| 
    50
    
        jah1111    
     14.08.20 
            ✎
    22:20 
 | 
         
        (49) видно апельсин, но фокус на "Гранат"     
         | 
|||
| 
    51
    
        Злопчинский    
     14.08.20 
            ✎
    22:21 
 | 
         
        (50) а зачем апельчин если пользюк ищет чтото с "гра"..?     
         | 
|||
| 
    52
    
        Злопчинский    
     14.08.20 
            ✎
    22:22 
 | 
         
        (50) на таких фейсах принцип простой - не показывать и не давать пользюку лишнего. они И БЕЗ ЭТОГО КОСЯЧАТ будь здоров. а если им еще и помогать в этом...     
         | 
|||
| 
    53
    
        jah1111    
     14.08.20 
            ✎
    22:25 
 | 
         
        (51) ищет и находит.  я не делал выборку, подбор идет в стандартной таблице справочника, точно так как обычной клавой жмякать по елементам     
         | 
|||
| 
    54
    
        jah1111    
     14.08.20 
            ✎
    22:28 
 | 
         
        (52) в общем вы правы, а я - ленив...  и второй месяц как одинЭсю :) надо писать процедуру выборки из справочника всего что с "гра"     
         | 
|||
| 
    55
    
        Ёпрст    
     гуру 
    15.08.20 
            ✎
    00:00 
 | 
         
        (48) 
 
        Повыкидывай везде СокрЛП, тип реквизита на форме - строка неогр длины, на кнопку пробела повесь Симв(160) потом в коде подменяй на Симв(32) через СтрЗаменить при поиске и усё. Курсорчик будет ка надо  | 
|||
| 
    56
    
        Ёпрст    
     гуру 
    15.08.20 
            ✎
    00:04 
 | 
         
        Ну и проще надо код писать..
 
        В формулах кнопок пишешь типа 
     | 
|||
| 
    57
    
        Ёпрст    
     гуру 
    15.08.20 
            ✎
    00:04 
 | 
         
        ну и там, можешь хоть CapsLock через переменную, и т.д..     
         | 
|||
| 
    58
    
        Ёпрст    
     гуру 
    15.08.20 
            ✎
    00:05 
 | 
         
        Но..если надо красиво, чтоб еще и положение курсора отслеживалось, то тут только активикс на форме, штатный контрол этого не умеет     
         | 
|||
| 
    59
    
        Ёпрст    
     гуру 
    15.08.20 
            ✎
    00:05 
 | 
         
        какой нить текстбокс или ричтекст на форме     
         | 
|||
| 
    60
    
        Злопчинский    
     15.08.20 
            ✎
    00:11 
 | 
         
        (59) ага, к таврии прилепить сидушки от мерса и мигалку от полиции.     
         | 
|||
| 
    61
    
        jah1111    
     16.08.20 
            ✎
    15:14 
 | 
         
        Хлопцы, я так понимаю в 7.7 размеры формы програмно не меняются?     
         | 
|||
| 
    62
    
        Salimbek    
     16.08.20 
            ✎
    19:58 
 | 
         
        (61) Меняются через FormEX.     
         | 
|||
| 
    63
    
        jah1111    
     26.09.20 
            ✎
    08:51 
 | 
         
        почему  такой код работает
 
        ИначеЕсли Об="кнЙ" Тогда // Й Поле=СокрЛП(Поле)+"Й"; а такой нет: ИначеЕсли Об="кнЙ" Тогда // Й Поле=Поле+"Й"; напомню: Поле - поле поиска, пишется простенькая виртуальная клава для поиска в справочниках. СокрЛП стирает пробелы между словами, а иногда в запросе нужен пробел  | 
|||
| 
    64
    
        jah1111    
     26.09.20 
            ✎
    09:27 
 | 
         
        (56) Процедура Пробел()
 
        Поле = Поле+Симв(160); КонецПроцедуры не знаю. не взлетает. как этот пробел реализовать?  | 
|||
| 
    65
    
        trdm    
     26.09.20 
            ✎
    12:09 
 | 
         
        А FormEx не умет SendMessage или PostMessage?     
         | 
|||
| 
    66
    
        jah1111    
     26.09.20 
            ✎
    16:05 
 | 
         
        (65) впервые слышу и документации не нашел. 
 
        просто нужен пробел в рамках такого кода. или кода предложеного Йпрст  | 
|||
| 
    67
    
        jah1111    
     26.09.20 
            ✎
    16:08 
 | 
         
        А вообще, кто может подсказать простенький алгоритм написания (или код) цифровой виртуальной клавы? как у калькулятора. Нужна такая клава для удобного ввода  в поля типа "число", особенно если точность числа>0.     
         | 
|||
| 
    68
    
        jah1111    
     27.09.20 
            ✎
    22:21 
 | 
||||
| 
    69
    
        Злопчинский    
     27.09.20 
            ✎
    22:40 
 | 
||||
| 
    70
    
        Злопчинский    
     27.09.20 
            ✎
    22:42 
 | 
         
        (67) в поле для ввода числа с педалькой нажим Ф4     
         | 
|||
| 
    71
    
        Злопчинский    
     27.09.20 
            ✎
    23:00 
 | 
         
        (68) это что?
 
        поле на форме примет значение после отработки кода. если ты к полю длиной 30 символов прибавишь еще символ - поле останется всего 30 символов, 31 пойдет в пешее эротическое. вроде уже писали выше сто раз всё... ?  | 
|||
| 
    72
    
        Злопчинский    
     27.09.20 
            ✎
    23:01 
 | 
         
        (70) если хоочешь чтобы встроенный калбкулятор было большой - формексом на поле ввода с педалькой назначь большой шрифт     
         | 
|||
| 
    73
    
        alyuev    
     28.09.20 
            ✎
    12:20 
 | 
         
        (66) Версия FormEx 147. Объект "Окна". 
 
        ОтправитьКоманду(<?>) Синтаксис: ОтправитьКоманду(<wParam>,<lParam>) Назначение: Метод отсылает главному окну сообщение WM_COMMAND с заданными параметрами через функцию SendMessage(). Параметры: <wParam>, <lParam> - Параметры отправляемого окну сообщения. ПослатьКоманду(<?>) Синтаксис: ПослатьКоманду(<wParam>,<lParam>) Назначение: Метод отсылает главному окну сообщение WM_COMMAND с заданными параметрами через функцию PostMessage(). Параметры: <wParam>, <lParam> - Параметры отправляемого окну сообщения.  | 
|||
| 
    74
    
        jah1111    
     28.09.20 
            ✎
    12:54 
 | 
         
        (69) ага, типа так. Хочу свою обработку с цифровой вирт клавой. но чтобы умела в поле ввода типа "число" цифры после запятой и бекспейс"
 
        Вариант "по педальке" не очень нравится, потому что там надо нажать сначала "ок", тогда значение попадает в поле ввода, а потом еще раз ок, чтоб сохранить и закрыть обработку. хочу чтобы такая обработка работала в определенном порядке, типа: заголовок "введите брутто" - вводим "450" - ок // брутто присваивается знач 450 и сразу: заголовок "введите кол. ящ." - вводим 43 - ок // кол. ящиков = 43 и т.д. когда последний параметр заполнен, последние ок закрывает форму обработки.  | 
|||
| 
    75
    
        jah1111    
     28.09.20 
            ✎
    12:57 
 | 
         
        (71) может тысячу раз я тупой но как надо написать то? меня и так все этой самописной клаве устраивает, но иногда очень нужен пробел, а я не знаю как его реализовать в рамках моего алгоритма клавы.     
         | 
|||
| 
    76
    
        Злопчинский    
     28.09.20 
            ✎
    13:43 
 | 
         
        пробел и пробел, чего его реализовывать?
 
        РеквизитПолеВводаСтрокаНаФорме = СокрЛП(РеквизитПолеВводаСтрокаНаФорме)+ЧтоТо; ЧтоТо - символ(ы), которые добавляешь в поле. Если надо именно пробел добавить то добавляешь Симв(160), потом для обработки подменяешь на пробел. или добавляешь спробел с постфиксными символами если сразу понятно  | 
|||
| 
    77
    
        trdm    
     28.09.20 
            ✎
    14:02 
 | 
         
        (73) Ну так то главному окну. А можно было и активному послать.     
         | 
|||
| 
    78
    
        trdm    
     28.09.20 
            ✎
    14:02 
 | 
         
        вернее нужно.     
         | 
|||
| 
    79
    
        jah1111    
     28.09.20 
            ✎
    14:09 
 | 
         
        (76) спасибо
 
        ребят, кому не жалко поделится цифровой клавой, напишите. моя, с простым добавление символом в строку не очень подходит. я так мыслю, нужен какойто математический алгоритм ввода в числовое поле  | 
|||
| 
    80
    
        jah1111    
     28.09.20 
            ✎
    18:37 
 | 
         
        покумекав, соорудил такое:
 
        Функция ПриВыбореЗначения(Об="") Если Об = "" Тогда Об = Форма.АктивныйЭлемент(); КонецЕсли; //Клавиатура Если (СтрДлина(Об)=3)и(Найти("0123456789",Сред(Об,3,1))>0) Тогда // (0..9) КолЦифр = СтрДлина(Формат(Число(Поле), "ЧГ=")); Если Поле < 0 Тогда КолЦифр = КолЦифр -1; КонецЕсли; Если Поле = 0 тогда Поле=Поле+Сред(Об,3,1); ИначеЕсли Поле > 0 тогда Поле = Поле*10+ Сред(Об,3,1); Активизировать("Поле"); КонецЕсли; ИначеЕсли Об="кнЗабой" Тогда // BackSpace Поле = Число(Лев(Поле, СтрДлина(Поле)-1)); КонецЕсли; КонецФункции поделитесь мыслями, как замутить ввод после запятой (дробное число) и ввод отрицательных чисел.  | 
|||
| 
    81
    
        Злопчинский    
     28.09.20 
            ✎
    22:17 
 | 
         
        ввод отрицательных - клавиша смены знака.
 
        ввод после запятой - определяешь что введена запятая, вводишь число символов после запятой - проблема в чем?  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |