Работа в 1С с купюроприемником CashCode SM-2073RU, диспенсерами ND-300KM, хоппером serial compact hopper MKII через последовательный COM порт.

06.01.14

Интеграция - POS терминал

В статье описывается обработка, управляющая купюроприемником, диспенсерами и хоппером через последовательный порт.

Скачать файлы

Наименование Файл Версия Размер
Обработка "устройства терминала оплаты"
.epf 12,43Kb
126
.epf 12,43Kb 126 Скачать

При запуске обработка открывает последовательные порты с подключенными к ним устройствами и управляет ими с помощью команд в 16-ричном виде. Работа с последовательным портом происходит с помощью известной внешней компоненты Romix`а vk-rs232_hex, которая избавила меня от мучения над вопросом - как посылать на устройство 16-ричные команды, когда все символы в кодировке Unicode. В общем, если вам известны другие способы работы с последовательным портом - проблем не должно быть.

   Каждое из этих устройств имеет свою особенность, из-за чего мне пришлось много повозиться. Вот то, с чем я столкнулся:

1. Купюроприемник. Разбираться в документации по управлению этим устройством было достаточно сложно. Выход нашел такой - купил программный сканер последовательного порта. Конечно, можно было попробовать найти бесплатный, или попробовать уложиться в срок, отведенный демо-версией программы, но мне так показалось проще. После этого запустил тестовую утилиту купюроприемника TestCCNET_v15 (скачать можно, к примеру, здесь) и просто переписал то, как настраивает устройство на прием купюр тестовая утилита - дальнейшее управление настроил легко. Пришлось также писать процедуру вычисления CRC16-CCITT для создания контрольной суммы (в документации для купюроприемника, приведенной по ссылке ниже, есть примеры этой процедуры на языках С и Pascal, причем в процедуре на С допущена небольшая ошибка). Другие встреченные проблемы - не принимал купюры, выдавая сообщение "Rejecting due to Insertion" (как я понял при поиске решения проблемы, сообщение могло быть и другим) - решилось вскрытием верхней части и протиркой линз.

2. Диспенсеры. Для этих устройств особенный режим открытия порта - контроль четности нужно поставить в "четный" - если этого не сделать, прибор виснет, и даже если потом порт будет открыт правильно, реагировать на команды не будет - понадобится нажатие кнопки "ресет" позади устройства. В управлении - самое простое устройство, контрольная сумма тоже просто вычисляется - простым суммированием чисел в команде.

3. Хоппер. Имеет двунаправленную последовательную линию данных. Для подключения необходимо купить конвертер cctalk-rs232 или cctalk-USB. Я остановился на втором варианте, так как у компьютера аппаратного последовательного порта нет, a при подключении конвертера cctalk-USB и установки драйвера виртуальный последовательный порт появляется, что и нужно было для меня. Это устройство - самое чувствительное к температуре - в очень холодном помещении отказывался работать, пока не был включен обогрев. Кроме того, при подключении конвертера надо обратить внимание на напряжение питания - хоппер имеет напряжение питания 24В, конвертер может иметь 12В, как и было в моем случае. Мне пришлось запитывать хоппер и конвертер отдельными блоками питания, при этом соединить провода земли и данных вручную. Далее, из-за особенности двунаправленной линии данных, при посылке команды на устройство в ответ дублируется посланная команда, и только потом приходит ответ от хоппера. То есть, если в ответ на команду приходит только сама команда - хоппер по каким-либо причинам не работает, работает только сам конвертер. Управление немного замороченное, но разобраться можно, тем более, что в документации оно достаточно ясно описано. Контрольная сумма в команде - "дополнение до 256 остатка от деления на 256 суммы чисел команды" :-) - в обработке процедура вычисления контрольной суммы, конечно, есть.

Также в процессе настройки бывало так, что устройства отказывались работать, пока не перезагружался компьютер.

Кроме того, устройства отказывались работать, когда номер порта был двухзначный, поэтому я назначал номера портов устройствам начиная с первого номера через панель управления Windows.

В процессе разработки пользовался документацией к устройствам: к диспенсерам, к купюроприемнику (cashcode net interface), к хопперу (описание протокола cctalk, serial compact hopper protocol manual, compact hopper tecnical manual), также пришлось написать процедуры перевода из/в 16-ричный вид.

Обработка, запускаясь, получает через параметр сумму, которую она должна принять купюрами, запускает на прием купюроприемник и выдает сдачу, если принято денег больше. Сдача выдается купюрами 100 руб, 50 руб и монетами 10 руб, купюры в 5000 руб не принимаются. Также не было возможности настроить на прием купюры 10 руб, но похоже, это просто не понадобится.

Обработка прошла тестирование на уровне "запустили, деньги приняла, сдачу выдала". Наверняка в ней есть недостатки и недоработки - к примеру, не описаны все возможные сообщения хоппера при отказе, нет полного контроля за наличием монет (мне это было не нужно). НО! Обработка работает, при этом показана возможность работы с устройствами без необходимости покупать сторонние внешние компоненты и устанавливать какие-либо драйвера (кроме разве что драйверов виртуального последовательного порта), что я не смог найти в интернете, когда начинал разработку сам.

Разработана для конфигурации с управляемыми формами, но по сути ее легко переделать в обычное приложение. Является обработкой конфигурации (не внешней) - хотя должна работать и как внешняя, только для этого понадобится переписать передачу параметров.

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

Купюроприемник Cashcode SM диспенсер ND-300 хоппер serial compact hopper MKII crc16-ccitt перевод в 16-ричное счисление COM порт

См. также

Медиадисплей. Рекламный информационный монитор для покупателя.

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

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52120    34    69    

43

Обработка обслуживания терминалов пин-пад Ingenico IPP320/350 для УТ 10.х

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

Обработка обслуживания эквайринговых терминалов пин-пад Ingenico и АТОЛ PT-5 ( ПО Arcus2) позволяет подключить банковские терминалы Ingenico и АТОЛ PT-5 к 1С:Управление торговлей редакция 10. Может быть использована в 1С: Управление производственным предприятием 1.3 и 1С: Комплексная автоматизация 1.1 и 1С:Розница 1.х

4200 руб.

14.05.2019    59689    135    178    

119

Подключение и настройка нескольких терминалов оплаты Сбербанка РФ через RDP

POS терминал Платформа 1С v8.3 1С:Управление торговлей 10 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Методика настройки и подключения нескольких терминалов оплаты Сбербанка РФ при работе в 1С:УправлениеТорговлей 10.3 на сервере, через удаленный рабочий стол.

2000 руб.

18.08.2020    35980    34    19    

18

Краткий обзор терминалов Ingenico, ПО ARCUS2, ПО Arcus NET Server

POS терминал Бесплатно (free)

Какие модели терминалов Ingenico существуют? в чем их отличие? Что такое ARCUS2? С помощью чего подключить терминал Ingenico по сети?

15.04.2021    12351    Torin    23    

20

Подключение терминала эквайринга Сбербанка в УТ 10.3 по RDP

POS терминал Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Абонемент ($m)

Измененная стандартная обработка "SberBankES_v2.epf". Добавлена возможность указания папки с gate.dll, для вызова функций работы с эквайринговым терминалом.

1 стартмани

11.01.2021    24248    106    Sandmansss    14    

7

Чтение файла выгрузки на кассу, для последующего анализа

POS терминал Кассовые операции Розничная торговля Платформа 1С v8.3 Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

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

1 стартмани

09.01.2018    11887    4    astratek    3    

3

Программа для управления терминалами Ingenico

POS терминал Розничная торговля Абонемент ($m)

Простенькая программка для управления эквайринговыми терминалами ingenico, с установленным комплексом acrus2.

2 стартмани

12.03.2017    23993    13    kolabaister    6    

3

Отправка событий на камеру TRASSIR ActivePOS по TCP

POS терминал Кассовые операции Розничная торговля Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Обработка позволяет присылать события в ActivePOS от имени кассового терминала. Сообщения в этом формате можно присылать как по TCP, так и UDP.

1 стартмани

06.01.2017    17750    40    sm2701    10    

4
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dndw 6 29.08.15 18:52 Сейчас в теме
При попытке запустить ругается на {Обработка._РаботаСКупюроприемником.Форма.Форма.Форма(49,21)}: Тип не определен (ТаблицаЗначений)
СписокКоманд=Новый <<?>>ТаблицаЗначений; (Проверка: Тонкий клиент).
Подскажите что делаю не правильно?
2. Serg3141 11 30.08.15 01:51 Сейчас в теме
(1) dndw, обработка работает под толстым клиентом.
3. dearwhynot 15.11.15 17:49 Сейчас в теме
бодрого здоровья! Сергей, хотел попросить взглянуть на одно ТЗ, как раз по теме той что выше, напишите мне плиз dearwhynot@me.com , пообщаемся.
4. Serg3141 11 15.11.15 21:20 Сейчас в теме
(3) dearwhynot, мне проще через личку инфостарта (пока, по крайней мере). Сам лично я ни какую работу не беру - со своей завал.
5. anco27 26.07.17 11:05 Сейчас в теме
Добрый день!

Функция ПодключитьВнешнююКомпоненту("AddIn.vk_rs232") выдает Ложь. В чем может быть проблема?

После этого обработка перестает работать (((
6. Горыня 133 19.09.17 15:02 Сейчас в теме
(5) Все работает, только что попробовал. 1. Регистрируем компоненту, для этого запустить cmd с правами администратора
2. Первый раз надо запустить 1С тоже с правами администратора. Это все в описани компоненты есть.

Незнаю, что сподвигло автора выложить обработку, эта обработина стоит мнооого денег. Бааальшой респект и уважуха, так держать:)
Serg3141; +1 Ответить
7. anco27 21.09.17 10:37 Сейчас в теме
8. dablack 09.12.18 13:53 Сейчас в теме
Подскажите пожалуйста, чисто по купюро приемнику меня интересует вопрос как вы реализовали порядок действий.
1. Инициализируем купюроприемник rs232.ЗаписатьСтроку("02 03 06 30 41 b3");
Во внешнем событии проверяем инициализация успешна или нет.
2. Через обработчик ожидания каждые 1 сек отправляем rs232.ЗаписатьСтроку("02 03 06 33 da 81");
Во внешнем событии читаем данные о внесенных купюрах, например rs232.ЗаписатьСтроку("02 03 07 81 05 f9 7d");
Примерно так ? Если правильно понял документацию, то в бесконечном цикле надо отправлять команду 33H ?
9. Serg3141 11 09.12.18 18:42 Сейчас в теме
(8)Немного не так. Вообще, я ожидал, что разработчики скачают обработку и посмотрят - дам все достаточно прозрачно.
Первый пункт правильный. Далее, ни каких отправок самих по себе каждую секунду нет - просто во внешнем событии есть процедура, которая обрабатывает приходящие данные, а в ответ как раз и отсылает нужные команды, в том числе и указанную во втором пункте. Там получается, насколько я вижу в коде сейчас и помню (пять лет прошло однако) приходит от купюрника команда, в ответ ей должен в течение небольшого интервала прийти от нас отклик:
К примеру (без срс):
"02 03 06 00" // - приходит от купюрника, АСК
"02 03 06 33" // - посылаем мы
То есть там не просто бесконечный цикл, а отклик на купюрник идет. Иначе ни чего не получится.
А вообще, код процедуры не большой.
10. dablack 04.11.19 16:09 Сейчас в теме
Понимаю, что много времени прошло, но еще момент один подскажите.
Периодически купюроприемник отказывается продолжать принимать купюры.
Залогировал все что проходит через внешние событие, получается так:
<-- вх. 02 03 07 81 05 F9 7D // пришло от кп событие распознавания банкноты (500р.)
исх. --> 02 03 06 00 C2 82 // в ответ отправляю ASK
исх. --> 02 03 06 33 DA 81 // и POLL

........... и все, больше он не отвечает
причем иногда можно хоть 100 банкнот принять, а иного после первой принятой банкноты такая проблема.
Вдруг сталкивались, а то уже варианты решения проблемы кончились...
11. user763959 20.05.21 16:40 Сейчас в теме
Что-то на внешнее событие никак не реагирует, когда купюры вставляем, что может быть?
12. bashin.maxim 10.03.22 21:25 Сейчас в теме
Автору респект. Очень ценная штука.
Оставьте свое сообщение