Как перехватить Ctrl+C/V в окне 1С?

1. starik-2005 3165 17.01.25 11:31 Сейчас в теме
Всем привет!

Не сказать, что без этого вот прям не могу жить, но хотелось бы.

Суть: есть табличный документ, в него хочется вставить что-то. И вроде бы нет проблем - юзай контрл ц/в, и ни в чем себе не отказывай. Но хочется вставить не только значение в ячейку этого документа, но и область. И не хотелось бы при вставке области выходить за границы, и хотелось бы при вставке области обработать вставленное, и еще хотелось бы, чтобы только значения вставлялись, а не все и сразу.

Есть какие-нить приличные мысли на этот счет?

Что удалось найти самому:
1. Есть ВК с перехватом событий от клавиатуры. Все в основном заточены на ШК, т.е. перехватывают поток данных, а не конкретные сканкоды (в данном случае мне нужно перезватывать только Ctrl+C/V).
2. Есть ВК для ванессы, кто-то упомянул, что там есть перехват клавиш. В документации к компоненте я этого не нашел - нашел только эмуляцию их нажатия.
Больше ничего не нашел, другие мысли в голову не пришли.

Да, можно строго-настрого наказать пользователю не вставлять области, но ты пойди и накажти строго-настрого, а я на тебя погляжу )))
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 17.01.25 11:35 Сейчас в теме
3. starik-2005 3165 17.01.25 11:37 Сейчас в теме
(2)
ПриВставкеИзБуфераОбмена(Значение, СтандартнаяОбработка) ^

Данное событие есть у каждой управляемой формы + глобальное в модуле приложения

Событие срабатывает, если пользователь, находясь на форме, делает вставку из буфера (Ctrl+V) картинки или файлов. К сожалению только такие данные приводят событие в действие
Увы и ах...
4. nomad_irk 81 17.01.25 11:43 Сейчас в теме
(3) Это только обработчик события срабатывает, а сами данные таки вставляются.
Возможно, в новых версиях платформы, обработчик будет и на другие MIME-типы срабатывать
5. starik-2005 3165 17.01.25 11:44 Сейчас в теме
(4) А мне как раз надо, чтобы данные не вставлялись, а чтобы я сам их вставил, пир том только туда, куда можно, а туда, куда нельзя, не вставил )
6. nomad_irk 81 17.01.25 11:45 Сейчас в теме
(5) выход один: просить об этом 1С и ждать реализации, остальное, ИМХО, - от лукавого :)
7. starik-2005 3165 17.01.25 11:49 Сейчас в теме
(6) Ну может кто готовую ВК порекомендует. Сейчас в интернетах все сложнее искать стало, ибо инфы дофига, при том старая инфа и не отображается, а есть мысль, что кто-то когда-то все уже нарисовал.

Вооще, если перепилить функционал на ХТМЛ+джаваскрипт, то там как раз проблем с перезватом клавиш нет. Цепляешься к кейдаун и делай, что хошь. Странно, что 1С-неги держат своих разрабов за дебилов, которым такое доверять нельзя...
8. Sashares 33 17.01.25 12:11 Сейчас в теме
(7) А свою кнопку добавить не рассматривается?
В контекстное меню таб.дока, например.
9. starik-2005 3165 17.01.25 12:20 Сейчас в теме
(8) Свою - не проблема, просто юзеры жмут свой Контр+Ц/В, и их (комбинации) не погасить. Ну можно ридонли сделать, тогда при вводе данных придется окно открывать при обработке расшифровки, а тогда первая кнопка теряется, что тоже плохо.

ЗЫ: для юзеров 1С тут стала типа экселем. Да, подход не супер, но и не самый плохой. Исторически устоявшийся. Простым решением было бы именно перехватить эти два хоткея. 1С это делать не дает, она просто вызывает "при изменении области" по факту вставки, а там что угодно быть может. В итоге код, который будет "бороться с дураком", выльется в отдельный продукт по своему объему....
10. -AI- 17.01.25 14:12 Сейчас в теме
(9)
эти два хоткея

а я со времёнт Корвета, по привычке, чаще использую Ctrl/Shift-Ins
11. starik-2005 3165 17.01.25 15:45 Сейчас в теме
(10)
со времёнт Корвета
Я таким сочетанием пользовался во вмемена паскаля на 486-х компах. Сейчас уже как-то давненько переехал того не замечая на С/V.

Но, тем не менее, есть ли у уважаемых разрабов 1С какие-то припасенные тузы в рукаве? А то я уже разобрался с кодом на С++, но надежда не угасает.

ЗЫ: Код, кстати, весьма прост.
ЗЫЗЫ: Да, да, все на 99% скопипащено )))
Прикрепленные файлы:
12. user-z99999 78 17.01.25 16:03 Сейчас в теме
(1) Из описания понятно,
что нужен клавиатурный перехват (действий Копировать и Вставить) - отдельная программа (autoit).
И из неё кидать в 1с, куда придумайте, регистр и т.д.
13. starik-2005 3165 17.01.25 16:19 Сейчас в теме
(12)
И из неё кидать в 1с, куда придумайте, регистр и т.д.
Минусы - придется установить этот (или аналогичный) софт на всех компах юзеров, которые работают с формой. И как-то триггерить, что форма открыта, что она активна, да и в этой форме перехват нужен только для поля ТД, что делает задачу еще несколько сложнее, ибо понять, что нажали на поле ТД и установился режим редактирования я могу, а вот понять, что я покинул это поле и пытаюсь вставить куда-то еще - не особо.

Скорее всего придется сделать через ВК, ну или переехать на JS, что уже началось, но может затянуться на неопределенное время.
14. user5300 1077 17.01.25 16:53 Сейчас в теме
Может поможет: Внешняя обработка перехват введенных данных с клавиатуры...
На обычных формах (х86)
Прикрепленные файлы:
KeyboardHook.epf
15. starik-2005 3165 17.01.25 16:58 Сейчас в теме
(14)
Внешняя обработка
Погляжу.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот