Волею судьбы пришлось обновить все эквайринговые терминалы в своей организации. Раньше были неуправляемые терминалы, поэтому об актуальности библиотеки драйверов в 1С я не беспокоился. Сумма в терминалы вводилась вручную, они сами себе печатали чек, все было хорошо. А сейчас я решил взять новенькие ingenico ipp320, управляемые с компьютера, и не имеющие в себе принтеров слипов. Встроенного драйвера в моей конфигурации не было, с наскоку импортировать новую версию библиотеки подключаемого оборудования не удалось, так как версия конфигурации старая, очень сильно допиленная, и конфликты вылезали в самых неожиданных местах. И так получилось, что терминал оказался нужен вот прямо вчера.
Пришлось вспомнить молодость, и быстренько написать программку для управления терминалом, и печати слипа, минуя 1С.
Тут надо прерваться, и описать, как ожно работать с терминалом. Есть программный комплекс arcus2, который, как правило, дает представитель банка. Есть какой то com-интерфес, и для олдскулла — специальная программка CommandLineTool, которая работает из командной строки. Свойства платежа ей задаются большим набором параметров командной строки. Дальше программа связывается с терминалом, и когда тот заканчивает, записывает результат rc.out, и чек, внешний вид которого кодируется в банке, в файл cheq.out. Дальше в общем то просто — надо посмотреть в этот самый rc.out и узнать, что собственно, у нас получилось, и напечатать слип из cheq.out.
Как видно, ничего сложного. Но без нормально UI интерфейса тут делать нечего.
Вот за эту задачу и отвечает публикуемое решение. В программу вводим параметры задачи, отправляем их в CommandLineTool, потом, когда та заканчивает, получаем итог, и печатаем чек на принтер.
Настройки программы хранятся в файле arccomm.ini, там есть два радела — параметры командной строки CommandLineTool, и настройки самой программы. Необходимо выбрать принтер для печати, я купил для этой цели noname принтер чеков, и если принтер поддреживает автоообрезку, поставить соответствующую галочку.
Штатные параметры CommandLineTool уже записаны в параметрах, если у вашей версии терминала они отличаются — можно поправить. Место, куда вставляется сумма, кодировано XXX, место, куда вставляется код авторизации для возврата — VVV.
Важный момент — в arcus2 расшифровки результата операции записаны в файл INI
c_res.ini. Файл не совсем соответствует стандарту ini, так как у него нет заголовка секции. Поэтому перед запуском надо дописать там первой строчкой вот такое значение: [general], в противном случае программа не сможет получать оттуда информацию. На функционировании самого arcus2 это не скажется.
А с каким банком сея приблуда работает? А то у нас Газпромбанк
Это зависит не от банка, а от драйвера терминала. Писалось и тестировалось под банк россии.
Правильно ли я понял — эта прога для ввода вручную и прицепить ее к 1С никак — например сформировать текстовый файл и потом посмотреть результат — и послать чек на кассу? У нас тоже нетиповая и очень старая конфа где в помине ент торгового оборудования.
Да, правильно. Это была первая разработка такого плана, и рассчитана она была исключительно на ручную работу.
Я в итоге написал полноценный кассовый фронтэнд — здоровый программный комплекс на VC, которому 1с при проведении заказа отправляет данные по нему, и который после оплаты скидывает инфу про нее базе. Получилось довольно громоздко, но очень быстро, и при необходимости легко дописываю без возни с обновлением БПО.
Здравствуйте. А поделитесь исходниками? само собой за отдельную плату
К сожалению, исходников этой мини утилитки не сохранилось, надобность в ней отпала довольно быстро.