Имя: Пароль:
1C
 
Работа с буфером обмена
0 PR третий
 
06.07.15
11:04
1. Есть такое, вот пример 0% (0)
2. Такого сейчас в принципе нет 0% (0)
3. Скоро 1С компоненту под Документооборот перепишет 0% (0)
4. Нахрен не нужна эта асинхронность 0% (0)
5. Свое мнение 0% (0)
Всего мнений: 0

Искал искал, так и не нашел, как работать с буфером обмена в восьмерке. Ну то есть нужно в html вставить картинку из буфера обмена в тонком клиенте 8.3 по Ctrl + V или хотя бы по нажатию кнопки.
При следующих условиях:
— Нужно получать из буфера обмена картинку.
— Требуется асинхронный режим работы, если это работа через компоненту, то есть http://v8.1c.ru/o7/201412async/index.htm, то есть компонента из Документооборота не подойдет.
— Хотелось бы, но не принципиально, чтобы работало в веб-клиенте. С этой точки зрения нашел прикольную статейку http://habrahabr.ru/sandbox/53689/, в http://pasteboard.co/ демонстрация работы.
— Хотелось бы, но не принципиально, чтобы работало без регистрации компоненты, то есть без компоненты вообще.
— Хотелось бы, но не принципиально, чтобы кроме получения картинки можно было ловить событие вставки, то есть не только Ctrl + V, но и Shift + Insert и контекстное меню мыши и команду меню.
1 Сниф
 
06.07.15
11:36
(0) >Хотелось бы, но не принципиально, чтобы работало в веб-клиенте
я знаю вариант реализации, где есть примерно то, что вам нужно, включая контекстное меню мыши + передача картинки в 1С. Но есть ограничения:
- только веб-клиент, только под FireFox и только при установленном плагине iMacros.
2 Fish
 
06.07.15
11:42
(0) А почему документооборот не пойдёт? Емнип, в последних релизах уже всё на асинхронных вызовах сделано.
3 Stim
 
06.07.15
11:47
на вебе у меня не взлетело. а в тонком - без проблем
4 Armando
 
06.07.15
11:52
5 Stim
 
06.07.15
11:54
хтмл=Новый COMОбъект("htmlfile");    
    СтрокаБуфера = хтмл.parentWindow.clipboardData.getData("text");
6 Живой Ископаемый
 
06.07.15
11:57
Функция ПолучитьТекстБуфераОбмена() Экспорт
#Если Клиент Тогда
    Объект = Новый COMОбъект("htmlfile");
    Возврат Объект.ParentWindow.ClipboardData.Getdata("Text");
#КонецЕсли
КонецФункции

Функция УстановитьТекстВБуферОбмена(Текст) Экспорт
#Если Клиент Тогда
    Объект = Новый COMОбъект("htmlfile");
    Объект.ParentWindow.ClipboardData.Setdata("Text", Текст);
    Возврат Текст;
#КонецЕсли
КонецФункции

оптимизировать
ну и не только на клиенте на самом деле
7 SoulPower
 
06.07.15
12:07
Не знаю, что там внутри, но в ДО, картинки из буфера вставлять можно.
http://i69.fastpic.ru/big/2015/0706/b1/7aab20c6bbe0c05473d42a0b2b261ab1.png
8 PR третий
 
06.07.15
12:22
(2) Гон
9 PR третий
 
06.07.15
12:23
(1) Вообще не в кассу. Главное - тонкий клиент 1С.
10 PR третий
 
06.07.15
12:23
(3) Что взлетело?
11 PR третий
 
06.07.15
12:24
(5) Я даже не сомневался, что кто-нибудь это напишет.
12 PR третий
 
06.07.15
12:25
(6) И ты тоже молодец, да
13 PR третий
 
06.07.15
12:38
(7) Ну вот от тебя-то не ждал.
В Документообороте разрешены синхронные вызовы.
Спроси там у своих, когда они перепишут компоненту под асинхронные методы?
14 PR третий
 
06.07.15
12:38
(4) Хм. Еще бы как-нить качнуть с ИС
15 SoulPower
 
06.07.15
12:43
(13) Я тебе показал, что в ДО можно вставлять картинки из буфера.
И я не понял, где тут вообще нужна асинхронность?
При выполнении длительных операций нужна, а тут, нажал "вставить из буфера", и через полсекунды выполнение закончилось.
16 SoulPower
 
06.07.15
12:45
+ (15) Или типа у тебя большущий файл и он в форму у тебя грузится долго?
17 PR третий
 
06.07.15
12:48
(15) Спасибо, конечно, но я же вроде как написал в (0) "Требуется асинхронный режим работы, если это работа через компоненту, то есть компонента из Документооборота не подойдет.". Что как бэ предполагает, что я Документооборот попробовал :))
Асинхронность там нужна при вызове метода обработки, помещающего картинку из буфера в файл и возвращающего путь к картинке из буфера.
18 SoulPower
 
06.07.15
12:55
(17) Сколько времени у тебя занимает эта операция?
19 PR третий
 
06.07.15
13:12
(18) Да мало, очень мало. Не в этом дело.
Включи в ДО запрет асинхронных операций или разрешение с предупреждением, перепиши три процедуры общего модуля под асинхронные вызовы и посмотри, что вызов метода самой компоненты ругается.
20 PR третий
 
06.07.15
18:53
(4) Вай вай вай, работает :))
Можешь выйти на скайп/аську/телефон/почту?