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

Публикация № 1609173 20.02.22

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

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

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

Фреймворк 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

.zip 52,11Mb
10
.zip 1 52,11Mb 10 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user887928 11.10.22 16:58 Сейчас в теме
Добрый день Алексей.
Занимаюсь разработкой в QtCreator и ищу пример создания внешней компоненты Native API для 1С 8.3 (32 и 64) для QtCreator. Нужен пустой базовый пример. Подскажите, я смогу использовать вашу компоненту в качестве такого? Или просто прошу помочь с примером.
2. tav_74 41 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 41 12.04.23 21:26 Сейчас в теме
Добрый день! В описании я указывал: в архиве находится собранная 32-х разрядная версия со всеми библиотеками, конфигурация, а также исходные коды компоненты. В проекте Visual Studio, в диспетчере конфигураций, есть конфигурация и для х64 платформ. Вы можете пересобрать компоненту с использованием х64 версии фреймворка Qt.
Оставьте свое сообщение

См. также

Разработка внешней компоненты по технологии Native API. Мониторинг файловой системы в 1С

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

Пример разработки внешней компоненты по технологии Native API для мониторинга выбранной папки файловой системы (изменение, переименование, удаление) файлов.

1 стартмани

12.03.2023    5094    4    binx    3    

45

Конвертор из PDF

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

Native компонента для рендеринга PDF в картинки, и (или) извлечения текста из PDF файлов.

2 стартмани

25.01.2023    2996    22    bmk74    11    

23

Внешняя компонента JSON-валидатор

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

Внешняя компонента под ОС семейства windows, реализующая функционал по проверке соответствия json-пакета заданной схеме ("Валидация").

1 стартмани

09.01.2023    2674    4    Prometeus2011    2    

18

Внешняя компонента для подключения 1С к однофазным электросчетчикам Меркурий

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

Внешняя компонента выполнена по технологии Native API для 1С 8.3, и предназначена для сбора и документирования данных от однофазных счетчиков Меркурий 200, 201, 203 (кроме Меркурий 203.2TD), 206 Посредством интерфейсов RS-485, CAN.

1 стартмани

11.08.2022    3562    6    user1779098    4    

11

Пишем внешнюю компоненту для 1С, NativeAPI на С++, для ОС Linux, с использованием Qt Creator

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

В статье рассмотрен процесс создания внешней компоненты для 1С в среде Qt Creator для операционной системы Linux (ubuntu, debian, mint и им подобных). На примере компоненты для сбора данных от внешней аппаратуры и сохранение их в базе, посредством 1С. В качестве внешней аппаратуры в данном примере будем использовать Arduino UNO.

1 стартмани

13.05.2022    8837    5    user1779098    34    

61

Делаем табло в обозревателе из 1Ски с нуля за полчаса. Без бутстрапов, реактов и ангуляров. Жизнетрюки от kuzkov.info

Разработка внешних компонент WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

На Инфостарте много разработок, которые предназначены для отображения в обозревателе данных на связи из 1С. С разными способами подключения, на разных технологиях. Есть платные, есть бесплатные. В данной публикации я хочу показать, как можно сделать сопряжение 1С обозреватель своими 1Сными силами с базовыми навыками верстки с нуля за полчаса и бесплатно.

1 стартмани

02.05.2022    9680    127    Steelvan    0    

67

Внешняя компонента для работы с Modbus TCP/IP

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

Внешняя компонента для работы с Modbus устройствами по протоколу TCP/IP.

1 стартмани

08.04.2022    4823    36    tav_74    10    

6

Внешняя компонента для работы с роутерами Микротик (RouterOS API)

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

Обработка для УФ и тестовая конфигшурация, с включенной в нее ВК Native для работы с RouterOS (Микротик).

5 стартмани

24.12.2021    5142    5    ACCuCTEHT    11    

5

Внешняя компонента - универсальный, надежный перехватчик клавиатурных событий

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

Перехват нажатия клавиш в 1С реализован с привязкой к фокусу формы. Если форма (или главное окно процесса 1С) теряет фокус, то перехват перестает работать. Чтобы решить эту проблему, была разработана соответствующая внешняя компонента.

1 стартмани

29.11.2021    8715    20    Prometeus2011    14    

36

Внешняя компонента Image Magick для базовых операций над картинками

Разработка внешних компонент Работа с интерфейсом Платформа 1С v8.3 Россия Абонемент ($m)

Внешняя компонента Image Magick для базовых операций над картинками. Реализованы функции: Rotate, Flip, Flop, Enhance, Sharpen, Oil, AutoOrient

1 стартмани

29.08.2021    6380    20    ldmonster    8    

5

Шифрование по алгоритму RSA. Внешняя библиотека (*.dll)

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Абонемент ($m)

Внешняя библиотека для шифрования данных в 1С по алгоритму RSA открытым ключом. Открытый ключ задаем сами, и передаем в качестве параметра.

10 стартмани

07.07.2021    8928    17    itserve    20    

5

Разъяснение внешних компонент

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

Более пятилетки назад, еще в 2015 году я написал свою внешнюю компоненту на Visual Basic 6. По сути, это была простая обертка для доступа к функция DLL. Потом написал еще одну обертку уже для другой DLL, от другого оборудования. На этом моё писательство внешних компонент и ограничилось. И вот в 2020 году существенно изменилось SDK оборудования, для которого было написано SDK. А Visual Basic прекратил свое существование. На нем еще можно писать внешние компоненты, но уже только под 32 разряда. Пришлось искать новые средства для разработки, поддерживающие 64-разрядные платформы. И на этом пути пришлось потратить более 6 часов для выбора инструмента и его настройки.

1 стартмани

17.06.2021    9926    5    fixin    6    

11

Внешняя компонента для работы с postgresql

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

Внешняя компонента для работы с сервером postgresql. Использует библиотеки libpqxx и libpq. Была написана для построения отчета по телефонии, так как стандартное подключение внешних источников данных по ODBC работало очень медленно.

1 стартмани

22.04.2021    5901    2    Ma_X_X    7    

5

Внешняя компонента для работы с SQL запросами

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

Уважаемые коллеги, отдаю Вам "на растерзание" (для тестирования) внешнюю компоненту для общения 1C с SQL посредством запросов (драйвер ODBC 3.x).

1 стартмани

03.04.2021    6946    0    ivan1703    9    

5

Описание работы внешней компоненты 1С SBRFCOM.DLL для обслуживания банковских карт

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

Описание работы внешней компоненты 1С SBRFCOM.DLL для обслуживания банковских карт, приведены методы и функции по работе с данной компонентой.

1 стартмани

09.03.2021    10442    40    artemua    8    

7

Внешняя компонента: Android tools

Мобильная разработка Разработка внешних компонент Платформа 1С v8.3 Мобильная платформа Абонемент ($m)

Несколько дополнительных функций для мобильного приложения\клиента под Android. Размер архива внешних компонент под архитектуры ARM и x86 - 390KB.

1 стартмани

12.01.2021    14261    39    KAV2    46    

16

Использование встроенного сканера ТСД на Android в мобильном клиенте и мобильном приложении (драйвер сканера Android для 1С)

Разработка внешних компонент Мобильная разработка Платформа 1С v8.3 Абонемент ($m)

Используя данный драйвер, можно без единой строки кода, просто установив на ТСД мобильный клиент 1С, сразу начать подбирать товары в документах вашей учётной системы. А, адаптировав нужные формы под небольшой размер экрана ТСД, можно просто создать полноценное рабочее место для выполнения операций с помощью ТСД, не прибегая к стороннему софту. Если же на складе плохая связь (или её нет вовсе), то можно использовать возможности мобильного клиента в автономном режиме (потребуется доработка вашей конфигурации). Драйвер также можно использовать и для Android приложения на мобильной платформе. В результате чего можно обойтись без ненужных полей ввода и клавиатуры «на пол-экрана».

3 стартмани

09.10.2020    53062    378    ltfriend    221    

107

Внешняя компонента на C# для парсинга страниц через Phantom JS на сервере 1С х32,х64

Инструментарий разработчика Разработка внешних компонент WEB-интеграция Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

PhantomJS - это браузер без окна, используемый для автоматизации взаимодействия с веб-страницами. PhantomJS предоставляет JavaScript API, обеспечивающий автоматическую навигацию, снимки страницы, эмуляции поведение пользователя, что делает его распространенным инструментом, используемым для запуска модульных тестов на основе браузера в автономной системе, такой как среда непрерывной интеграции . PhantomJS основан на WebKit, что делает его похожей на Safari и Google Chrome средой просмотра. Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD.

1 стартмани

06.08.2020    12215    8    DrZombi    7    

22

Отрубаем зависшие на сервере процессы

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

Вы любите COM объекты? Я их просто обожаю! Практически все, чего не может 1С, можно доделать ими. Но есть у них небольшой косячок: иногда они зависают и висят, пока не отрубишь их через диспетчер задач или до перезагрузки, жрут память и в конце концов перестают запускаться. Что делать? Рубить!

1 стартмани

28.07.2020    9400    3    zarankony    3    

7

Универсальная обертка для использования NATIVE компонент на платформе 1С 7.7, 8.0 и 8.1

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

Используете 1С 7.7, 8.0 или 8.1 и вас раздражает, что под вашу 1С уже не выпускаются современные компоненты. А хотелось бы?

1 стартмани

07.07.2020    12748    10    karpik666    6    

15

Нано HTTP сервер - внешняя компонента для мобильного приложения 1C, на Android

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

Нано HTTP сервер на терминале сбора данных "ATOL Smart.Lite android 7.0". Работает только с GET и POST запросами. Аутентификация BASE64. Не поддерживает HTTPS и не передает файлы. В прикрепленном архиве исходники на компоненту (С++ и java для Android Studio 3.6.2), ЦФ - мобильного приложения и тестовая обработка.

1 стартмани

22.06.2020    12993    20    SanyMaga    30    

18

Получение фото с веб-камеры

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

Получение фото с веб-камеры без ActiveX. Внешняя компонента по технологии Native API.

1 стартмани

25.03.2020    21231    190    berezdetsky    51    

27

Пауза без загрузки процессора. Внешняя компонента Native API на C++

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

Внешняя компонента Native API на C++ для Win32 и Win64 позволяет установить паузу на заданное количество секунд без загрузки процессора.

2 стартмани

21.03.2020    9779    16    Dmitrij-2    28    

6

Печать штрихкода из неуправляемых форм по новой технологии на платформе 8.3.16 (пример получения картинки через внешнюю компоненту)

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

Рабочий пример получения картинки ШК через внешнюю компоненту. После перехода на платформу 8.3.16 в старых конфигурациях перестали печататься ШК на принтере этикеток, пришлось переделывать процедуру печати, может, кому пригодится. Проверялось на УТ 10.3 и КА 1.1.

1 стартмани

10.02.2020    6773    25    karamazoff    13    

12

Быстрая печать этикеток (ZPL, EPL, TSPL, EZPL, GEPL, TSPL-EZ)

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

Качественная и быстрая печать на внутреннем языке принтеров этикеток.

4 стартмани

02.02.2020    22970    80    Johny_v    20    

35

Сканирование по TWAIN в 1С (обычные и управляемые формы)

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

Обработка показывает пример, как можно в 1С проводить сканирование с помощью компоненты TWAIN.

3 стартмани

03.01.2020    15511    50    Denr83    0    

20

Вставка картинки из буфера обмена (на выбор: JavaScript / внешняя компонента / штатно)

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

Вставка картинки из буфера обмена с помощью JavaScript в поле HTML в web-клиенте, с помощью внешней компоненты в тонком/толстом клиенте и путем преобразования данных картинки формата Base64 из поля HTML в любом клиенте, начиная с платформы 8.3.16. Механизм протестирован на платформах 8.2 и 8.3 Для запуска опубликованной конфигурации требуется платформа релиза не ниже 8.3.14.

1 стартмани

05.12.2019    15110    15    Andreyyy    10    

7

Клиент событий в «бесконечном» HTTP-соединении для 1С: Предприятие 8

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

Native Компонента в отдельном потоке обрабатывает пакеты событий, в "бесконечном" http соединении и передаёт данные в очередь внешних событий.

1 стартмани

02.12.2019    13329    5    starovton    13    

11

Внешняя компонента 1С Native x32/x64: отправка UDP сообщения

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

Компонента предназначена только для отправки текстовых UDP сообщений. Работает как на клиенте, так и в серверных вызовах в любой разрядности Windows платформы.

1 стартмани

05.11.2019    9993    24    von_de    6    

5

Маленькая и скромная мобильная внешняя компонента

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

Изваять простенькую мобильную компоненту на 1С для android не так-то просто. Посему назло отдельным супостатам, не желающим делится исходниками, представляю весь свой скромный труд на публичный суд.

1 стартмани

21.10.2019    21640    18    ripreal1    34    

67

Native внешняя компонента для оповещения по UDP или TCP

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

Native внешняя компонента для оповещения по UDP или TCP, которая реализует возможность в 1С передавать сообщения с сервера на клиента. Исходный код компоненты также представлен.

1 стартмани

06.10.2019    23097    50    vdv2701    40    

48

Внешняя компонента для работы с драйвером "Атол v.10". 1С:8.3

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

Внешняя компонента, для работы с драйвером «Атол v.10», посредством JSON-заданий.

1 стартмани

16.07.2019    26023    51    gortrex    11    

8

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

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

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

1 стартмани

26.06.2019    14671    38    Bww    26    

8

Обработка вывода на печать QR-кода и штрихкодов в различных форматах (одномерные и двумерные)

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

Обработка предназначена для вывода на печать QR-кода и штрихкодов в различных форматах без установки дополнительных ActiveX компонент. Тестировалась на чистой базе платформы 1С:Предприятие 8.3 (8.3.14.1630), а так же в конфигурациях Бухгалтерия предприятия КОРП, редакция (3.0.69.35) и на Бухгалтерия предприятия (3.0.70.30)

2 стартмани

22.05.2019    21811    64    MGemini    3    

16

DLL для подключения к Asterisk (32/64 клиенты)

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

Подключение к Астериску и получение событий "Newchannel","BridgeEnter","Hangup" через ОбработкаВнешнегоСобытия.

1 стартмани

19.03.2019    16738    30    xxxAndricxxx    14    

10

DLL для обмена между 1С (и не только) через UDP порты (32/64 клиенты)

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

Библиотеки для создания функционала для прослушивания портов из 1С и отправки сообщений на удаленный udp порт.

1 стартмани

28.02.2019    15916    22    xxxAndricxxx    5    

15

Эмулятор ККМ по стандарту ФФД 1.1

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

Эмулятор драйвера ККМ по стандарту ФФД 1.1 предназначен для использования всех возможностей программы, при отсутствии физической кассы. Подойдет как программистам при разработке интерфейса РМК, например, так и пользователям для тестирования возможностей программы.

1 стартмани

30.12.2018    38231    188    Matveymc    31    

28