Имя: Пароль:
1C
 
Скопировать текст в буфер обмена
0 Nic1
 
08.04.09
10:41
Как можно скопировать произвольный текст в 1С в буфер обмена (например, по нажатии какой-то кнопки)? Из встроенного языка? Есть какие-нибудь команды?
1 Ёпрст
 
гуру
08.04.09
10:42
запросто.
2 Sadovnikov
 
08.04.09
10:42
(0) 1С++
БуферОбмена :: Установить / Set
Синтаксис: void Установить(Строка Текст)

Параметры:

Текст - тип: Строка. Новый текст для буфера обмена.
Описание: Сохраняет текст в системного буфере обмена.
3 Подводный Таракан
 
08.04.09
10:42
ctrl+c не устраивает?
4 Ёпрст
 
гуру
08.04.09
10:43
ie=СоздатьОбъект("internetexplorer.application");
ie.navigate("about:blank");
Док=ie.document;
Док.ParentWindow.ClipboardData.clearData();
Док.ParentWindow.ClipboardData.SetData("Text","В буфер!!!");
Сообщить(Док.parentWindow.ClipboardData.getData("Text"));


для 2003
КомандаСистемы("echo "+Стр+"|Clip");

©smaharbA
5 Nic1
 
09.04.09
10:06
sadovnikov> БуферОбмена :: Установить / Set
Синтаксис: void Установить(Строка Текст)

- Хм, а пример рабочий можно? Тут какой-то класс надо добавлять? Или прямо так и писать - "Устнановить ("копируем")"?

Епрст> ie=СоздатьОбъект("internetexplorer.application");
ie.navigate("about:blank");
Док=ie.document;
Док.ParentWindow.ClipboardData.clearData();
Док.ParentWindow.ClipboardData.SetData("Text","В буфер!!!");
Сообщить(Док.parentWindow.ClipboardData.getData("Text"));

- Это выдает постоянно пустую строку в сообщение...

> для 2003 КомандаСистемы("echo "+Стр+"|Clip");

- Копируется первый раз, нормально вставляется... Но второй раз уже не копирует, а оставляет то что было последний раз в буфере. Может тут надо еще буфер как-то очищать?
6 Nic1
 
09.04.09
10:24
Срабатывает вот в такой последовательности:

   Стр="";

   Стр=СокрЛП(ГлПоказатьПолнНаимен(ТекущийЭлемент()));
   
   ie=СоздатьОбъект("internetexplorer.application");
   ie.navigate("about:blank");
   Док=ie.document;
   Док.ParentWindow.ClipboardData.clearData();
   
   КомандаСистемы("echo "+Стр+"|Clip");

Но иногда глючит, например, вместо название товара выводит какое-то системное сообщение ("Режим вывода команд на экран (ECHO) включен")....
7 Sadovnikov
 
09.04.09
13:04
(5)
оБуфер = СоздатьОбъект("БуферОбмена");
оБуфер.Установить("Пример");
Сообщить(оБуфер.Получить());
8 mikecool
 
09.04.09
13:06
SendKey("+C")
Основная теорема систематики: Новые системы плодят новые проблемы.