Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получение данных с COM-порта в 1С 8.3 x64

Получение данных с COM-порта в 1С 8.3 x64
Я
   Mr-FReSH
 
28.03.19 - 10:43
Доброго времени суток!

1С 8.3+ x64. Стоит задача получить данные с устройства по COM-порту (простая строка).
Перелопатил половину интернета, почти все решения или под 7.7. или под 8.2 и в 8.3 не работают. проверял: нетленка, mscom, vk_rs_232, allsp_1C_ComPort

Есть ли у кого-то опыт получения данных из ком порта?
 
 
   Garykom
 
1 - 28.03.19 - 11:06
Драйвером сканера ШК обычным уже пробовал?
   Mr-FReSH
 
2 - 28.03.19 - 11:09
(1) Я все надеялся что до этого не дойдет, но уже открыл Розницу 2 и сейчас буду смотреть как он работает
   1Сергей
 
3 - 28.03.19 - 11:11
Винда (начиная с 95-ой, кажись) не даёт напрямую обращаться к комп-порту. Нужны дрова
   Mr-FReSH
 
4 - 28.03.19 - 11:18
(3) Но ведь тот же сканер ШК не требует установки дополнительных дров, все делается внутри 1С

Да и по типу той же нетленки (есть на инфостарте) драйвера никакие не ставятся
   Mr-FReSH
 
5 - 28.03.19 - 12:11
Если кому все таки интересно. Через розницу получилось поймать данные через компоненту сканера ШК. (добавил оборудование сканер, повесил его на порт и в этот порт подлкючил оборудование, в отладке попал во внешее событие)

Осталось только понять как вытащить оттуда эту компоненту =)
   Базис
 
6 - 28.03.19 - 12:13
(5) Под ограниченными правами ещё проверь, и в разных ОС.
   ManyakRus
 
7 - 28.03.19 - 12:45
1) компонент rs232.dll работает неплохо,
но:
1) только толстый клиент
2) 1С запускать от имени администратора компьютера

Сделал чтение с комп-порта в 1С из спец. оборудования

2) "...Через розницу получилось поймать данные"
Тонкий клиент ?
если тонкий то напишите потом как сделали :)
   dmpl
 
8 - 28.03.19 - 13:01
А чтение из файла "COM1" не работает?
   Mr-FReSH
 
9 - 28.03.19 - 13:10
(7) Да, тонкий клиент, пока удалось вытащить данные и ВРОДЕ как начать чтение порта. Борюсь с тем, что в рознице событие приходит, а в моей вытащенной компоненте нет. Сообщю сюда, если появится результат
   Mr-FReSH
 
10 - 28.03.19 - 13:34
Итак товарищи, удалось.

Компоненту можно достать из общих макетов конфигурации розница (на самом деле я думаю можно найти где-нибудь еще)
Называется Драйвер1ССканерШтрихкода
Подсовывается как двоичные данные в вашей конфигурации с любым названием

Дальше код

Вызывал из МодуляУправляемогоПриложения ПриНачалеРаботыСистемы, но думаю это не так важно

Сам код:

Процедура ПриНачалеРаботыСистемы()
    ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаРаботыCOM", "Scanner");
    ОбъектДрайвера = Новый ("AddIn.Scanner.Scanner");
    Результат = (ОбъектДрайвера.Подсоединить("СканерШтрихкода") = 0);
    ОбъектДрайвера.ИмяСобытия = "ПолученШтрихкод";
    ОбъектДрайвера.COMКодировка = "UTF-8";
    ОбъектДрайвера.БитДанных = 8;
    ОбъектДрайвера.Порт = 1;
    ОбъектДрайвера.Скорость = 9600;
    ОбъектДрайвера.СуффиксСтрока = Символы.ПС;
    
    Результат = (ОбъектДрайвера.Занять(1) = 0);
    ОбъектДрайвера.УстройствоВключено = 1;
    ОбъектДрайвера.ПосылкаДанных      = 1;
    ОбъектДрайвера.ОчиститьВход();
    ОбъектДрайвера.ОчиститьВыход()
КонецПроцедуры

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
    а=0;
КонецПроцедуры


Код внутри обработки внешнего события просто для точки останвы использовал
Инициализации компонены выглядит несуразно, просто смотрел как работает в рознице и подтыкал свои данные;
И вуаля, оно заработало =)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.