|   |   | 
| 
 | v7: Работа с COM | ☑ | ||
|---|---|---|---|---|
| 0
    
        Sima42 08.07.21✎ 22:11 | 
        Доброго времени суток. Есть сканер ШК который работает через COM. С помощью vk_rs232 происходит обмен. Примерно через 1 секунду приходят данные и потом они обрабатываются и записываются. Проблема в том что в хаотичном порядке прекращается обмен. У меня такое впечатление что программа не успевает сделать проверку а уже пришли новые данные поэтому СОМ и виснет. Как можно выкрутиться из такой ситуации?     | |||
| 1
    
        victuan1 09.07.21✎ 04:10 | 
        А почему не использовать драйвер сканера ScanOpos или Атоловский?     | |||
| 2
    
        Sima42 09.07.21✎ 07:07 | 
        (1) Да я как то и незнаю. Вроде как этот все время использовал. Правда там менее жёсткие требования были.     | |||
| 3
    
        Duke1C 09.07.21✎ 09:10 | 
        (0) "С помощью vk_rs232 происходит обмен" - Месье знает толк в извращениях)
 Или настолько древняя конфигурация? Работает - не трогаем | |||
| 4
    
        Sima42 09.07.21✎ 09:37 | 
        (3) Конфигурация самописная. Посоветуйте другое решение.     | |||
| 5
    
        Sima42 09.07.21✎ 09:40 | 
        Сегодня определил что пропадает связь не из за обработки а так просто. Бывает 2000 раз придут а бывает первый скан сделает и ступор.     | |||
| 6
    
        serpentt 09.07.21✎ 10:31 | 
        (5) Вам ответили в (1)     | |||
| 7
    
        victuan1 09.07.21✎ 11:55 | 
        (1) Даже ссылку дам на атоловский бесплатный с инструкцией по установке https://disk.yandex.ru/d/6sLU_ZtW3TEXwm     | |||
| 8
    
        Sima42 09.07.21✎ 13:29 | 
        (7) Спасибо!     | |||
| 9
    
        MWWRuza гуру 10.07.21✎ 19:39 | 
        А вот процедура в модуле формы, где нужен сканер:
 Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) Если Событие= "BarCodeValue" Тогда ШкАМ = СокрЛП(Данные); Сообщить(ШкАМ); // А тут, можем делать с полученным ШК, что хотим... КонецЕсли; Попытка Сканер.ПосылкаДанных = 1; Исключение Сообщить("Сканер не подключен!"); КонецПопытки; КонецПроцедуры В глобальном модуле объявить экспортную переменную: Перем Сканер Экспорт; и разместить в процедуре ПриНачалеРаботыСистемы() вызов функции ПодключитьСканер(): Функция ПодключитьСканер() Рез = 0; Если ЗагрузитьВнешнююКомпоненту("ScanOpos.dll") = 0 Тогда ОписаниеРезультата = "Не удалось загрузить внешнюю компоненту ScanOpos.dll !"; Иначе Попытка Сканер = СоздатьОбъект("AddIn.Scanner"); Исключение КонецПопытки; Если ПустоеЗначение(Сканер) = 1 Тогда ОписаниеРезультата = "Не удалось создать объект внешней компоненты с программым идентификатром AddIn.Scanner"; Иначе Если Сканер.УстройствоВключено = 1 Тогда Рез = 1; Иначе Если Сканер.Подсоединить("Scanner") <> 0 Тогда ОписаниеРезультата = "Не удалось подсоединить устройство"; Иначе Если Сканер.Занять(1) <> 0 Тогда ОписаниеРезультата = "Не удалось получить монопольный доступ у устройству"; Иначе Сканер.УстройствоВключено = 1; Если Сканер.Результат <> 0 Тогда ОписаниеРезультата = "Не удалось включить устройство"; Иначе Рез = 1; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если Рез = 1 Тогда // очищаем буфер компоненты Сканер.ОчиститьВход(); Сканер.ОчиститьВыход(); // включаем режим немедленной посылки данных Сканер.ПосылкаДанных = 1; КонецЕсли; Возврат Рез; КонецФункции // Подключить(() Правда, это под 1С ScanoPos, но, это не принципиально, под АТОЛ примерно то-же, просто под рукой было только под 1С. Я АТОЛовской компонентой практически не пользуюсь, обхожусь 1Совской, но если решите все-таки использовать ВК от АТОЛ - то нужно версию не старше 6.хх(вроде, 6.24), иначе они за нее денег хотят, и более старшие версии, без ключа защиты или программной лицензии, вызывают задержку при сканировании, что-то около секунды или даже больше. | |||
| 10
    
        Sima42 11.07.21✎ 17:32 | 
        (9) Спасибо. Сделал на ScanOps завтра буду тестировать     | |||
| 11
    
        victuan1 12.07.21✎ 07:05 | 
        (9) в (7) у меня как раз ссылка на бесплатную версию.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |