Интеграция Системы быстрых платежей (СБП) в 1С:Управление торговлей 11 (УТ 11) является одной из наиболее востребованных задач для современного ритейла. В отличие от классического эквайринга, СБП не требует наличия физического терминала и специализированных драйверов торгового оборудования. Рассмотрим подробнее, как реализовать этот функционал, если ваша конфигурация не поддерживает его «из коробки», или если вы хотите избежать использования стандартных механизмов драйверов.
Проанализируем текущее состояние программного продукта. В более ранних версиях, таких как УТ 11.4, встроенная поддержка СБП зачастую отсутствует. Это вызывает сложности у разработчиков, так как привычный раздел «Подключаемое оборудование» предназначен для работы с устройствами через драйвер. Однако СБП работает по протоколу HTTP/HTTPS через API банков.
Выясним причину отсутствия функционала в старых релизах: поддержка СБП была массово внедрена в библиотеку интернет-поддержки (БИП) и библиотеку электронного документооборота (БЭД/БЭЛ) только в последних редакциях. Если вы используете версию УТ 11.5.8 и выше, функционал уже доступен в разделе Администрирование — Интернет-поддержка и сервисы — Система быстрых платежей. Если же обновление невозможно, нам придется рассмотреть альтернативные пути.
Рассмотрим подход, при котором УТ 11 остается учетной системой (бэк-офисом), а функции продажи выносятся в специализированные решения. Это позволяет не «перегружать» основную базу лишними доработками. В качестве фронт-офиса могут выступать:
Эти конфигурации уже имеют встроенные механизмы работы с СБП. Взаимодействие между УТ и фронт-офисом настраивается через типовой обмен. Это наиболее безопасный путь с точки зрения обновляемости конфигурации, однако он требует внедрения дополнительного программного узла.
Разберем ситуацию, когда фронт-офис уже сильно кастомизирован и переход на другие решения невозможен. В этом случае единственным выходом является создание расширения конфигурации. Основная идея заключается в «бэкпортинге» (переносе функционала) из актуальных версий БЭЛ в вашу текущую базу.
Проанализируем основные объекты, которые необходимо реализовать или изменить в расширении:
РМК или документе ЭквайринговаяОперация.Важный момент: СБП не требует драйвера в привычном понимании 1С (через ПодключаемоеОборудование). Взаимодействие происходит через HTTP-запросы. Посмотрим на упрощенный пример структуры кода для запроса на генерацию динамического QR-кода:
// Пример упрощенной структуры запроса к API банка (через расширение)
Функция ПолучитьСсылкуНаОплату(ПараметрыОплаты) Экспорт
Запрос = Новый HTTPЗапрос("/api/v1/sbp/qr/register");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + ТокенДоступа);
Запрос.Заголовки.Вставить("Content-Type", "application/json");
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("amount", ПараметрыОплаты.Сумма * 100); // сумма в копейках
СтруктураДанных.Вставить("orderId", Строка(ПараметрыОплаты.Ссылка.Номер));
СтруктураДанных.Вставить("currency", "RUB");
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
СтрокаJSON = ЗаписьJSON.Закрыть();
Запрос.УстановитьТелоИзСтроки(СтрокаJSON);
// Выполняем HTTP-соединение и получаем результат в виде ссылки на QR-код
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
// ... обработка ответа и получение URL ...
КонецФункции
При реализации СБП важно выбрать модель взаимодействия:
Рассмотрим подробнее процесс подтверждения платежа. Система должна в автоматическом режиме опрашивать API банка (метод GET /status) до момента получения статуса «Успешно». Это позволяет реализовать бесшовный процесс пробития чека на ККТ сразу после подтверждения транзакции в банковской системе.
Выясним, какие объекты 1С помогут нам в реализации:
HTTPСоединение для отправки запросов в банк.БиблиотекаКартинок.QRКод.Если в вашей организации используется несколько банков, рекомендуется спроектировать универсальный интерфейс в расширении, который будет определять, к какому API обращаться, основываясь на выбранной НастройкеОплатыСБП. Это позволит легко масштабировать систему при смене расчетного банка.
Интеграция СБП в УТ 11 без драйверов — задача вполне решаемая. Наиболее эффективным методом для старых версий является использование расширения, реализующего механизмы Библиотеки электронных документов. Это позволяет автоматизировать прием платежей, повысить скорость обслуживания и избежать дополнительных затрат на банковское оборудование.