Native компонента для чтения из Com порта

18.07.16

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

Компонента позволяет посредством ВнешнегоСобытия получать данные из Com-порта

Скачать файл

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

Наименование По подписке [?] Купить один файл
Библиотека x32
.dll 109,50Kb
5
5 Скачать (1 SM) Купить за 1 850 руб.
Библиотека x64
.dll 126,50Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.
Архив с обеими версиями
.rar 104,03Kb
99
99 Скачать (1 SM) Купить за 1 850 руб.

Компонента поставляется в x32 и x64 вариантах.

Порядок подключения:

Из макета

ПодключитьВнешнююКомпоненту("Обработка.КомПорт.Макет.Библиотека","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");

Из файла:

ПодключитьВнешнююКомпоненту("Путь к dll файлу","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");

Свойства:

КомПорт.ИмяПорта(PortName) = "COM1"; // Имя ком порта

КомПорт.РазмерБлокаДанных(BlockSize) = 1; // Размер данных, который накопит компонента прежде чем 
                                          // вызовет внешнее событие (произвольное целое число)

КомПорт.Скорость(BaudRate) = 9600;        // Скорость работы Com порта (110, 300, 600, 1200, 2400, 
                                          // 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200,
                                          // 128000, 256000)
КомПорт.СтопБит(StopBits) = 0;            // 1 стоп бит = 0, 1.5 стоп бита = 1, 2 стоп бита = 2

КомПорт.БитДанных(DataBits) = 8;          // Количество бит данных (целое число)

КомПорт.Четность(Parity) = 0;             // Четность (NOPARITY=0, ODDPARITY=1,EVENPARITY=2,
                                          // MARKPARITY=3,SPACEPARITY=4)

Методы:

КомПорт.ОткрытьПорт(); // Открывает порт
КомПорт.ЗакрытьПорт(); // Закрывает порт

Все свойства устанавливаются до открытия порта. Для изменения свойств необходимо закрыть и заново открыть порт.

Внешнее событие:

Процедура ВнешнееСобытие(Источник, Событие, Данные) // Истичник = COM_PORT, Событие = DATA_BLOCK
	ПрочитанныеДанные = Данные;
КонецПроцедуры

Дополнительныая информация

Ссылка на объект компоненты должна быть доступна на протяжении всей работы с Com  портом, во избежании выгрузки компоненты платформой.

Например так:

Перем КомПорт

Процедура ПриОткрытии()
	ПодключитьВнешнююКомпоненту("Обработка.КомПорт.Макет.Библиотека","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);    
КонецПроцедуры

Процедура ДействиеНачатьПрослушивание()
    КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
    КомПорт = ОткрытьПорт();
КонецПроцедуры

Процедура ДействиеЗакончитьПрослушивание()
    КомПорт = ЗакрытьПорт();
    КомПорт = Неопределено;
КонецПроцедуры

Процедура ПриЗакрытии()
	Если КомПорт <> Неопределено Тогда
        КомПорт = ЗакрытьПорт();
        КомПорт = Неопределено;
    КонецЕсли;
КонецПроцедуры

КомПорт = Неопределено;

Планируется выход платной версии, с возможностью записи в COM порт и управлением сигнальными линиями.

Заключение

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

Внешняя компонента Ком порт Com port

См. также

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

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

3600 руб.

02.09.2010    77930    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    29221    139    100    

92

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

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

1500 руб.

17.09.2018    37204    115    128    

116

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

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

2400 руб.

04.05.2018    47735    125    66    

68

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

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

14.01.2025    2781    bayselonarrend    14    

48

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

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

04.12.2024    5574    kovalevdmv    26    

77

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

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

2400 руб.

25.06.2024    1346    3    4    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. jaroslav.h 181 19.07.16 10:56 Сейчас в теме
Дуже дуже вдячний, якщо все гуд, то це супер, це то, що нам якраз треба з специфічним сканером штрих-кодів. Буду тестувати.
2. jaroslav.h 181 19.07.16 11:07 Сейчас в теме
Получаю
{Форма.Форма.Форма(7)}: Тип не определен (AddIn.allsp_1C_ComPort.allsp_1C_ComPort)
КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");

с таким подключением
&НаКлиенте
Перем КомПорт;

&НаКлиенте
Процедура ПриОткрытии()
	ПодключитьВнешнююКомпоненту("C:\ComPort_x64.dll","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native); 
	КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
КонецПроцедуры

Показать


да и
ПодключитьВнешнююКомпоненту("G:\WH-ОБМЕН\ComPort_x64.dll","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native) = Ложь


Толстый клиент. Управляемое приложение.
4. compguru84 95 19.07.16 11:21 Сейчас в теме
(2) myr4ik07, Отвечу в ближайшее время
6. jaroslav.h 181 19.07.16 11:35 Сейчас в теме
(4)
спасибо, работает, бомба
&НаКлиенте
Перем КомПорт;

&НаКлиенте
Процедура ПриОткрытии()
	ПодключитьВнешнююКомпоненту("G:\log\ComPort_x32.dll","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
	КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
	КомПорт.ИмяПорта = "com3";	
	КомПорт.ОткрытьПорт();
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
	Сообщить(Данные);
	Сообщить(Источник);
	Сообщить(Событие);
КонецПроцедуры


Показать
compguru84; +1 Ответить
7. compguru84 95 19.07.16 11:37 Сейчас в теме
(6) myr4ik07, Это хорошо. Будут проблемы, пишите
jaroslav.h; +1 Ответить
9. RuslanGaliev 02.11.16 14:23 Сейчас в теме
(7) Компонента подключается, но внешнее событие так и не получил.
3. jaroslav.h 181 19.07.16 11:20 Сейчас в теме
У кого то подключилась данная компонента?
5. compguru84 95 19.07.16 11:23 Сейчас в теме
(3) myr4ik07, Подключать необходимо версию х32
8. sasha777666 328 20.10.16 13:23 Сейчас в теме
Как проверить используется ли порт чем-то другим
10. user921229 22.02.18 17:02 Сейчас в теме
ComPort_x64.dll не генерирует событие. кто нибудь подключал успешно?
11. herfis 515 22.02.18 17:26 Сейчас в теме
(10) Я после плясок вокруг разных наколенных компонет по работе с ком-портом остановился на старом добром MSCOMMLib, известном еще с 7.7 (майкрософтовский драйвер). Его повыпиливали, но по-прежнему можно найти, скачать и установить. Правда, чтобы он заработал, его еще нужно зарегистрировать, записав в реестр нужные ключи. Все это гуглится.
По внешнему событию через него работать не пробовал, но майкрософтовская дока говорит, что у него есть для этого событие OnComm. А в 8-ке есть оператор ДобавитьОбработчик, с помощью которого можно подписываться на события ком-объектов. Я таким образом успешно подписывался на события сторонних ком-объектов по работе со сканерами (которые не по технологии создания внешних компонент 1С писаны). Думаю, и тут должно получиться.
ЗЫ. И на всякий случай я бы заглянул в свежую библиотеку подключаемого оборудования - вдруг туда уже засунули православный драйвер.
12. tka4enk0 146 10.11.18 00:56 Сейчас в теме
Компонента вроде подключается. Открытие порта происходит без ошибок. Но внешнее событие не генерируется.
Так же если открыть какой нибудь монитор порта по этому номеру, то он свободно открывается и получается данные. Хотя при уже открытом порте должен был бы падать в ошибку.
criptid; Alv_prog; +2 Ответить
13. Alv_prog 24.12.18 13:16 Сейчас в теме
Почему автор не отвечает? Внешнее событие не генерируется!
"хотя в настоящее время и работает в реальных решениях" - это в каких интересно оно может работать, если не генерирует НИЧЕГО?
Что за обман? Хотите отзывов - ставьте скачку бесплатной! А так получается минус 1 стармани!
14. jaroslav.h 181 24.12.18 14:48 Сейчас в теме
(13)

&НаКлиенте
Перем КомПорт;

&НаКлиенте
Процедура ПриОткрытии()
    ПодключитьВнешнююКомпоненту("G:\log\ComPort_x32.dll","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
    КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
    КомПорт.ИмяПорта = "com3";    
    КомПорт.ОткрытьПорт();
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Сообщить(Данные);
    Сообщить(Источник);
    Сообщить(Событие);
КонецПроцедуры
Показать
15. Alv_prog 24.12.18 15:30 Сейчас в теме
(14) я читать умею, и ваш код прочитал и попробовал использовать сразу же. Но у меня х64 платформа. Со всеми вытекающими. И не только я написал что нет внешнего события.
16. jaroslav.h 181 24.12.18 16:41 Сейчас в теме
(15) если ты прочитал что х64 не работает, зачем качать и возмущения высказывать, думаешь что то изменилось ...
17. jaroslav.h 181 24.12.18 16:42 Сейчас в теме
(15) плюс он же пишет "Внимание! Компонента выпущена в бета версии, никаких гарантий на ее работу не предусмотрено"
18. ut2k5 15 16.05.19 09:37 Сейчас в теме
спасибо за материал, очень помогли
19. e-rogov 5 02.10.20 07:14 Сейчас в теме
20. criptid 16.10.20 14:50 Сейчас в теме
Доброго всем, кто-нибудь победил почему внешнее событие не отрабатывает? 8.3.15.1830 x86, подключаю x32.dll
21. gor-shilov 17.08.22 11:24 Сейчас в теме
Все работает, но замечено следующее: ВнешнееСобытие работает постоянно, но вес показывает тот, который был на момент открытия порта. Далее вес не меняется в Данные. Но если добавить строчки с закрытием и открытием порта, то вес обновляется. Подскажите можно ли и надо ли это решать. Или ничего страшного от-того что порты постоянно открываю и закрываю.

Перем КомПорт;

Процедура КнопкаВыполнитьНажатие(Кнопка)
	ПодключитьВнешнююКомпоненту("C:\БазыSSD\ComPort_x32.dll","allsp_1C_ComPort",ТипВнешнейКомпоненты.Native);
        КомПорт = Новый("AddIn.allsp_1C_ComPort.allsp_1C_ComPort");
	КомПорт.ИмяПорта = "COM8"; 
	КомПорт.РазмерБлокаДанных = 18; 
	КомПорт.Скорость = 9600;
	КомПорт.СтопБит = 0;
	КомПорт.БитДанных = 8; 
	КомПорт.Четность = 0; 
        КомПорт.ОткрытьПорт();
КонецПроцедуры

Процедура ВнешнееСобытие(Источник, Событие, Данные) // Истичник = COM_PORT, Событие = DATA_BLOCK
	Если Источник = "COM_PORT" и Событие = "DATA_BLOCK" Тогда
		ЭтаФорма.ЭлементыФормы.НадписьВес.Заголовок = Число(Сред(Данные,7,10));
	КонецЕсли;
	//КомПорт.ЗакрытьПорт();
	//КомПорт.ОткрытьПорт();
КонецПроцедуры
Показать
22. Pawlick 10 27.08.23 21:52 Сейчас в теме
Оставьте свое сообщение