Использование считывателя(ридера) магнитных карт в native 1С под Linux

14.08.20

Интеграция - Эквайринг/ридер магнитных карт

Обход проблемы отсутствия драйверов торгового оборудования для 1С под Linux

Как известно, некоторое торговое оборудование в 1С под Linux использовать невозможно из-за отсутствия соответствующих драйверов, особенно это касается конфигураций, оставшихся на обычных формах.

У меня имеется клиент, который долго работал на связке 1С(несколько конф на обычных формах)+XUbuntu+NX+Wine@Etersoft, однако Wine@Etersoft перестал устраивать (не работают программные лицензии, проект заброшен и т.п.), однако перейти на native 1C linux-клиент не получалось, т.к. имелось несколько считывателей (ридеров) магнитных карт, которые без wine в 1С запускать не получалось.

Однако сегодня я докопался до рабочего варианта и это простой шелл-скрипт запускаемый из 1С!

Вот примерный вариант получения кода магнитной карты:

ТекстСкрипта = "#!/bin/bash
|rm /tmp/result
|stty -F /dev/ttyUSB0 raw
|stty -F /dev/ttyUSB0 -echo
|while read -rs -n 1 c && [[ $c != '?' ]]
|do
|  echo ""$c""
|done < /dev/ttyUSB0 >> /tmp/result";

РаздРазделитель = "\n";
ИмяВремФайла = ПолучитьИмяВременногоФайла();
Скрипт = Новый ЗаписьТекста(ИмяВремФайла,,,,РаздРазделитель);
Скрипт.Записать(ТекстСкрипта);
Скрипт.Закрыть();

КомандаСистемы("mv "+ИмяВремФайла+" ~/scanscript");
КомандаСистемы("chmod +x ~/scanscript");
КомандаСистемы("~/scanscript");

Текст = Новый ЧтениеТекста("/tmp/result");
Результат = Текст.Прочитать();
Текст.Закрыть();

КомандаСистемы("rm ~/scanscript");

Результат = СтрЗаменить(Результат,Символы.ПС,"");

Сообщить(""+Результат);

Замечания :

  • Используется /dev/ttyUSB0 - это VirtualCOM порт, так что думаю порядочное количество устройств можно так обработать
  • КомандаСистемы("~/scanscript") ожидает ввода именно кода магнитной карты, который оканчивается на ? если у вас не так - она зависнет - правьте текст скрипта
  • Новый ЗаписьТекста("~/scanscript") выдавал ошибку, поэтому пришлось заморочиться с mv
  • КомандаСистемы ждет выполнения, причем и в управляемых формах, так что код должен работать и под упр. форм
  • не ошибитесь с параметрами rm :)
  • Скорее всего скрипт можно и оптимизировать, например не использовать -echo и посимвольный вывод, но в linux я не особо специалист, хотя именно знание того что в linux устройства могут быть обработаны через файлы и натолкнуло на эту идею
  • ВАЖНО! Для работы с этим скриптом из 1С пользователь должен иметь права на чтение у файла /dev/ttyUSB0 (sudo o+r /dev/ttyUSB0) - для Debian-based дистрибутивов достаточно добавить пользователя в группу dialout 

ридер оборудование linux линукс

См. также

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Устали вручную дозаполнять и корректировать документы по банку после загрузки банковской выписки? С помощью правил обработки банковской выписки вы сможете автоматически определять правильный вид хозяйственной операции, заполнять расшифровку, аналитику платежа и многое другое.

15000 руб.

21.03.2023    11576    77    16    

65

Эквайринг/ридер магнитных карт Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

Обработка обслуживания «Эквайринговые терминалы TACTILION» для УТ 10.х предназначена для взаимодействия с терминалами «TACTILION G201» и поддерживает x86/x64 архитектуру платформ 1С:Предприятие.

1 стартмани

22.10.2024    298    0    Torin    0    

3

Эквайринг/ридер магнитных карт СБП. Оплата по QR-коду Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

Обработка обслуживания «ИНПАС:Эквайринговые терминалы UNIPOS(ФЗ-491) 1.х» для УТ 10.х использует новый драйвер «ИНПАС:Эквайринговые терминалы UNIPOS(ФЗ-491)» и поддерживает x86/x64 архитектуру платформ 1С:Предприятие.

1 стартмани

19.09.2024    661    6    Torin    2    

5

Банковские операции POS терминал Эквайринг/ридер магнитных карт Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Абонемент ($m)

Обработка обслуживания «Эквайринговые терминалы Сбербанк 2.Х» для УТ 10.х использует новый драйвер «1С:Эквайринговые терминалы Сбербанк 2.x» . Для Windows и Linux x32/x64 архитектур драйвера «1С:Эквайринговые терминалы Сбербанк 2.x» реализует взаимодействие с терминалами Сбербанка через утилиту sb_pilot (для Windows входит в дистрибутив WinCLI Сбербанка).

5 стартмани

13.08.2024    2115    44    Torin    12    

9

Печатные формы Кассовые операции Эквайринг/ридер магнитных карт Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

Иногда при оплате товаров и услуг по эквайрингу появляется необходимость дополнительно распечатать приходный кассовый ордер на сумму оплаты. Создана внешняя обработка для конфигурации Управление нашей фирмой 3.0 для документа "Операции по платежным картам".

1 стартмани

18.07.2024    413    2    aleksandr_leiman    0    

0

Эквайринг/ридер магнитных карт Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье рассматривается подключение и настройка считывателей магнитных карт, а также их использование в 1С для приема идентификаторов магнитных карт

20.05.2024    1715    slavik27    10    

6
Оставьте свое сообщение