Простая внешняя компонента для системы 1С:Предприятие 7.7 на Delphi-5 с исходниками (Получить текст из буфера обмена (Clipboard)

27.12.08

Разработка - Разработка внешних компонент

Внешняя компонента для системы 1С:Предприятие 7.7

(c) Venger Alex, Odessa, 2008

Last Update: 26.06.2008

Файл: AddIn_V7MyClipboard.dll

Среда: Delphi-5

Содержит одну функцию:
//----------------------------------------------------
Синтаксис:

Русский синоним функции: ПолучитьТекстИзБуфераОбмена(ОчиститьБуфер)
Английский синоним функции: GetTextFromClipboard(ClearClipboard)


Описание:

Если в Clipboard текст, то вернет этот текст,
если ничего в Clipboard нет или не текст, то
вернет пустую строку.
Если в принимаемый параметр передать (1) - то,
если в буфере текст и его удалось получить,
очистит буфер, если передать (0) - то оставит
буфер как есть, т.е. очищать не будет.
//----------------------------------------------------

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
1Cv77_V7MyClipboardBK.zip
.1230376448 614,09Kb
156
156 Скачать (1 SM) Купить за 1 850 руб.
Пример использования:
//----------------------------------------------------
Процедура гл8СообщитьБуфер() Экспорт
	Перем БуферОбмена, Стр;
	ЗагрузитьВнешнююКомпоненту("AddIn_V7MyClipboard.dll");
	БуферОбмена = СоздатьОбъект("AddIn.AddIn_V7MyClipboard");
	Стр=БуферОбмена.ПолучитьТекстИзБуфераОбмена(0);
	Сообщить(Стр);
КонецПроцедуры	// гл8СообщитьБуфер
//----------------------------------------------------


При написании использовалась функция для Delphi
предоставленная by Sergey Popov, Usinsk, Komi:
//----------------------------------------------------
Uses
 ... 
Clipbrd;
function GetFromClipboardToList(Buf : TStrings; ClearAfter : boolean) : boolean;
{Взять текстовые данные из Clipboard}
var
  MyHandle: THandle;
  TextPtr: PChar;
  MyString: string;
  begin
  Result:=FALSE;
  if Buf<>NIL then begin
     Buf.Clear;
     if Clipboard.HasFormat(CF_TEXT) then begin
        ClipBoard.Open;
        try
          MyHandle := Clipboard.GetAsHandle(CF_TEXT);
          TextPtr := GlobalLock(MyHandle);
          Buf.SetText(TextPtr);
          GlobalUnlock(MyHandle);
          if ClearAfter then ClipBoard.Clear;
          if Buf.Count>0 then begin
             Result:=TRUE;
          end;
        finally
          Clipboard.Close;
        end;
     end;
  end;
end;
//----------------------------------------------------



Как использовать функцию :
//----------------------------------------------------
Var
List : TStrings;

begin
  List := TStringList.Create;
  TRY
     GetFromClipboardToList(List, false);
     ...
     ...
     ...
  FINALLY
    if List<>NIL then begin
       List.Clear;
       List.Free;
       List:=NIL;
    end;
  END;
end;
//----------------------------------------------------

См. также

Разработка внешних компонент Программист Платформа 1С v7.7 1C77 Абонемент ($m)

Компонента позволяет в среде 1С 7.7 генерировать двухмерный QR код из любого текста длиною до 1800 символов и сохранять его в файле BMP формата. Из файла он может быть загружен в объект 1С "Картинка".

1 стартмани

29.01.2025    178    0    mdbruyfn    4    

4

Разработка внешних компонент Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    5348    1    0    

3

Разработка внешних компонент WEB-интеграция Программист Платформа 1С v7.7 1C77 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно сначала послать несколько запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.

2000 руб.

27.05.2022    9134    23    17    

34

Разработка внешних компонент Программист Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    6330    2    19    

4

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v7.7 1C77 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    10174    14    softmaker    13    

5

Разработка внешних компонент Защита ПО и шифрование Программист Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9537    28    mdbruyfn    10    

9

Разработка внешних компонент Программист Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7693    7    mdbruyfn    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. roamer 01.07.08 18:37 Сейчас в теме
В данном случае быстродействие внешней компоненты - не критично, вероятно.
И если реализовать этот функционал в контексте ВНЕпроцессного сервера автоматизации (в виде приложения), то явно можно было бы получить доп. существенные возможности.
1. Можно было бы легко использовать такое средство и в других приложениях (не только 1C).
2. Если "прикрутить" к нему какой-либо интерпретатор (например, FastScript) - то гибкость этого инструмента (по обработке информации, указанной Пользователем) существенно возросла бы.
2. venger 2124 27.12.08 15:06 Сейчас в теме
Теперь можно и так:

Перем БуферОбмена;
Процедура ПриОткрытии()
ЗагрузитьВнешнююКомпоненту("AddIn_V7MyClipboard.dll");
БуферОбмена=СоздатьОбъект("AddIn.AddIn_V7MyClipboard");
КонецПроцедуры

Процедура В_Буфер()
БуферОбмена.ПоложитьТекстВБуферОбмена(""+Текст);
КонецПроцедуры

Процедура Из_Буфера()
Буфер=БуферОбмена.ПолучитьТекстИзБуфераОбмена(0);
КонецПроцедуры
3. пользователь 15.01.09 21:51
Сообщение было скрыто модератором.
...
4. СССР 13.08.09 11:27 Сейчас в теме
5. Knych 23 24.12.09 11:16 Сейчас в теме
Спасибо, очень пригодилось :D
6. adakabo 62 15.07.10 12:56 Сейчас в теме
спасибо, фдесятку!
... а англосиноним ПоложитьТекстВБуферОбмена() - copyTextToClipBoard() о_0 :)
7. Арчибальд 2709 15.07.10 13:02 Сейчас в теме
Что-то не видел раньше :(
9. пользователь 16.04.13 12:05
Сообщение было скрыто модератором.
...
10. whtblck 96 29.02.16 21:19 Сейчас в теме
что-то "Положить..." не работает:
БуферОбмена.ПоложитьТекстВБуферОбмена(""+Текст);
{D:\<...>\ПРИМЕРДЛЯВК_ADDIN_V7MYCLIPBOARD.ERT(22)}: Поле агрегатного объекта не обнаружено (ПоложитьТекстВБуферОбмена)

Получить - работает
11. ВладАн 02.03.12 13:07 Сейчас в теме
глючит под виндой сервер 2008, причем не постоянно
12. ondul 115 09.08.19 12:06 Сейчас в теме
Эта компонента с односторонним движение - только взять из буфера обмена? - А положить в буфер обмена уже не?
13. CheBurator 2695 09.08.19 12:59 Сейчас в теме
используйте 1cpp - там и положить и взять по клипборду есть
15. ondul 115 09.08.19 13:13 Сейчас в теме
16. CheBurator 2695 09.08.19 13:56 Сейчас в теме
17. ondul 115 09.08.19 15:13 Сейчас в теме
(16) - пример обращения к этому классу Clipboard - дело в том, что у меня 1cpp.dll 2005 года выпуска и попытка использовать более новые релизы приводит к ошибкам уже работающих приложений, например, работа с расширенными формами - вылетает по ошибке... - пробовал несколько последних релизов 1cpp.dll - везде ошибка по расширенным формам..., вот и думаю, как быть, ведь по истории нововведений, Clipboard появился относительно недавно.... У вас какой релиз 1cpp? - у меня размером 897024, от 10.12.2005г.
18. CheBurator 2695 09.08.19 19:41 Сейчас в теме
(17) значит надо перейти на cdt'e. и перевести неработающее на новую 1спп
19. CheBurator 2695 09.08.19 19:49 Сейчас в теме
(17)

//********************************************************************************************************************************
Процедура кнВставитьИзБуфера()

оКлипборд = СоздатьОбъект("БуферОбмена");
ПолеВвода = оКлипборд.Получить(); //для положить в клипбоард оКлипБорд.Установить(СтрокаТекста)

КонецПроцедуры // кнВставитьИзБуфера
20. ondul 115 09.08.19 20:33 Сейчас в теме
(19) - Действительно, буфер обмена работает на последних релизах 1cpp, однако, тогда страдает класс СервисРасшФормы..., через который ищутся принтеры... Печаль.... надо подумать.... Но спасибо...
14. ondul 115 09.08.19 13:11 Сейчас в теме
Классно !!! - Попробовал, спасибо - то, что надо, ура !!! - работает !!! - вставляет в буфер и берет из буфера.
А то использовал для этих целей вставки в буфер обмена рекомендуемую библиотеку wshext.dll, так не во всякой ОС до неё можно достучаться - не регистрируется и всё, обвал...
21. CheBurator 2695 09.08.19 23:23 Сейчас в теме
Ищутся - собаки, когда блох выкусывают ;-)
Возьми из формекса метод получения списка принтеров.
22. ondul 115 10.08.19 04:31 Сейчас в теме
(21) - Да уже смотрю, что всё это - Объект "Сервис" - переехало из 1cpp в FormEx, как ПолучитьСписокПринтеров() (GetPrintersList())
:-) - Придется чуток переписать вызов с 1cpp на FormEx, зато, сколько нового узнал... !!!!! - пока бегал за буфером обмена... :-)
23. CheBurator 2695 10.08.19 12:19 Сейчас в теме
В формексе еще есть теперь методы для вывода ШК, в т.ч. и QR
Оставьте свое сообщение