Менеджер буфера обмена. Нативная внешняя компонента win 32/64

26.06.19

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

Добавляет возможности получения информации из почтовых вложений или файлов с других рабочих столов (RDP) с помощью операций копирования/вставки. Может «прослушивать»: любые изменения буфера обмена; нажатие клавиш соответствующих вставке (paste); нажатие клавиш копирования (copy); drop операции. Это новая реализация аналогичной компоненты https://infostart.ru/public/379695/, но теперь не C#, а С++ нативно для x32 / x64. (см. http://youtu.be/-PaWWFfbYo4)

Скачать файл

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

Наименование По подписке [?] Купить один файл
Менеджер буфера обмена. Нативная внешняя компонента win 32/64:
.cfe 1,27Mb ver:1.0
25
25 Скачать (1 SM) Купить за 1 850 руб.
Форматы, методы, события компоненты "Менеджер буфера обмена"
.xlsx 17,78Kb
16
16 Скачать (1 SM) Купить за 1 850 руб.

Описание компоненты «Менеджер буфера обмена».

Основное назначение – добавить для приложения 1С возможность получения информации из почтовых вложений или файлов с других рабочих столов (RDP) с помощью операций копирования/вставки.

Помимо этого, компонента может «прослушивать»:

  • любые изменения буфера обмена;
  • нажатие клавиш соответствующих вставке (paste) из буфера обмена;
  • нажатие клавиш копирования (copy);
  • drop операции.

Параметры компоненты:

  • Только для Windows (32 и 64);
  • Нативная (C++). Не требует регистрации в реестре;
  • Исполняемые файлы BwwLib32.dll и BwwLib64.dll;
  • Подключение "AddIn.BwwLib.ClipboardManager";
  • Протестировано на ОS Win 10 и Win 2012 сервер. Платформы 1С 8.3.10 и 8.3.14;

Подробное описание методов и событий компоненты дано в файле «Форматы, методы и события компоненты.xlsх”

Использование методов компоненты продемонстрировано в расширении «МенеджерБуфераОбмена.cfe»

В расширении всего одна одноименная обработка. Упаковка ее в расширение сделана только для того, что бы  максимально сохранить исходный вид. Если внедрять ее (обработку)  в другие конфигурации напрямую (без расширения), то «слетают» картинки.

DLL файлы компоненты сохранены в  общих макетах расширения «BwwLib32» и «BwwLib64» и в макетах обработки.

Работа с компонентой реализована полностью асинхронно.

Порядок подключения расширения к Вашей конфигурации см. ниже.

Недостатки компоненты.

При разработке компоненты, помимо работы с буфером обмена, была предпринята попытка расширить возможности 1С по использованию drag-drop операций (например, получить почтовые вложения перетаскиванием).

В качестве слушателя drop операций был использован класс IDropTarget, с помощью которого замечательно выполняется перехват, НО!!!

  • при подключении слушателя компоненты к активному окну 1С отключается штатный drop слушатель приложения;
  • он не восстанавливается после отключения ВК или закрытия/открытия окна формы обработки. Для восстановления требуется перезапуск приложения 1С!

Основная причина – «прослушка» устанавливается на главное окно приложения! Если бы «прослушка» включалась для конкретного поля/control-а формы, то все было бы Ок. Но в «тонком» клиенте их вообще «не видно» (в «толстом» определить control-ы возможно, хотя и проблематично). Т.е. имеем основное окно приложения 1С (типа фрейма), а в нем HTML control-ы, которые уже не win-окна, а что-то типа WebView класса. Может быть кто-то уже занимался этим? Было бы интересно…

Таким образом, использование возможности ВК по прослушиванию drop операций не рекомендуются!

Порядок подключения расширения к конфигурации на примере ERP 2.0

1. Создаем в конфигурации ERP новое расширение. Рисунок № 1.

2. Загружаем в расширение файл “Менеджер буфера обмена.cfe”. Рисунок № 2.

3. Синхронизируем роли и совместимость расширения и конфигурации. Рисунок № 3.

4. Добавили в расширение основную роль конфигурации. Рисунок № 4. Если расширение встраивается в чистую конфигурацию, то этот пункт можно пропустить

Буфер обмена clipboard drop внешняя компонента нативная C++ DLL Copy Paste Outlook RDP 32 64

См. также

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

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77939    73    277    

191

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

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

3000 руб.

12.05.2020    29231    139    100    

92

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

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

1500 руб.

17.09.2018    37213    115    128    

116

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

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

2400 руб.

04.05.2018    47745    125    66    

68

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    2788    bayselonarrend    14    

48

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

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    5587    kovalevdmv    26    

77

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

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

2400 руб.

25.06.2024    1353    3    4    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oleg_km 27.06.19 09:15 Сейчас в теме
>> в «толстом» определить control-ы возможно, хотя и проблематично

Это в какой версии платформы? На платформе 8.3.14 контролы в обычных окнах тоже не виндовые.
2. Bww 59 27.06.19 10:46 Сейчас в теме
Имел в виду 8.3.10.
С какой конкретно версии прошли изменения - не знаю.
3. docerman 74 24.10.19 17:16 Сейчас в теме
Добрый день.
Не понял по методам.
Копирую файл на RDP. Вижу что он отображается в галерее файлов и изображений.
Как мне получить сам файл в 1С? Можно ли его скопировать во временную папку?.
4. Bww 59 25.10.19 09:39 Сейчас в теме
5. Bww 59 25.10.19 11:24 Сейчас в теме
Весь код сосредоточен в обработке расширения «Bww_МенеджерБуфераОбмена»
Код несколько «запудренный», т.к. используются асинхронные методы вызова, где каждый метод (действие) разбит на два этапа – начало и завершение (смотри процедуры «ВызовМетодаКомпоненты_Начало» и «ВызовМетодаКомпоненты_Завершение». Именно в них отрабатываются все методы) Если не используешь УФ (ассинхронность), то все очень упрощается.
Тем не менее, предположим что УФ и ты используешь следующий сценарий:
• Запустил 1С на RDP машине.
• Включил обработку, выполнил подключение к компоненте и включил «ухо»
o В этот момент сработал метод включения прослушивателя буфера обмена "ListenerOn". См. вышеописанные процедуры.
o Т.е. теперь Dll-ка смотрит за изменением буфера обмена;

• Когда ты скопировал файл(ы) на локальной машине
o Dll-ка сообщила о изменении в буфере обмена через процедуру «ВнешнееСобытие» Событие = "CHANGE CLIPBOARD". После чего включился метод определения содержимого буфера "DefineContentFormats";
o В этом методе Dll-ка просматривает в буфере наличие форматов
Если Результат = "TEXT" Тогда
ВызовМетодаКомпоненты_Начало("GetText");
ИначеЕсли Результат = "TEXT|BITMAP" Тогда
ВызовМетодаКомпоненты_Начало("GetText");
ВызовМетодаКомпоненты_Начало("GetPictureFile");
ИначеЕсли Результат = "BITMAP" Тогда
ВызовМетодаКомпоненты_Начало("GetPictureFile");
ИначеЕсли Результат = "DROPFILES" ИЛИ
Результат = "CONTENTFILES" Тогда
ВызовМетодаКомпоненты_Начало("GetFilesCount");
КонецЕсли;
В твоем случае будет формат = "CONTENTFILES" и обработка вызовет метод "GetFilesCount", а затем "GetFileInformation", в которых будет заполнена таблица с инфой об файлах

В случае CONTENTFILES файлов их полное имя (путь к ним) не известны, т.к. это не локальный DROP, а перекидывание буфера на RDP машину.
Чтобы получить путь к файлу нужно вызвать метод "GetFilePath", который принудительно запишет файл в temp папку пользователя на RDP машине и вернет путь к нему (полное имя файла).
Т.е. передаем в метод GetFilePath краткое имя файла, , а получаем полное.
7. docerman 74 08.11.19 12:45 Сейчас в теме
(5)
Спасибо. Буду пробовать.
А если не используются УФ какой алгоритм?
6. AneJIbcuH 40 06.11.19 06:53 Сейчас в теме
А в веб-клиенте будет работать?
14. Bww 59 13.11.19 15:52 Сейчас в теме
(6) Текущая версия точно нет!
Создавать новую, с возможностью WEB подключения, пока не предусматривается
15. AneJIbcuH 40 13.11.19 17:58 Сейчас в теме
8. Bww 59 08.11.19 20:12 Сейчас в теме
"...если не используются УФ какой алгоритм?"
Алгоритм тот же, но без разделения на процедуры «ВызовМетодаКомпоненты_Начало» и «ВызовМетодаКомпоненты_Завершение»,
т.е. в одной процедуре можно сразу вызвать все методы
DefineContentFormats;
GetFilesCount
GetFileInformation
9. Bww 59 08.11.19 20:13 Сейчас в теме
"...в веб-клиенте будет работать?"
Попробую и отпишусь
10. docerman 74 12.11.19 19:27 Сейчас в теме
Добрый день.
При запуске 1С на локальной машине все нормально.
Но если я запускаю 1с через RDP, то при вызове метода GetFilePath возвращает неопределено.
Компонента при этом подключается и методы GetFilesCount и GetFileInformation отрабатывают корректно.
В чем может быть причина?
11. docerman 74 13.11.19 11:07 Сейчас в теме
(10)
Заработало и через RDP.
12. docerman 74 13.11.19 11:09 Сейчас в теме
Прекрасная компонента, очень экономит время при подключении файлов к 1с.
13. Bww 59 13.11.19 12:17 Сейчас в теме
ОК!
А то я уже сделал проверочную обработку для обычных форм
В ней все предельно просто и понятно. См. основную процедуру «ОбновитьТаблицуФайлов»
У меня все работает
Прикрепленные файлы:
Проба_RDP.epf
16. shura_k 03.03.20 14:51 Сейчас в теме
Добрый день.
Пытаюсь использовать ваше расширение, нажимаю подключить компоненту, предварительно поправил ПолучитьКомпонентуИзМакета на истина.

На сервере Win 2012R2 все ОК - компонента подключается
На сервере Win 2016 - компонента не подключается.
База одна и та же.
Разрядность 64 бит
17. Bww 59 04.03.20 09:36 Сейчас в теме
Думаю проблема с правами в операционной системе.
Посмотреть и тестировать к сожалению не могу.
Win2016 не пользую
18. shura_k 04.03.20 12:13 Сейчас в теме
(17)Тоже бы так подумал.
Но права админские полные что там, что там.
19. Bww 59 05.03.20 09:05 Сейчас в теме
Даже админ в 10-ке должен запускать программы "как администратор", что бы иметь расширенный доступ. И то не всегда помогает.
В событиях с-мы это никак не проявляется?
20. shura_k 06.03.20 11:34 Сейчас в теме
(19)
В событиях с-мы это никак не проявляется?
не понял вопрос?
21. shura_k 11.03.20 16:54 Сейчас в теме
Отвечу сам себе.
Проблема была во включеном на сервер DEP.
Выключил и все заработало.
22. mgreat75 11.08.20 12:44 Сейчас в теме
Почему-то не получается запустить под Win10, Ошибка при загрузке внешней компоненты что с диска, что из макета. Проблема с правами, 1С должна быть запущена под администратором? Чтобы не запускать 1С под админом, что нужно сделать - зарегистрировать dll?
23. mgreat75 11.08.20 14:28 Сейчас в теме
(22) нашли в чем дело. 1С определяет версию платформу по серверу, и он 64 бита, а клиент 32 бита, поэтому нельзя было загрузить компоненту
24. Mopo3 335 18.02.22 01:03 Сейчас в теме
В платформе 8.3.21 в режиме совместимости "Не использовать" компонента перестает работать, если копировать файл из RDP.
При этом в платформе 8.3.21 в режиме совместимости 8.3.20 - все работает нормально.
25. tormozit 7270 13.01.23 08:59 Сейчас в теме
26. Bww 59 13.01.23 12:46 Сейчас в теме
Оставьте свое сообщение