Получилось так, что на одной из АЗС понадобилось обрабатывать данные приходящие в COM порт с внешнего устройства и передать эти данные не в 1с. От этого задания и родилась выложенная утилита. Когда я сел разбираться с маркировкой товаров для ККМ, то она неожиданно пригодилась! А потом подвернулся сканер ШК honeywell, который не хотел с первого раза подключаться к Рознице 2.3, а нетерпеливые покупатели уже стучали ножками и начинали закипать. (как в последствии выяснилось не был прописан суффикс ). Легким движением руки были добавлены несколько строк в ЧекККМ и через ПодключитьОбработчикОжидания торговля восстановилась. Затем утилита прижилась в самописной конфигурации, где понадобилось обрабатывать штрихкоды. В общем выкладываю – может кому и пригодится.
Как это работает:
"!RunReadComPort.bat"
rem ReadComPort.exe COMХ Скорость СтопБит Четность ЧислоБит КопитьПрочитанныеДанные
ReadComPort.exe COM9 9600 1 0 8 1
1.Это 32 битное приложение.
2.Программа не позволяет запустить себя дважды.
3.При запуске без параметров выдает инструкцию
4.При запуске с параметрами свертывается в SysTray
5.После получения данных из COM порта записывает данные в каталог запуска в папке DATA
6.Имя файла содержит ГГГГММДД_ЧЧММСС_МИЛЛИСЕК.dat – если отсортировать в каталоге по имени, то получим данные в порядке поступления
7.Файлы копятся и не удаляются – удаляйте самостоятельно после обработки
8.Есть возможность сразу посмотреть, что приходит в COM. Для этого идем в SysTray и кликаем на ярлыке. В появившемся меню выбираем пункт «Показать». Если в руках сканер ШК – пикаем и в окне видим что пришло в порт
Первая строка: дата события
Вторая: данные в HEX
Третья: данные в строковом виде
9.Максимально обрабатывает 400 байт
10.Что бы завершить работу надо кликнуть на «Выход»
Как приспособить в 1с.
процедура ЧтениеComPort()
НайденныеФайлы=НайтиФайлы("C:\ReadComPort\DATA","*.dat");
Для каждого Файл из НайденныеФайлы Цикл
Если Файл.ЭтоКаталог() Тогда
Продолжить;
КонецЕсли;
ф=новый ЧтениеТекста(Файл.ПолноеИмя);
Данные=ф.ПрочитатьСтроку();
ф.Закрыть();
УдалитьФайлы(Файл.ПолноеИмя);
СШКОбработатьШтрихкод(Сокрлп(Данные));
КонецЦикла;
КонецПроцедуры
Процедура ПриОткрытии()
ПодключитьОбработчикОжидания("ЧтениеComPort", 1);
КонецПроцедуры
Гарантия возврата денег
ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.
Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.
Для возврата оплаты просто свяжитесь с нами.