как сохранить в Буфер обмена

17. Капитан.Кук 20 16.11.15 17:54 Сейчас в теме
В управляемых формах помогло:
ОбъектКопирования = Новый COMОбъект("htmlfile");
ОбъектКопирования.ParentWindow.ClipboardData.SetData("Text", <нужный текст>);
Sam13; mikl79; Istur; taasha25; Mi4man; +5 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
18. andy_fox@mail.ru 14.07.09 18:36 Сейчас в теме
Привет АЛЛ.

Как программно сохранить какие-то данные в Буфер обмена Windows, чтоб их можно было потом при желании вставлять куда-то использовав стандартные способы ВИНДЫ.
19. Душелов 4018 14.07.09 18:37 Сейчас в теме
А поиском воспользоваться?
20. andy_fox@mail.ru 14.07.09 18:43 Сейчас в теме
не нашёл.... может не умею искать конечно, или не подфартило.
21. Душелов 4018 14.07.09 18:50 Сейчас в теме
Форум - Поиск - Ключевые слова: буфер обмена - 2 ссылка сверху.
22. andy_fox@mail.ru 14.07.09 19:09 Сейчас в теме
Сорри, но это не совсем то - помоему....
мне нужно, скажем передать в буфер обмена результат расчёта автоматически-программно, а потом его при желании использовать... по тем ссылкам я так понял обратный процесс....

Есть ли в 1С команда или какой-то другой метод - "сохранить в буфер обмена" - что-то аналогичное нажатию CRTL+C...
23. Душелов 4018 14.07.09 19:15 Сейчас в теме
А в чем проблема, вместо getData использовать setData?
У 1С таких методов нет.
24. andy_fox@mail.ru 14.07.09 19:32 Сейчас в теме
ОК - будем искать .... сенкс.
25. sound 535 14.07.09 20:57 Сейчас в теме
(4) попробуй сейчас ради прикола какая ссылка будет :)
26. Tatitutu 3855 15.07.09 09:42 Сейчас в теме
можно средствами 1с 7.7 копировать в буфер обмена - через час выложу обработку на 7.7
27. Душелов 4018 15.07.09 09:43 Сейчас в теме
(9) Средствами 1С - никак. Или ВК, или активиксы.
28. Tatitutu 3855 15.07.09 10:30 Сейчас в теме
(10) немного ошибся - согласен,с помощью WScript.Shell
29. Душелов 4018 15.07.09 11:27 Сейчас в теме
30. seermak 665 15.07.09 14:33 Сейчас в теме
с помощью WScript.Shell - как-то глючно (через раз) работает
31. Tatitutu 3855 15.07.09 14:36 Сейчас в теме
(13) почему ты так решил - смотря как использовать и что копировать
если текст то на ура - 100 из 100
32. alexk-is 6534 15.07.09 18:20 Сейчас в теме
33. Alex_Sun 24.07.09 10:19 Сейчас в теме
У 1с есть в последних типовых конфах пример помещения в буффер обмена.
Открываем обработку Универсальный обмен данными хмл.
форма "ФормаРедактораТекстовогоДокумента"

// Копирует в буфер обмена переданный текст
// Параметры:
// Текст - Строка - для копирования в буфер обмена
Процедура СкопироватьТекстВБуферОбмена(Текст)

Окно = ЭлементыФормы.ПолеHTMLДокументаДляБуфераОбмена.Документ.ParentWindow;
Окно.ClipboardData.SetData("Text", Текст);

КонецПроцедуры
34. v3rter 11.12.18 14:14 Сейчас в теме
Для тех, у кого под RDP нельзя отключить конфигурацию усиленной безопасности Internet Explorer, есть ещё один способ:

	Тд = Новый ТекстовыйДокумент;
	Тд.УстановитьТекст(Текст); // Текст = что_копируем_в_буфер
	Тд.Записать(ПутьВременногоФайла,КодировкаТекста.OEM,Символы.ВК + Символы.ПС);
	КомОбъект = Новый COMОбъект("WScript.Shell"); КомОбъект.Run("%comspec% /c type """+ПутьВременногоФайла+""" | clip", 0,0); КомОбъект = Неопределено;

Можно и без временного файла вместо type используя echo,
КомОбъект.Run("%comspec% /c echo "+Текст +" | clip", 0,0);

но придется озаботиться "экранированием" некоторых символов ( <, >, |, &, %, ", ^ и т.п. ) путём добавления слева символа ^ (подробнее об этом см. https://rsdn.org/article/winshell/batanyca.xml )

К сожалению, слишком быстрое удаление временного файла с текстом может привести к тому, что команда системы к этому времени не успеет отработать, и буфер обмена останется пустым.
Sam13; eufes; sinusx; Evg-Lylyk; Serg2000mr; piton66; +6 Ответить
35. v3rter 11.12.18 15:35 Сейчас в теме
Впрочем, с удалением временного файла тоже решил:
КомОбъект.Run("%comspec% /c type """+ПутьВременногоФайла+""" | clip & del """+ПутьВременногоФайла+"""", 0,0);
sinusx; Evg-Lylyk; piton66; +3 Ответить
36. AgentD22 07.08.19 10:44 Сейчас в теме
А получить текст из буфера обмена:

Объект = Новый COMОбъект("htmlfile");
ТекстИзБуфера = Объект.ParentWindow.ClipboardData.Getdata("Text");
37. aster-x 28.04.23 11:35 Сейчас в теме
(33) Окно = ЭлементыФормы.ПолеHTMLДокументаДляБуфераОбмена.Документ.ParentWindow; - не работает
38. Serg2000mr 320 02.09.23 01:08 Сейчас в теме
(37) Это вариант для обычных форм.
39. platonov.e 158 23.01.24 09:07 Сейчас в теме
Оставьте свое сообщение

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