Простая внешняя компонента для системы 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) - то оставит
буфер как есть, т.е. очищать не будет.
//----------------------------------------------------

Скачать файлы

Наименование Файл Версия Размер
1Cv77_V7MyClipboardBK.zip
.1230376448 614,09Kb
156
.1230376448 614,09Kb 156 Скачать
Пример использования:
//----------------------------------------------------
Процедура гл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;
//----------------------------------------------------

См. также

HTTP сервер 1С 7.7 + HTTP асинхронный клиент: внешние компоненты для 1С 7.7

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

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

2000 руб.

27.05.2022    7811    20    13    

31

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

Разработка внешних компонент Платформа 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    4799    1    0    

3

Выбор из большого списка (для 1С 7.7)

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

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

1200 руб.

02.12.2021    5777    2    19    

4

Форма для ввода количества товаров

Разработка внешних компонент Оптовая торговля Платформа 1С v7.7 Конфигурации 1cv7 Управленческий учет Платные (руб)

Расширяем уровень взаимодействия c пользователем с помощью новых возможностей - форма для ввода количества для перемещений и форма ввода количества с упаковками и штуками.

1200 руб.

08.09.2021    7390    0    2    

1

Внешняя компонента для преобразования файлов из/в кодировку Base64 в 1С 7.7

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

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

10 стартмани

06.04.2021    9445    14    softmaker    12    

5

Криптография: внешняя компонента для 1С 7.7

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

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

1 стартмани

08.06.2020    9050    27    mdbruyfn    10    

9

Протокол UDP: внешняя компонента для 1С 7.7

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

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

1 стартмани

23.05.2020    7318    5    mdbruyfn    0    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. roamer 01.07.08 18:37 Сейчас в теме
В данном случае быстродействие внешней компоненты - не критично, вероятно.
И если реализовать этот функционал в контексте ВНЕпроцессного сервера автоматизации (в виде приложения), то явно можно было бы получить доп. существенные возможности.
1. Можно было бы легко использовать такое средство и в других приложениях (не только 1C).
2. Если "прикрутить" к нему какой-либо интерпретатор (например, FastScript) - то гибкость этого инструмента (по обработке информации, указанной Пользователем) существенно возросла бы.
2. venger 2121 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. Арчибальд 2706 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 3119 09.08.19 12:59 Сейчас в теме
используйте 1cpp - там и положить и взять по клипборду есть
15. ondul 115 09.08.19 13:13 Сейчас в теме
16. CheBurator 3119 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 3119 09.08.19 19:41 Сейчас в теме
(17) значит надо перейти на cdt'e. и перевести неработающее на новую 1спп
19. CheBurator 3119 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 3119 09.08.19 23:23 Сейчас в теме
Ищутся - собаки, когда блох выкусывают ;-)
Возьми из формекса метод получения списка принтеров.
22. ondul 115 10.08.19 04:31 Сейчас в теме
(21) - Да уже смотрю, что всё это - Объект "Сервис" - переехало из 1cpp в FormEx, как ПолучитьСписокПринтеров() (GetPrintersList())
:-) - Придется чуток переписать вызов с 1cpp на FormEx, зато, сколько нового узнал... !!!!! - пока бегал за буфером обмена... :-)
23. CheBurator 3119 10.08.19 12:19 Сейчас в теме
В формексе еще есть теперь методы для вывода ШК, в т.ч. и QR
Оставьте свое сообщение