Подключение современного эквайринга к устаревшим конфигурациям на платформе 1С 7.7 часто вызывает сложности у разработчиков. В случае с банком ВТБ основной технологией интеграции является ПО Inpas (DualConnector) или Arcus2. В данной статье мы подробно разберем, как интегрировать терминалы ВТБ в конфигурацию «Торговля и Склад 9.2», обеспечим работу через терминальный сервер и настроим систему быстрых платежей (СБП).
Проанализируем доступные варианты. Наиболее распространенным решением для терминалов ВТБ (обычно марок PAX или Ingenico) является библиотека a_inpasDC1c83.dll. Несмотря на то что в названии упоминается версия 8.3, данная компонента прекрасно работает в 1С 7.7 через COM-интерфейс. Рассмотрим подробнее процесс инициализации этой библиотеки в коде 1С.
Для начала работы нам необходимо зарегистрировать библиотеку в системе и прописать путь к ней. Выясним причину, по которой это важно: без регистрации ProgID объект Addin.a_inpasDC1c83 не будет создан. Разберем пример инициализации компоненты:
// ИСПОЛНЯЕМАЯ ПРИ ИНИЦИАЛИЗАЦИИ ЧАСТЬ МОДУЛЯ
ИмяФайла = "a_inpasDC1c83.dll";
ПрогИД = "Addin.a_inpasDC1c83";
Попытка
ЗагрузитьВнешнююКомпоненту(ИмяФайла);
глТерминалБанка = СоздатьОбъект(ПрогИД);
Сообщить("Библиотека эквайринга ВТБ успешно загружена");
Исключение
Предупреждение("Не удалось загрузить компоненту " + ИмяФайла);
КонецПопытки;
После успешной загрузки компоненты перейдем к реализации процедур оплаты. Нам потребуется передать идентификатор устройства, сумму и получить в ответ параметры авторизации (номер чека, RRN, код авторизации). Посмотрим на пример реализации обработки нажатия кнопки оплаты на кассе:
Если Вопрос("Оплатить картой?", "Да+Нет", 60) = "Да" Тогда
мPAN = "";
мНомерЧека = "";
мНомерСсылки = "";
мКодАвторизации = "";
мТекстЧека = "";
// Вызов метода оплаты (ТипЧека 0 - продажа)
мРезультат = глТерминалБанка.ОплатитьПлатежнойКартой(глИДТерминалаБанка, мPAN, мСуммаОплаты, мНомерЧека, мНомерСсылки, мКодАвторизации, мТекстЧека);
Если мРезультат = 1 Тогда
Сообщить("Оплата прошла успешно. RRN: " + мНомерСсылки);
// Здесь вызываем печать слип-чека, если он не печатается самим терминалом
Иначе
мТекстОшибки = "";
мКодОшибки = глТерминалБанка.ПолучитьОшибку(мТекстОшибки);
Предупреждение("Операция отклонена: " + мТекстОшибки);
КонецЕсли;
КонецЕсли;
Проанализируем ситуацию с возвратом. В системе Inpas возврат (Refund) и отмена (Void) — это разные операции. Для возврата по СБП часто требуется передавать ссылку на оригинальную операцию (RRN). Процедура аналогична оплате, но вызывается метод ВернутьПлатежПоПлатежнойКарте.
Современные требования бизнеса включают обязательную поддержку СБП. В рамках DualConnector работа с СБП может быть реализована двумя способами. Рассмотрим первый вариант: когда терминал сам предлагает выбор оплаты (карта/QR-код) при нажатии определенной клавиши на пин-паде (например, цифры «1»). В этом случае для 1С процесс выглядит как обычная оплата картой.
Разберем второй вариант — программный вызов СБП. В новых версиях драйвера предусмотрены методы для генерации динамического QR-кода. Если вы используете старые методы, можно попробовать передать специфический код операции. Выясним, как это работает: метод SetObjectParamInt позволяет установить тип операции перед вызовом основного метода. Однако в 1С 7.7 проще всего использовать сценарий, при котором кассир инициирует оплату, а покупатель выбирает СБП на самом терминале.
Важный нюанс: После «Сверки итогов» настройки СБП на терминале могут слетать, если они не зафиксированы банком в профиле хоста. Если после закрытия смены QR-код перестал появляться, необходимо обратиться в техподдержку ВТБ с просьбой жестко прописать поддержку СБП в конфигурации вашего Terminal ID.
Одной из главных проблем 1С 7.7 является «проброс» COM-портов в сессию RDP. Эквайринг часто работает нестабильно, порты «отваливаются» или заняты. Рассмотрим эффективное решение этой проблемы: перевод терминала на работу по протоколу TCP/IP (Ethernet).
dc_config.xml или через методы объекта) укажите IP-адрес и порт (по умолчанию 8888).Это позволит 1С подключаться к терминалу напрямую по сети, минуя сложности с пробросом оборудования в RDP-сессию — решение есть в подключение эквайринга к 1С по TCP/IP. Аналогичным образом может быть настроено подключение фискального регистратора по протоколу JSON (TCP/IP), что значительно повышает отказоустойчивость всей системы. Системный администратор оценит такой подход.
Если интеграция через «родную» библиотеку кажется слишком трудоемкой, разберем альтернативу — использование платного драйвера АТОЛ: Платежные системы (Frontol Driver Unit). Кроме того, часто актуальна задача обеспечить работу с драйверами Атол v10 для ФФД 1.05 в среде 1С 7.7. Проанализируем преимущества такого подхода:
Стоимость лицензии составляет около 3000–4000 рублей, что часто дешевле, чем затраты времени программиста на отладку прямой интеграции.
Посмотрим на вопрос печати слипов — для этого подойдёт сетевая печать чеков ККМ по RDP. Существует два режима: печать на самом терминале (если в нем есть принтер) и печать на фискальном регистраторе кассы. В DualConnector за это отвечает параметр PrintMode. Если мы хотим, чтобы 1С печатала банковский чек, нам нужно получить текст слипа из переменной мТекстЧека и отправить его на ККТ. Для реализации этой логики можно адаптировать обработку печати чеков для кассы Штрих Онлайн или использовать пример печати фискального чека WebCheck для типовых конфигураций.
Для более специфических задач разработчикам может быть полезна демонстрация того, как выполняется встраивание ТС ПИоТ в 1с 7.7 для работы с кассой Атол (поможет встраивание ТС ПИоТ в 1С 7.7) или интеграция обработки обслуживания для ПРРО ВебЧек, что позволяет регистрировать операции на сервере фискальной службы.
Важный совет: При работе с ВТБ через Inpas убедитесь, что в трее Windows запущена утилита DC-Control или Integration-Proxy. Она служит прослойкой между библиотекой и физическим устройством. Без активного процесса в трее связь с терминалом может не установиться.
Таким образом, мы выяснили, что интеграция ВТБ в 1С 7.7 вполне реализуема. Основной путь — использование a_inpasDC1c83.dll, настройка TCP/IP соединения и корректная обработка возвратов СБП с использованием RRN. Выполняя эти шаги последовательно, вы обеспечите надежную работу платежного модуля на вашем предприятии.