|   |   | 
| 
 | 1c 8.3 и буфер обмена | ☑ | ||
|---|---|---|---|---|
| 0
    
        Alex unde 08.11.16✎ 14:23 | 
        Привет. Задача следующая:
 Обрезать символы при вставке из буфера обмена :) При копировании данных из Excel методом Ctrl+C (ячейки) всегда скопированная строка содержит в конце символ переноса строки. Хочу при активации окна 1С обрабатывать буфер обмена и удалять конечный символ переноса строки и/или таб/пробел. Варианты которые пришли в голову: -Обработать форму поиска - не докопался до нее -Обработать Ctrl+V - без каких-то dll-ок думаю не получится (по крайней мере, у меня не получилось и обработать, и не перебить саму вставку из буфера в нужное место) -Обработать событие активации самой 1-ски. Может есть решение у кого-то или идеи - подскажите :) Спасибо! | |||
| 1
    
        LevelUP 08.11.16✎ 14:29 | 
        (0) может проще обрабатывать уже приОкончРедактирования в поле 1С?     | |||
| 2
    
        Alex unde 08.11.16✎ 14:32 | 
        (1) Для примера, может быть поиск по номеру документа в форме списка (в одной из over дофига).
 То есть в Excel скопировали номер - в 1С нажали Ctrl+F и Ctrl+V. То есть Никакого "При окончании редактирования" думаю не получится сделать.. | |||
| 3
    
        Alex unde 08.11.16✎ 14:33 | 
        (0) согласен даже dll-ки навешать, но только грамотные, потому как сам их писать не шарю :(
 Если есть проверенные - скиньте, пожалуйста, буду очень благодарен! | |||
| 4
    
        DrShad 08.11.16✎ 14:33 | ||||
| 5
    
        Alex unde 08.11.16✎ 14:36 | 
        (4) это понятно, вставить то его куда?)     | |||
| 6
    
        LevelUP 08.11.16✎ 14:36 | 
        (1) ну если в поиске то да, не получится. Можно простенькое приложение на любом известном вам языке, пусть себе висит в автозагрузке и режет.     | |||
| 7
    
        TormozIT гуру 08.11.16✎ 14:39 | 
        Autohotkey поможет.
 Простенький скрипт, написанный на Autohotkey. Следит за изменениями буфера обмена и собирает текст, о чём выводит TrayTip. При нажатии Win+Ctrl+V и Win+Shift+Insert записывает в буфер обмена всё, что насобирал, «отправляет» активному приложению Ctrl+V или Shift+Insert в соответствии с тем, что было нажато, и выходит. #Persistent SendMode InputThenPlay ;#NoTrayIcon #SingleInstance force #MaxThreadsPerHotkey 1 ;Mouse required to hook WinKey #Hotstring NoMouse #KeyHistory 0 ;Script Performance #NoEnv SetBatchLines, -1 ListLines Off ;SetFormat, IntegerFast, Hex paste=+{Ins} ClipboardType0=empty ClipboardType1=text ClipboardType2=non-text ClipboardCaptureOn = 1 ClipboardsCaptured = 0 ;ClipAcc = Exit #^v:: paste=^v #+Ins:: ClipboardCaptureOn = 0 Clipboard := ClipAcc Send, %paste% TrayTip, Paste, Capture buffer cleared ExitApp OnClipboardChange: ; MsgBox clipboard:`n`n%clipboard% If ( A_EventInfo == 1 and ClipboardCaptureOn) { Critical 50 If ClipboardsCaptured ClipAcc = %ClipAcc%`n%clipboard% Else ClipAcc = %clipboard% ClipboardsCaptured++ Critical Off } TrayTip, Clipboard changed, % "ClipboardsCaptured: " . ClipboardsCaptured . "`nType:" . ClipboardType%A_EventInfo% . (A_EventInfo==1 ? "`nContents:`n " . clipboard : "") , 1, 1 ; ToolTip % "" ClipboardsCaptured . ": Clipboard changed`nType: " . ClipboardType%A_EventInfo% . "`nContents added: " . clipboard, ; SetTimer, RemoveToolTip, 750 return RemoveToolTip: SetTimer, RemoveToolTip, Off ToolTip return | |||
| 8
    
        Alex unde 08.11.16✎ 15:10 | 
        (7) Спасибо.
 Но я бы еще попросил, если есть идеи как без установки левого софта сделать??? максимум длл готов поставить( | |||
| 9
    
        TormozIT гуру 08.11.16✎ 15:19 | 
        (8) Это невозможно при текущих возможностях платформы и известных мне планируемых.     | |||
| 10
    
        Alex unde 08.11.16✎ 15:52 | 
        Больше нет идеи? Думаю оптимально было бы перехватить активацию окна 1С.
 Пожалуйста!:( | |||
| 11
    
        MaxS 08.11.16✎ 16:18 | 
        Попытка
 КОбъект = Новый COMОбъект("htmlfile"); ДанныеБуфера = КОбъект.ParentWindow.ClipboardData.Getdata("Text"); Исключение ДанныеБуфера = ""; КонецПопытки; | |||
| 12
    
        Alex unde 08.11.16✎ 16:20 | 
        (11) Куда это вклеить?     | |||
| 13
    
        MaxS 08.11.16✎ 16:48 | 
        (12) Это идея как в 1С получить буфер обмена. А куда вклеить - нужно думать. ))     | |||
| 14
    
        Alex unde 08.11.16✎ 16:51 | 
        (13) буфер обработать не проблема, куча инфы по этому поводу. Проблема в инициации события обработки буфера     | |||
| 15
    
        TormozIT гуру 08.11.16✎ 18:14 | 
        (14) Не мучайся. Кроме (7) врядли что то сделаешь малыми затратами.     | |||
| 16
    
        Alex unde 08.11.16✎ 18:17 | 
        (15) это прискорбно :(     | |||
| 17
    
        LevelUP 08.11.16✎ 19:35 | 
        (16) может обработчик ожидания с кодом по изменению строки в буфере. Только конфу тогда снимать с замка.     | |||
| 18
    
        romix 08.11.16✎ 20:35 | 
        Имхо нужно просить 1С чтобы отрезали конечный перевод строки при поиске по номеру, коду и так далее.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |