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

04.05.09

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
ТестБуферОбмена.epf
.1241458646 5,93Kb
294
294 Скачать (1 SM) Купить за 1 850 руб.
clipboard.dll
.1241458688 511,00Kb
279
279 Скачать (1 SM) Купить за 1 850 руб.
Исходники (D7) clpsources.zip
.1241458725 13,16Kb
185
185 Скачать (1 SM) Купить за 1 850 руб.

Компонента предназначена для вставки в элементы типа Картинка картинки из буфера обмена.
Картинка из буфера автоматически преобразуется в формат 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 и маркетинг Управленческий учет Платные (руб)

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

18000 руб.

30.05.2017    53751    9    69    

46

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

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

2400 руб.

04.05.2018    46873    122    66    

66

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

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

3000 руб.

12.05.2020    28321    138    100    

90

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

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    918    2    3    

2

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

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3431    2    0    

4

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

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

4440 руб.

22.06.2020    18184    18    33    

22

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

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

1500 руб.

17.09.2018    36524    113    127    

114
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Anything 91 05.05.09 03:49 Сейчас в теме
(0) Спасибо. А я вот все искал, как бы сделать скриншот из 1С без использования дополнительных библиотек, но так и не нашел...
2. vip 05.05.09 03:53 Сейчас в теме
(1) Угу. Здесь дополнительная библиотека совсем не используется :))
3. dimensh 06.05.09 14:40 Сейчас в теме
попробую для вставки скрина ошибки в письмо
4. Поручик 4692 06.05.09 17:48 Сейчас в теме
Для клиент-серверной получается надо каждому ставить библиотеку и под админом регать.
5. gudun_ku 62 06.05.09 17:54 Сейчас в теме
(4). Да, это проблема. Для 7.7 решается, для 8 к сожалению решения по
регистрации внешних компонент без админских прав не нашел, хотя уверен,
создать можно.
6. Трактор 1254 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 267 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 1746 26.07.14 11:31 Сейчас в теме
(14) нету.
(4),(5) а если сделать ВК на NativeAPI?
А может попробовать сделать без ВК - кодом на VB?
15. shatt 38 04.09.12 15:51 Сейчас в теме
А изображения скопированные в буфер на локальной машинке можно вставить на машинку к которой подключились через RDP?
16. CaSH_2004 373 09.12.12 00:32 Сейчас в теме
Интересно, а можно такое изобразить при помощи DynamicWrapperX.dll? Так сказать для более широких масс.
Немного извращенно, зато доступнее. Chessman так сотворил работу с формами, вроде как ВК и в то же время не ВК
17. пользователь 16.04.13 12:08
Сообщение было скрыто модератором.
...
19. vshish 157 22.10.15 07:34 Сейчас в теме
Все хорошо, Но более корректно было бы завернуть все файлы в архивчик и уже архив публиковать.
20. progr-2008 118 15.09.17 14:10 Сейчас в теме
Можно копировать объекты метаданных?
21. SkyLink2012 267 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 1746 16.03.18 04:47 Сейчас в теме
24. SkyLink2012 267 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 1746 20.03.18 02:04 Сейчас в теме
(24) Если это дело происходит в форме - можно даже не создавать COM-объект, а положить на форму невидимый элемент управления типа "браузер" и работать через него. Это точно будет работать в толстом клиенте, а будет ли это в тонком клиенте и в web-интерфейсе?!!
Оставьте свое сообщение