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

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

См. также

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

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

4440 руб.

22.06.2020    18131    18    33    

22

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

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

2400 руб.

04.05.2018    46798    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    28228    138    100    

90

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

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

4600 руб.

27.06.2023    3396    2    0    

4

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

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

1500 руб.

17.09.2018    36483    113    127    

114

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

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

26.01.2024    6784    starik-2005    32    

44

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

Пример взаимодействия 1С с Apach Kafka посредством внешней компоненты, разработанной на основе официальной библиотеки librdkafka (the Apache Kafka C/C++ client library).

22.11.2023    4373    87    ivan1703    26    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 1745 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 156 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 1745 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 1745 20.03.18 02:04 Сейчас в теме
(24) Если это дело происходит в форме - можно даже не создавать COM-объект, а положить на форму невидимый элемент управления типа "браузер" и работать через него. Это точно будет работать в толстом клиенте, а будет ли это в тонком клиенте и в web-интерфейсе?!!
Оставьте свое сообщение