При работе с эквайринговым терминалом Verifone VX820 в связке с 1С часто возникает проблема: оплата проходит успешно, смена закрывается, но бумажный слип-чек на печать не выводится. Давайте разберемся, почему это происходит и как реализовать надежную печать слипов.
Важно понимать, что при использовании стандартного софта Сбербанка сам пин-пад (терминал) не отправляет данные на принтер напрямую, если вы работаете через интеграцию. Терминал или драйвер формируют текстовый файл, который содержит слип. Этот файл обычно сохраняется в ту же папку, где располагается библиотека SBRF.dll. Кассовое программное обеспечение должно «подхватить» этот файл и вывести его содержимое на печать как обычный текстовый документ.
Многие разработчики сталкиваются с тем, что драйверы сторонних производителей (например, АТОЛ) могут работать нестабильно или требовать дополнительных настроек. Альтернативным и зачастую более надежным способом для 1С 7.7 является интеграция напрямую через библиотеку Сбербанка. Разберем основные этапы такой работы:
SBRF.dll. Это позволяет избежать лишних затрат и упростить отладку.SBRFCOM.SBRFClient. В системе 1С 7.7 создание объекта выглядит следующим образом:
ОбъектСбер = СоздатьОбъект(\"SBRFCOM.SBRFClient\");
// Далее идут методы вызова оплаты или возврата
Текст:
Текст = СоздатьОбъект(\"Текст\");
Текст.Открыть(ПутьКФайлуСлипа);
// Вывод на печать
Текст.Показать(); // или отправка на принтер
Чтобы система работала без сбоев, обратите внимание на следующие аспекты:
SBRF.dll. Убедитесь, что пользователь 1С имеет полные права на чтение и запись в каталоге, где создаются временные файлы слипов.SBRF.ini. Параметр PrintSlip должен быть установлен в значение 1. Если он равен 0, никакие настройки в 1С не заставят систему сформировать файл слипа.ini-файле библиотеки. Это позволит вам увидеть, какой именно ответ возвращает терминал и на каком этапе обрывается процесс формирования данных для печати.Для того чтобы работа системы стала прозрачной для пользователя, рекомендуем оформить механизм работы с терминалом как подключаемое оборудование. Это позволит сделать вызовы функций стандартизированными, а логику обработки слипов — отдельной подпрограммой. Вместо того чтобы писать код печати в каждом документе, создайте общую процедуру, которая будет принимать результат транзакции, находить сформированный файл слипа и отправлять его на печать на выбранный принтер чеков.
Если вы используете примеры готовых обработок с форумов, всегда проверяйте их на тестовой кассе. Работа с банковским софтом требует осторожности, так как некорректная интеграция может привести к ошибкам в закрытии банковской смены.