Еще про буфер обмена

04.05.09

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

Еще раз про буфер обмена. Понадобилось вставлять скриншот в справочник...

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

Наименование Файл Версия Размер
ТестБуферОбмена.epf
.1241458646 5,93Kb
294
.1241458646 5,93Kb 294 Скачать
clipboard.dll
.1241458688 511,00Kb
279
.1241458688 511,00Kb 279 Скачать
Исходники (D7) clpsources.zip
.1241458725 13,16Kb
185
.1241458725 13,16Kb 185 Скачать

Компонента предназначена для вставки в элементы типа Картинка картинки из буфера обмена.
Картинка из буфера автоматически преобразуется в формат jpeg встроенным компонентом Delphi и выдается в 1С в виде Base64 строки.
Это показалось удобным при вставке в справочник скриншотов (в программе управления проектами).
Пример работы прилагается, ничего сложного в работе нет.
Пример предназначен для 1С Предприятие 8.1.
Перед началом работы положить dll в папку bin каталога исполняемых файлов 1с.
Если хотите добавить что-то свое, исходники (Delphi 7) приложены.
Тестировалось под Vista Home premium.
Для преобразования картинки в строку Base64 использована бесплатная библиотека DIMime от Delphi Inspiration (http://www.yunqa.de).
Приложенные исходники библиотеки DIMime содержат исправление фичи, найденной мной (поток данных  не устанавливался в начало перед чтением из него).

См. также

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52115    34    69    

43

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

2400 руб.

12.05.2020    26249    131    99    

83

Внешняя компонента для подключения 1С к телефонии Asterisk

Разработка внешних компонент Телефония, SIP Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    44982    117    64    

60

Внешняя компонента печати PDF (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    35088    104    123    

111

Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3

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

Средство для сверхбыстрой разработки внешних компонент 1С:Предприятия 7.7 и 8 по технологии COM на всех версиях DELPHI, начиная с 6.

2000 руб.

28.03.2013    54004    35    14    

68

QR-код с логотипом компании (обычная и управляемая форма)

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Как известно, стремление сделать свою рекламную продукцию запоминающейся и выделяющейся — верный путь к успеху. Сегодня, мы поговорим с вами о том, что можно сделать с обычным черно-белым QR-кодом, чтобы он стал более живым и привлекательным. Если вам не терпится попробовать сделать QR-код с логотипом компании, то эта обработка для вас!

2400 руб.

22.06.2016    30842    4    4    

8

Внешняя компонента 1С и С++. Продолжаем разговор.

Разработка внешних компонент Платформа 1С v8.3 Бесплатно (free)

А давайте запилим 8.3.26 до релиза, или оповещение с сервера...

19.02.2024    4044    starik-2005    28    

52

Внешние компоненты 1С и язык C++

Разработка внешних компонент Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    4786    starik-2005    32    

39
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Anything 89 05.05.09 03:49 Сейчас в теме
(0) Спасибо. А я вот все искал, как бы сделать скриншот из 1С без использования дополнительных библиотек, но так и не нашел...
2. vip 05.05.09 03:53 Сейчас в теме
(1) Угу. Здесь дополнительная библиотека совсем не используется :))
3. dimensh 06.05.09 14:40 Сейчас в теме
попробую для вставки скрина ошибки в письмо
4. Поручик 4670 06.05.09 17:48 Сейчас в теме
Для клиент-серверной получается надо каждому ставить библиотеку и под админом регать.
5. gudun_ku 62 06.05.09 17:54 Сейчас в теме
(4). Да, это проблема. Для 7.7 решается, для 8 к сожалению решения по
регистрации внешних компонент без админских прав не нашел, хотя уверен,
создать можно.
6. Трактор 1246 06.05.09 23:13 Сейчас в теме
Скачивать не стал, потому как сейчас ненужно, но в своё время вопрос стоял остро. За решение плюс. Запомню. Потребуется - скачаю.
7. LavS 165 08.05.09 20:27 Сейчас в теме
Жаль, что в клиент-серверной админские права нужны... Поюзаю...
8. gudun_ku 62 09.05.09 00:10 Сейчас в теме
(7) Если зарегистрировавшиеся на эти выходные деффчонки в гости не придут,тогда возможно, подумаю над регистрацией под админом. Давно хочу под 8-ку чтоб не париться, исходники vkloader и v8undeflate есть... Подумаю обязательно,хотя сроков себе не ставлю.
10. пользователь 10.05.09 11:43
Сообщение было скрыто модератором.
...
9. пользователь 10.05.09 11:43
Сообщение было скрыто модератором.
...
11. inse0f 13.05.09 16:03 Сейчас в теме
за исходники отдельный плюс)
12. MadRabbit 102 06.07.09 17:13 Сейчас в теме
Вообщем то плюс, но есть вопрос - а как в обратном направлении, то есть из 1С картинку в буфер загрузить?
13. gudun_ku 62 07.07.09 00:40 Сейчас в теме
(12) см. обработку тест, там щелкаешь на картинке и Ctrl-C...
23. SkyLink2012 266 19.03.18 13:15 Сейчас в теме
(12)
(14)

Если задача ВООБЩЕ без DLL , стало быть, есть способ оперировать картинкой как двоичными данными

ДанныеКартинки = Base64Значение(строкаКартинки);
ЭлементыФормы.ОсновноеИзображение.Картинка = Новый Картинка(ДанныеКартинки);


И никаких DLL ))
Далее болшИе размеры можно отправлять на CDN https://github.com/Imgur/imgurpython
А маленькие - дирЕктом в БД записать.
Каким образом определять параметры и размеры картинки из Base64? Без прямых DLL, с помощью доступных инструментов , например import base64 from PIL import Image from subprocess import Popen, PIPE


P.S вопще с уважением отношусь к идеям работать с внешними API прямо из 1с. Но как то случаются же и появляются оптимальные пути решения проблем по работе с изображением через буфер обмена?



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

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

Показать
skyadmin; +1 Ответить
14. Angeros 08.02.12 05:54 Сейчас в теме
А есть какие нибудь дополнительные методы в длл, например узнать тип картинки, джпг или пнг или например узнать ее размеры в пикселях и мегабайтах?!
18. DrAku1a 1679 26.07.14 11:31 Сейчас в теме
(14) нету.
(4),(5) а если сделать ВК на NativeAPI?
А может попробовать сделать без ВК - кодом на VB?
15. shatt 38 04.09.12 15:51 Сейчас в теме
А изображения скопированные в буфер на локальной машинке можно вставить на машинку к которой подключились через RDP?
16. CaSH_2004 372 09.12.12 00:32 Сейчас в теме
Интересно, а можно такое изобразить при помощи DynamicWrapperX.dll? Так сказать для более широких масс.
Немного извращенно, зато доступнее. Chessman так сотворил работу с формами, вроде как ВК и в то же время не ВК
17. пользователь 16.04.13 12:08
Сообщение было скрыто модератором.
...
19. vshish 150 22.10.15 07:34 Сейчас в теме
Все хорошо, Но более корректно было бы завернуть все файлы в архивчик и уже архив публиковать.
20. progr-2008 118 15.09.17 14:10 Сейчас в теме
Можно копировать объекты метаданных?
21. SkyLink2012 266 15.03.18 14:18 Сейчас в теме
Надо в 1с вставить картинку из буфера обмена ? Работать с изображением из буфера обмена в 1с версий 8.1 , 8.2 , 8.3 из Windows XP- windows10?


Пока возможно скачать разработку 2010 года https://infostart.ru/public/19932/ без списания стартмони в 2018, 2019, 2012 году бесплатно. В макете обработки есть dll-ка clipboard.dll 511кб ( 523264б ), версия 1.0.0.5



Возникает ошибка 80004005 при регистрации ( c:\Program Files\1cv82>regsvr32 clipboard.dll ) в командной строке?

Попросту, надо запустить cmd "Командная строка (Администратор)" и зарегистрировать библиотеку

regsvr32 "c:\Program Files\1cv82\clipboard.dll"



Очень простой код
		ЗагрузитьВнешнююКомпоненту("clipboard.dll"); //и не надо вам никаких V8ADD.dll, если только фотки грузить, путем подгрузки через Base64
		Попытка
			КомпонентБО = Новый("AddIn.clipboard");
		Исключение
			Сообщить("Не удалось создать объект компоненты clipboard");
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
Показать



Тип не определен (Addin.Clipboard) ? Понадобиться запустить cmd "Командная строка (Администратор)" и зарегистрировать библиотеку

regsvr32 "c:\Program Files\1cv82\clipboard.dll"


В итоге, в рунете появятся бОльше качественных и полезных фото))
В целом, для тех кто не в пожизненной теме - C# . Кто с уважением посматривает на кнопку "Заказать установку этой обработки". На дворе 2018год. Уже Python as an Excel scripting language Для 1с+Python from PIL import Image и subprocess.Popen в помощь! :)
22. DrAku1a 1679 16.03.18 04:47 Сейчас в теме
24. SkyLink2012 266 19.03.18 13:15 Сейчас в теме
(22)
(12)
(14)

Если задача ВООБЩЕ без DLL , стало быть, есть способ оперировать картинкой как двоичными данными


// строкаКартинки - ПолучитьИзБуфераОбмена

ДанныеКартинки = Base64Значение(строкаКартинки);
ЭлементыФормы.ОсновноеИзображение.Картинка = Новый Картинка(ДанныеКартинки);


И никаких DLL ))
Далее болшИе размеры можно отправлять на CDN https://github.com/Imgur/imgurpython
А маленькие - дирЕктом в БД записать.
Каким образом определять параметры и размеры картинки из Base64? Без прямых DLL, с помощью доступных инструментов , например import base64 from PIL import Image from subprocess import Popen, PIPE


P.S вопще с уважением отношусь к идеям работать с внешними API прямо из 1с. Но как то случаются же и появляются оптимальные пути решения проблем по работе с изображением через буфер обмена?



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

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

Показать
25. DrAku1a 1679 20.03.18 02:04 Сейчас в теме
(24) Если это дело происходит в форме - можно даже не создавать COM-объект, а положить на форму невидимый элемент управления типа "браузер" и работать через него. Это точно будет работать в толстом клиенте, а будет ли это в тонком клиенте и в web-интерфейсе?!!
Оставьте свое сообщение