Волею судьбы пришлось обновить все эквайринговые терминалы в своей организации. Раньше были неуправляемые терминалы, поэтому об актуальности библиотеки драйверов в 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\rc_res.ini. Файл не совсем соответствует стандарту ini, так как у него нет заголовка секции. Поэтому перед запуском надо дописать там первой строчкой вот такое значение: [general], в противном случае программа не сможет получать оттуда информацию. На функционировании самого arcus2 это не скажется.