|
Получение данных с COM-порта в 1С 8.3 x64 | ☑ | ||
---|---|---|---|---|
0
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 Есть ли у кого-то опыт получения данных из ком порта? |
|||
1
Garykom
гуру
28.03.19
✎
11:06
|
Драйвером сканера ШК обычным уже пробовал?
|
|||
2
Mr-FReSH
28.03.19
✎
11:09
|
(1) Я все надеялся что до этого не дойдет, но уже открыл Розницу 2 и сейчас буду смотреть как он работает
|
|||
3
1Сергей
28.03.19
✎
11:11
|
Винда (начиная с 95-ой, кажись) не даёт напрямую обращаться к комп-порту. Нужны дрова
|
|||
4
Mr-FReSH
28.03.19
✎
11:18
|
(3) Но ведь тот же сканер ШК не требует установки дополнительных дров, все делается внутри 1С
Да и по типу той же нетленки (есть на инфостарте) драйвера никакие не ставятся |
|||
5
Mr-FReSH
28.03.19
✎
12:11
|
Если кому все таки интересно. Через розницу получилось поймать данные через компоненту сканера ШК. (добавил оборудование сканер, повесил его на порт и в этот порт подлкючил оборудование, в отладке попал во внешее событие)
Осталось только понять как вытащить оттуда эту компоненту =) |
|||
6
Базис
naïve
28.03.19
✎
12:13
|
(5) Под ограниченными правами ещё проверь, и в разных ОС.
|
|||
7
ManyakRus
28.03.19
✎
12:45
|
1) компонент rs232.dll работает неплохо,
но: 1) только толстый клиент 2) 1С запускать от имени администратора компьютера Сделал чтение с комп-порта в 1С из спец. оборудования 2) "...Через розницу получилось поймать данные" Тонкий клиент ? если тонкий то напишите потом как сделали :) |
|||
8
dmpl
28.03.19
✎
13:01
|
А чтение из файла "COM1" не работает?
|
|||
9
Mr-FReSH
28.03.19
✎
13:10
|
(7) Да, тонкий клиент, пока удалось вытащить данные и ВРОДЕ как начать чтение порта. Борюсь с тем, что в рознице событие приходит, а в моей вытащенной компоненте нет. Сообщю сюда, если появится результат
|
|||
10
Mr-FReSH
28.03.19
✎
13:34
|
Итак товарищи, удалось.
Компоненту можно достать из общих макетов конфигурации розница (на самом деле я думаю можно найти где-нибудь еще) Называется Драйвер1ССканерШтрихкода Подсовывается как двоичные данные в вашей конфигурации с любым названием Дальше код Вызывал из МодуляУправляемогоПриложения ПриНачалеРаботыСистемы, но думаю это не так важно Сам код: Процедура ПриНачалеРаботыСистемы() ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаРаботыCOM", "Scanner"); ОбъектДрайвера = Новый ("AddIn.Scanner.Scanner"); Результат = (ОбъектДрайвера.Подсоединить("СканерШтрихкода") = 0); ОбъектДрайвера.ИмяСобытия = "ПолученШтрихкод"; ОбъектДрайвера.COMКодировка = "UTF-8"; ОбъектДрайвера.БитДанных = 8; ОбъектДрайвера.Порт = 1; ОбъектДрайвера.Скорость = 9600; ОбъектДрайвера.СуффиксСтрока = Символы.ПС; Результат = (ОбъектДрайвера.Занять(1) = 0); ОбъектДрайвера.УстройствоВключено = 1; ОбъектДрайвера.ПосылкаДанных = 1; ОбъектДрайвера.ОчиститьВход(); ОбъектДрайвера.ОчиститьВыход() КонецПроцедуры Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) а=0; КонецПроцедуры Код внутри обработки внешнего события просто для точки останвы использовал Инициализации компонены выглядит несуразно, просто смотрел как работает в рознице и подтыкал свои данные; И вуаля, оно заработало =) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |