ComPortTools

08.09.25

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

Внешняя компонента для обмена данными с COM-портом из системы 1С-Предприятие. Открытый исходный код.

Внешняя компонента для обмена данными с COM-портом из системы 1С-Предприятие. Написана на языке C++.

Идея создания возникла, когда подключали на предприятии весы марки МИДЛ. С ними в комплекте тоже шла компонента, но с весами она почему-то не заработала. Вес выдавала все время не тот. 

Компонента может получать/отправлять строки/символы из/в COM-порт(а). С её помощью можно настроить обмен с весовыми терминалами, датчиками и прочим оборудованием использующий для работы UART/RS-232, не прибегая к низкоуровневому программированию. Поддерживается только асинхронный режим работы.


Методы, используемые в 1С:

ИнициализироватьПорт (InitPort) - принимает до 7 параметров:

  • Номер порта - номер последовательного порта – целое число, по умолчанию 0
  • Скорость обмена данными – может принимать значения 0/50/110/134/150/200/300/600/1200/1800/2400/4800/9600/19200/38400/57600/115200 и др. – целое число - по умолчанию 9600
  • Биты данных – по умолчанию 8
  • Бит четности – может принимать значения "even", "mark", "no", "odd", "space" – строка – по умолчанию no
  • Количество стоп битов – может принимать значения "one","two","onefive"(1,5) – строка – по умолчанию one
  • Таймаут – задает время в секундах, после которого компонента перестанет ждать ответа из порта, при чтении строки. – число – по умолчанию 5. При наступлении таймаута выводится строка timeout
  • Название порта linux – в разных дистрибутивах linux com порт может называться по-разному: в некоторых ttyUSB, в других ttyACM – строка – по умолчанию ttyUSB

ПолучитьСтроку – Возвращает строку, полученную из Com-порта. В случае, если порт не был инициализирован, вызывается исключение.
ОтправитьСтроку – Принимает 1 парамер строку и отправляет её в COM-порт
 

Для сборки используется CMAKE.

Опции сборки -DDEBUG_APP - опция позволяет собрать тестовое приложение для отладки компоненты.

Работа протестирована под операционными системами Windows 10/11 64-бит и AltLinux Рабочая станция 10.

Под Windows используется 32 битная версия библиотеки. 64-битная версия не подключается к 1С, выяснить почему пока не удалось. Если есть идеи – напишите, пожалуйста.

Добавлены компоненты для работы на платформах ARM (одноплатные компьютеры) и E2K - Эльбрус. Работу под ними не тестировал. Если у кого-то есть Эльбрус рабочая станция под рукой, напишите в ЛС или в комменты, интересно было бы протестировать под этой платформой. У меня есть доступ к машине по SSH, но графическое приложение там не запустишь.
 

Ссылка на исходники GitHub

---

Картинка для публикации сгенерирована в GigaChat с помощью Kandinsky

Вступайте в нашу телеграмм-группу Инфостарт

компонента

См. также

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

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

5000 руб.

12.05.2020    31464    143    100    

99

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

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

5160 руб.

04.05.2018    49540    126    68    

70

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

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

14.01.2025    4801    bayselonarrend    14    

52

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

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

04.12.2024    8760    kovalevdmv    28    

83

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

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

19.02.2024    8972    starik-2005    38    

60

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

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

26.01.2024    10004    starik-2005    40    

49

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

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

22.11.2023    6952    135    ivan1703    26    

43

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

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

4600 руб.

27.06.2023    4632    3    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alxarz 32 08.09.25 18:33 Сейчас в теме
Под Windows используется 32 битная версия библиотеки. 64-битная версия не подключается к 1С, выяснить почему пока не удалось.
так а платформу 1С на 64-битную меняли при подключении?
starik-2005; +1 Ответить
2. vit00lya 18 08.09.25 20:16 Сейчас в теме
(1) Менял, пробовал в системе только 64 битная 1с. Но она не подключалась. Собираюсь использовать её для весов CAS, ещё раз попробую пересобрать и попробую подключить.
3. starik-2005 3198 09.09.25 11:52 Сейчас в теме
(2)
64 битная 1с
К 64-битной 1С можно подоткнуть ТОЛЬКО 64-битную компоненту, а к 32-битной, соответственно, ТОЛЬКО 32-битную. Без вариантов. Все ситуации, когда не так - это просто показалось. Или запущена не та платформа, или подключена не та библиотека. 64-битная DLL весит больше 32-битной.
vit00lya; +1 Ответить
4. smit1c 106 10.09.25 09:48 Сейчас в теме
5. vit00lya 18 10.09.25 10:26 Сейчас в теме
(4) Да, только кроссплатформенный.
6. MissionOnly 15 12.09.25 11:31 Сейчас в теме
А вот такая стандартная 1С компонента "Драйвер1СУстройстваВводаNative" разве для весов не подходит? Подключается через COM, все настройки такие же как и указывает автор. События от СОМ приходят в "Внешнее событие" (асинхроннее не бывает).
7. vit00lya 18 12.09.25 12:28 Сейчас в теме
(6) Видел. Если ничего не нужно отправлять в устройство то можно адаптировать и драйвер ввода. У нас помимо МИДЛ стоят cas весы, чтобы получить вес нужно отправить определенную строку. Через драйвер 1с к сожалению не нашёл как это сделать.
Есть исходный код компоненты "Драйвер1СУстройстваВводаNative"?
9. MissionOnly 15 12.09.25 13:20 Сейчас в теме
(7) "Драйвер1СУстройстваВводаNative" - только скомпилированные файлы, исходники у 1С разработчиков.
vit00lya; +1 Ответить
8. vit00lya 18 12.09.25 12:30 Сейчас в теме
Можно например с Адруины что-то получать из 1с или отправлять в 1с. Команды/информацию.
Для отправки сообщения требуется регистрация/авторизация