Для копирования данных из буфера обмена в 1С
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Функция ПолучитьТекстИзБуфераОбмена() Экспорт #Если Клиент Тогда ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"), "ПолеHTMLДокумента", Ложь); Попытка Окно = ЭлементыФормы.ПолеHTMLДокумента.Документ.ParentWindow; СодержимоеБуфера = Окно.ClipboardData.GetData("Text"); Исключение СодержимоеБуфера = ""; КонецПопытки; ЭлементыФормы.Удалить(ЭлементыФормы.Индекс(ЭлементыФормы.Найти("ПолеHTMLДокумента"))); Возврат СодержимоеБуфера; #КонецЕсли КонецФункции |
Для вставки данных из 1С в буфер обмена
1 2 3 4 5 6 7 8 9 10 |
Процедура ВставитьТекстВБуферОбмена(СодержимоеВБуферОбмена) Экспорт #Если Клиент Тогда Если (ТипЗнч(СодержимоеВБуферОбмена) = Тип("Строка")) И (СокрЛП(СодержимоеВБуферОбмена) <> "") Тогда ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"), "ПолеHTMLДокумента", Ложь); Окно = ЭлементыФормы.ПолеHTMLДокумента.Документ.ParentWindow; Окно.ClipboardData.SetData("Text", СодержимоеВБуферОбмена); ЭлементыФормы.Удалить(ЭлементыФормы.Индекс(ЭлементыФормы.Найти("ПолеHTMLДокумента"))); КонецЕсли; #КонецЕсли КонецПроцедуры |
Еще вариант через COM-объект:
1 2 3 4 5 6 |
Функция ПолучитьТекстИзБуфераОбмена() Экспорт #Если Клиент Тогда Объект = Новый COMОбъект("htmlfile"); Возврат Объект.ParentWindow.ClipboardData.Getdata("Text"); #КонецЕсли КонецФункции |
1 2 3 4 5 6 7 8 |
Процедура ВставитьТекстВБуферОбмена(СодержимоеВБуферОбмена) Экспорт #Если Клиент Тогда Если (ТипЗнч(СодержимоеВБуферОбмена) = Тип("Строка")) И (СокрЛП(СодержимоеВБуферОбмена) <> "") Тогда Объект = Новый COMОбъект("htmlfile"); Объект.ParentWindow.ClipboardData.Setdata("Text", СодержимоеВБуферОбмена); КонецЕсли; #КонецЕсли КонецПроцедуры |
И последний вариант через Windows Script Host:
1 2 3 4 5 6 |
// через SendKeys передаем Ctrl-C и Ctrl-V wsh=Новый COMОбъект("WScript.Shell"); // Скопировать текст wsh.SendKeys("^c"); // Вставить текст wsh.SendKeys("^v"); |