Как результат:
Функция ВзятьИзБуфера(ТипБуфера="",ПерекодироватьвWin1251=0,ВывестиИменаБуферов=0)
//Стандартные форматы для ТипБуфера можно посмотреть здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/ms649013(v=vs.85).aspx
//Другие (именованные) форматы можно подсмотреть в программе http://freeclipboardviewer.com/
Перем оЕстьВБуфере,Рез,BinData;
WinAPI = СоздатьОбъект("DynamicWrapperX");
WinAPI.Register("USER32.DLL", "OpenClipboard" , "i=l", "r=l");
WinAPI.Register("USER32.DLL", "GetClipboardData", "i=l", "r=l");
WinAPI.Register("USER32.DLL", "CloseClipboard" , "r=l");
WinAPI.Register("KERNEL32.DLL", "GlobalLock" , "i=l", "r=l");
WinAPI.Register("KERNEL32.DLL", "GlobalUnlock" , "i=l", "r=l");
WinAPI.Register("KERNEL32.DLL", "GlobalSize" , "i=l", "r=l");
WinAPI.Register("USER32.DLL", "RegisterClipboardFormatA", "i=s" , "r=l");
WinAPI.Register("USER32.DLL", "EnumClipboardFormats" , "i=l" , "r=l");
WinAPI.Register("USER32.DLL", "GetClipboardFormatName" , "i=lpl", "r=l");
WinAPI.OpenClipboard(0);
НомБуфера= WinAPI.EnumClipboardFormats(0);
СтрБуф = WinAPI.Space(256);
pStr = WinAPI.StrPtr(СтрБуф);
ФорматЕстьВБуфере=0;
Пока НомБуфера<>0 Цикл
НомБуфера=WinAPI.EnumClipboardFormats(НомБуфера);
Рез = WinAPI.GetClipboardFormatName(НомБуфера,pStr,256);
Если Рез=0 Тогда Продолжить; КонецЕсли;
ИмяЧтоЕстьВБуфере=WinAPI.StrGet(pStr,"s");
Если ВывестиИменаБуферов=1 Тогда
Сообщить(ИмяЧтоЕстьВБуфере);
Иначе
Если ТипБуфера=ИмяЧтоЕстьВБуфере Тогда
ФорматЕстьВБуфере=1;Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ПустаяСтрока(ТипБуфера)=1 Тогда wFormat = 1;
ИначеЕсли ТипЗначенияСтр(ТипБуфера)="Число" Тогда wFormat = ТипБуфера;
Иначе wFormat = WinAPI.RegisterClipboardFormatA(ТипБуфера);
КонецЕсли;
Дескриптор = WinAPI.GetClipboardData(wFormat);
lSize = WinAPI.GlobalSize(Дескриптор);
Если Дескриптор <> 0 Тогда
Указатель = WinAPI.GlobalLock(Дескриптор);
Результат = WinAPI.StrGet(Указатель,"s");
WinAPI.GlobalUnlock(Дескриптор);
Иначе
Результат = "";
КонецЕсли;
WinAPI.CloseClipboard();
Если ПерекодироватьвWin1251=1 Тогда
BinData = СоздатьОбъект("BinaryData");
BinData.Кодировка = 0;
BinData.ЗаписатьСтроку(Результат,1);
Результат = ""; Стр = "";
BinData.Кодировка = 3;
BinData.Перейти(0,0);
Пока BinData.ПрочитатьСтроку(Стр,0) = 1 Цикл
Результат=Результат+Стр+РазделительСтрок;
КонецЦикла;
BinData.Close();
КонецЕсли;
Возврат Результат;
КонецФункции