Как автоматизировать ввод данных банковской карты в 1С с помощью карт-ридера?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с выплатами физическим лицам или регистрации клиентов часто возникает задача минимизации ошибок ручного ввода данных банковских карт. Ввод 16-значного номера и ФИО владельца вручную — процесс трудоемкий и чреватый опечатками. Разберем, насколько реально автоматизировать этот процесс в среде 1С, какие технические стандарты это регулируют и с какими ограничениями можно столкнуться.

Технические основы считывания данных: стандарты магнитных дорожек

Для начала проанализируем, какая именно информация хранится на пластиковой карте. Большинство банковских карт соответствуют стандарту ISO/IEC 7813. На магнитной полосе обычно выделяют две или три дорожки (трека):

  1. Дорожка 1 (Track 1): Это единственная дорожка, которая потенциально содержит имя владельца латиницей. Она была изначально разработана для авиационной отрасли и вмещает до 79 алфавитно-цифровых символов. Именно здесь 1С может «увидеть» фамилию и имя.
  2. Дорожка 2 (Track 2): Содержит только цифры. Здесь записан номер карты (PAN), срок действия и сервисный код. Имени владельца на этой дорожке нет. Именно эту дорожку чаще всего считывают банковские терминалы для проведения транзакций.
  3. Дорожка 3: Используется редко и обычно не несет полезной информации для идентификации клиента в ритейле.

Рассмотрим важный нюанс: современные банки, особенно при выпуске неименных (моментальных) карт или карт системы «Мир», могут оставлять поле имени на 1-й дорожке пустым либо записывать туда техническую заглушку, например, MR CARDHOLDER или VALUED CUSTOMER. Таким образом, автоматизация получения ФИО через ридер не будет работать для 100% карт.

Методы подключения карт-ридера к 1С

Выясним, как интегрировать оборудование в программную среду. Карт-ридеры магнитных карт для 1С являются «Устройствами ввода». Разберем два основных способа подключения:

1. Режим эмуляции клавиатуры (HID-устройство)

В этом режиме ридер определяется операционной системой как обычная клавиатура. При «прокатывании» карты данные мгновенно «печатаются» в то поле, где установлен курсор. Рассмотрим недостатки этого метода:

2. Режим Native-драйвера (COM-порт / БПО)

Это профессиональный метод. 1С работает с устройством через БиблиотекаПодключаемогоОборудования (БПО). При считывании карты генерируется Внешнее событие, которое программа перехватывает автоматически, даже если курсор не стоит в поле ввода. Разберем пример кода для обработки такого события:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Источник = "MSR" Тогда // Magnetic Stripe Reader
        ДанныеКарты = РасшифроватьДанныеРидера(Данные);
        Объект.НомерКарты = ДанныеКарты.Номер;
        Объект.ВладелецФИО = ДанныеКарты.Имя;
    КонецЕсли;
КонецПроцедуры

Чтение данных через NFC: мифы и реальность

Проанализируем возможность использования бесконтактных считывателей. Многие полагают, что данные через NFC полностью зашифрованы. Однако, согласно протоколу EMV Contactless, номер карты (PAN) и срок действия часто передаются в открытом виде для совместимости. Их можно считать обычным NFC-ридером или даже смартфоном с соответствующим ПО.

Однако с ФИО ситуация сложнее. В большинстве современных российских карт (особенно системы «Мир») имя владельца через NFC не передается из соображений конфиденциальности. Если ваша задача — обязательное получение ФИО, NFC-ридер, скорее всего, окажется бесполезным.

Безопасность и юридические риски (PCI DSS)

Важно помнить о безопасности. Хранение полных номеров банковских карт в базе данных 1С накладывает на организацию обязательства по соблюдению международного стандарта PCI DSS. Рассмотрим основные правила:

Посмотрим на ситуацию со стороны службы безопасности. Использование несертифицированных ридеров в публичных местах может вызвать подозрение в «скимминге» (краже данных карт). Если вы внедряете такое решение, убедитесь, что оно регламентировано внутренними приказами и клиент уведомлен о цели считывания карты.

Альтернатива: Технология распознавания (OCR)

Поскольку магнитные полосы постепенно уходят в прошлое, а чипы и NFC не всегда отдают имя, рассмотрим альтернативный вариант — оптическое распознавание. Современные SDK позволяют использовать обычную веб-камеру для мгновенного сканирования лицевой стороны карты. Проанализируем преимущества:

  1. Работает даже с картами без магнитной полосы.
  2. Считывает эмбоссированный (выпуклый) или напечатанный текст имени.
  3. Не требует специального дорогостоящего оборудования — достаточно бюджетной камеры.

В 1С это реализуется через вызов внешней компоненты, которая обрабатывает видеопоток и возвращает текстовые значения номера и имени. Это наиболее современный и надежный способ автоматизации на текущий момент.

Итоговые рекомендации

Резюмируя вышесказанное, для реализации задачи в 1С выполним следующие шаги:

  1. Выберем оборудование, поддерживающее чтение Track 1 (если нужно ФИО) и имеющее драйвер для эмуляции COM-порта.
  2. Используем БиблиотекаПодключаемогоОборудования для интеграции устройства в конфигурацию.
  3. Пропишем логику обработки ВнешнееСобытие для парсинга считанной строки.
  4. Предусмотрим возможность ручного ввода для карт, где магнитная полоса повреждена или данные на ней отсутствуют (что случается все чаще).

Помните, что техническая реализация — это лишь половина дела. Всегда учитывайте правовой аспект работы с персональными данными и банковской информацией, чтобы автоматизация не обернулась проблемами для бизнеса.

← На главную