Внешняя Native API компонента совместно с функционалом фреймворка Qt

08.04.22

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

В данном примере реализована интеграция внешней компоненты, написанной с использованием технологии Native API и фреймворка Qt.

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

Наименование Файл Версия Размер
Внешняя Native API компонента совместно с функционалом фреймворка Qt
.zip 52,11Mb
13
.zip 1 52,11Mb 13 Скачать

Фреймворк Qt позволяет добавить множество полезного функционала в Вашу внешнюю компоненту, например, QtMultimedia модуль предоставляет богатый набор функций, позволяющих использовать мультимедийные возможности платформы. QCamera - использование камер. Модуль работы с сетью QtNetwork предоставляет удобные как низкоуровневые сетевые концепции, так и высокоуровневые классы. Класс QTextToSpeech обеспечивает удобный доступ к механизмам синтеза речи по тексту. Также в фреймворке присутствует множество других классов, облегчающих работу программиста.

Тестировалось с версией платформы 1С:Предприятие 8.3.17.2306

В данном примере реализована работа как с вышеперечисленными классами, так и работа с GUI фреймворка из динамической библиотеки. Для этого, в конструкторе наследника от абстрактного класса IComponentBase, в worker_thread потока, создаваемого функцией_beginthreadex с помощью QCoreApplication::setLibraryPaths, вначале, до создания объектов, устанавливается путь для нахождения необходимых библиотек фреймворка. Соответственно сама компонента и ее библиотеки должны находится по данному пути, затем инициализируется объект QApplication. Далее создаются остальные объекты.

unsigned __stdcall worker_thread(void* arg)
{
                if(!demoQtClass)
   {
                               int argc = 0;
                               char* argv = { strdup("hi") };
                               QStringList paths = QCoreApplication::libraryPaths();
                               paths.append("c:/QtDemoAddInNative");
                               QCoreApplication::setLibraryPaths(paths);
                               QApplication* appp;
                               appp = new QApplication(argc, &argv);
                               appp->setQuitOnLastWindowClosed(false);
                               demoQtClass = new QtWidgetsDemoClass;        
                               cameraWidget = new QtCameraWidget;
                               chatWidget = new QtChatWidget;
                               utils = new my_utils;                              
                               appp->exec();
                               _endthreadex(0);
   }

                return 0;
}

Затем с помощью механизма сигналов и слотов реализуются коммуникации между созданными объектами. Для нахождения библиотек фреймворка необходимо в Windows системную переменную Path также добавить каталог месторасположения библиотеки, в нашем случае это "c:\QtDemoAddInNative".

 

Path

 

Также для работы компоненты необходима установка распространяемого компонента Visual C++ Redistributable x86 или x64, в зависимости от разрядности компоненты. Также следует учесть разрядность компоненты и разрядность платформы 1с.

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

После нажатия на кнопку "Подключить компоненту" в случаете ее успешного подключения, появляется соответствующее сообщение:

 

Установка компоненты

 

В системном трее появится иконка компоненты:

 

Трей

 

Окно программы позволяет взаимодействовать с 1С посредством генерации внешнего события. В ответ из 1С в процедуре "Внешнее событие" вызывается метод внешней компоненты "ОтправитьТекстВВиджет" который добавляет в форму текстового редактора внешней компоненты текст.

 

Главное окно

 

Команды "Воспроизвести звук", "Остановить" -  работают с классом QMediaPlayer фреймворка Qt.

По кнопке "Прочитать текст" с помощью класса QTextToSpeech происходит преобразование текста в речь. На компьютере должны быть установлены библиотека SAPI и голоса для синтезатора речи.

Модуль для работы с камерой использует класс QCamera, обеспечивающий интерфейс для системных устройств камеры. По кнопке в 1С "Получить фото" происходит преобразование типа QByteArray в двоичные данные с типом VTYPE_BLOB и возврат их в 1С.

 

Камера

 

Тест работы с e2eSoft VCam - эмулятор веб-камеры. По галочке "Отразить" можно зеркально отразить полученное фото.

 

Камера_1

 

Виджет чата - пример простого чата на основе QUdpSocket – позволяет принимать и отправлять сообщения как всем, так и выбранным адресатам.

 

Чат

 

Компиляция проекта проверялась в Visual Studio 2017 и в  Visual Studio 2019 под Windows 10.

Версия Qt - 5.15.2

Работа проверялась в Windows 10. Также компонента функционировала и на более ранних операционных системах, например Server 2008 R2.

 

Server2008

 

В архиве находится собранная 32-х разрядная версия со всеми библиотеками, конфигурация, а также исходные коды компоненты.

Native API Qt Работа с камерой Сеть Звук

См. также

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

Разработка внешних компонент 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    52104    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    26244    131    99    

83

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

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

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

2400 руб.

04.05.2018    44976    117    64    

60

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

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

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

1500 руб.

17.09.2018    35081    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    53999    35    14    

68

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

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

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

2400 руб.

22.06.2016    30840    4    4    

8

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

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

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

19.02.2024    4039    starik-2005    28    

52

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

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

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

26.01.2024    4778    starik-2005    32    

39
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user887928 11.10.22 16:58 Сейчас в теме
Добрый день Алексей.
Занимаюсь разработкой в QtCreator и ищу пример создания внешней компоненты Native API для 1С 8.3 (32 и 64) для QtCreator. Нужен пустой базовый пример. Подскажите, я смогу использовать вашу компоненту в качестве такого? Или просто прошу помочь с примером.
2. tav_74 44 13.10.22 16:58 Сейчас в теме
Добрый день!

Проект разрабатывался в Microsoft Visual Studio 2019. Можно попробовать создать .pro файл с помощью Qt VS Tools, или создать в QtCreator проект с нуля и скопировать код из .h и .cpp исходников с необходимой доработкой.
3. ahtyamovar 03.04.23 11:34 Сейчас в теме
windows 8.1x64 - компонента не подключается. path прописан, все лежит в C:\QtDemoAddInNative . права на каталог даны всем. база файловая.
1с толстый клиент - 8.3.22.1923 х64.
4. ahtyamovar 03.04.23 13:31 Сейчас в теме
Разобрался: платформу 1С надо 32х разрядную использовать.
5. skyboy13 13 12.04.23 20:33 Сейчас в теме
(4) а если нет возможности использовать 32?
6. tav_74 44 12.04.23 21:26 Сейчас в теме
Добрый день! В описании я указывал: в архиве находится собранная 32-х разрядная версия со всеми библиотеками, конфигурация, а также исходные коды компоненты. В проекте Visual Studio, в диспетчере конфигураций, есть конфигурация и для х64 платформ. Вы можете пересобрать компоненту с использованием х64 версии фреймворка Qt.
Оставьте свое сообщение