helpf.pro
Регистрация
 +18 
Распечатать

Работа с буфером обмена средствами 1С

Копировать из 1С в буфер обмена( без ВК):
Код 1C v 8.х
 ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"), "Поле_HTML_Документа_acb123", Ложь);
Окно = ЭлементыФормы.Поле_HTML_Документа_acb123.Документ.ParentWindow;
Окно.ClipboardData.SetData("Text", ТекстПисьма);
ЭлементыФормы.Удалить(ЭлементыФормы.Индекс(ЭлементыФормы.Найти("Поле_HTML_Документа_acb123")));


Вставить в 1С из буфера обмена:
Код 1C v 8.х
 ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"), "Поле_HTML_Документа_acb123", Ложь);
Окно = ЭлементыФормы.Поле_HTML_Документа_acb123.Документ.ParentWindow;
СодержимоеБуфера = Окно.ClipboardData.GetData("Text");
ЭлементыФормы.Удалить(ЭлементыФормы.Индекс(ЭлементыФормы.Найти("Поле_HTML_Документа_acb123")));
ТекстПисьма = ТекстПисьма + СодержимоеБуфера;


При определенных настройках политики безопасности, способ с ПолеHTMLДокумента НЕ работает, используйте:
Код 1C v 8.х
 
Функция ПолучитьТекстБуфераОбмена() Экспорт
#Если Клиент Тогда
Объект = Новый COMОбъект("htmlfile");
Возврат Объект.ParentWindow.ClipboardData.Getdata("Text");
#КонецЕсли
КонецФункции

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

Для 7.7:
Код 1C v 7.x
 Set objHTM = CreateObject("htmlfile");
Текст = "Помощь в 1С";
objHTM.ParentWindow.ClipboardData.Setdata("Text", Текст);
Текст = objHTM.ParentWindow.ClipboardData.GetData("text");


Используя WSH:
Код 1C v 8.х
  // через SendKeys передаем Ctrl-C и Ctrl-V    
wsh=Новый COMОбъект("WScript.Shell");
// Скопировать текст
wsh.SendKeys("^c");
// Вставить текст
wsh.SendKeys("^v");

Код 1C v 7.x
  // через SendKeys передаем Ctrl-C и Ctrl-V    
wsh=СоздатьОбъект("WScript.Shell");
// Скопировать текст
wsh.SendKeys("^c"); // или так: wsh.SendKeys("^(C)");
// Вставить текст
wsh.SendKeys("^v"); // или так: wsh.SendKeys("^(V)");

//Объект Clipboard
WshExtra = СоздатьОбъект("WshExtra.Clipboard");
// Скопировать текст
WshExtra.Copy("Запись в буфер обмена")
// Вставить текст
Текст = WshExtra.Paste();
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 107294
 +18 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C медленно работает по сети с базой на SQL Server 22
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
COM-соединение не обнаружило свободной лицензии / ключ защиты 0
Иногда при подключении к 1С возникает ошибка: COM-соединение не обнаружило свободной лицензии! COM-соединение не обнаружило ключ защиты программы! https://helpf.pro/uploads/img/_1-UsuyAg6E2P.jpg В таких случаях, иногда, может помочь следующий с
Cообщение: "Не удалось удалить чеки ККМ!" 2
Пользователь с правами Администратор ККМ проводит Закрытие кассовой смены (Z). Выходит сообщение: " Не удалось удалить чеки ККМ!" ФР печатает Z -отчет, но Отчет о рознчничных продажах не формируется. Необходимо дать роли Администратор ККМ прав
Посмотреть все результаты поиска похожих
Комментарии
nado_hto
15.07.2021 11:11Комментарий: 2
nado_hto

> Объект.ParentWindow.ClipboardData.Setdata("Text", Текст);

К сожалению 2й метод для рядового пользователя оказался не рабочим на Windows Server 2012 R2. Под Администратором - всё работает, а у пользователей Не "копируется".Так как ошибок метод не выдавал- проверял  методом считывания  Объект.ParentWindow.ClipboardData.Getdata("Text");

в случае "Администратора" ( сеанс под админом) - всё отлично работает,  а под  "Пользователи домена" - ни в какую.Колдовство с "Разрешить программный доступ к буферу обмена" в IE (11.0.96.00) - без результатно.Да и в реестре с параметром [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones ( от сюда) - тоже не помогло.( "Управление торговлей 3,1", уф.)

v0233
13.10.2010 13:37Комментарий: 1
v0233
Спасибо большое! очень понятно и классно расписано!
Могу немного внести дополнение к первому способу:
у кого windows server чтобы работал первый вариант нужно дать разрешение на доступ к буферу обмена в настройка безопасности IE.
и будет счастье! )
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.