Как интегрировать Систему быстрых платежей (СБП) в 1С:Управление торговлей 11 без драйверов

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Интеграция Системы быстрых платежей (СБП) в 1С:Управление торговлей 11 (УТ 11) является одной из наиболее востребованных задач для современного ритейла. В отличие от классического эквайринга, СБП не требует наличия физического терминала и специализированных драйверов торгового оборудования. Рассмотрим подробнее, как реализовать этот функционал, если ваша конфигурация не поддерживает его «из коробки», или если вы хотите избежать использования стандартных механизмов драйверов.

Анализ ситуации: СБП и версии УТ 11

Проанализируем текущее состояние программного продукта. В более ранних версиях, таких как УТ 11.4, встроенная поддержка СБП зачастую отсутствует. Это вызывает сложности у разработчиков, так как привычный раздел «Подключаемое оборудование» предназначен для работы с устройствами через драйвер. Однако СБП работает по протоколу HTTP/HTTPS через API банков.

Выясним причину отсутствия функционала в старых релизах: поддержка СБП была массово внедрена в библиотеку интернет-поддержки (БИП) и библиотеку электронного документооборота (БЭД/БЭЛ) только в последних редакциях. Если вы используете версию УТ 11.5.8 и выше, функционал уже доступен в разделе Администрирование — Интернет-поддержка и сервисы — Система быстрых платежей. Если же обновление невозможно, нам придется рассмотреть альтернативные пути.

Вариант 1: Использование внешнего фронт-офиса

Рассмотрим подход, при котором УТ 11 остается учетной системой (бэк-офисом), а функции продажи выносятся в специализированные решения. Это позволяет не «перегружать» основную базу лишними доработками. В качестве фронт-офиса могут выступать:

  1. 1С:Розница 8 (релиз 2.3.10 и выше).
  2. 1С:РМК (Рабочее место кассира).
  3. 1С:Мобильная касса.

Эти конфигурации уже имеют встроенные механизмы работы с СБП. Взаимодействие между УТ и фронт-офисом настраивается через типовой обмен. Это наиболее безопасный путь с точки зрения обновляемости конфигурации, однако он требует внедрения дополнительного программного узла.

Вариант 2: Разработка собственного расширения (Backporting)

Разберем ситуацию, когда фронт-офис уже сильно кастомизирован и переход на другие решения невозможен. В этом случае единственным выходом является создание расширения конфигурации. Основная идея заключается в «бэкпортинге» (переносе функционала) из актуальных версий БЭЛ в вашу текущую базу.

Проанализируем основные объекты, которые необходимо реализовать или изменить в расширении:

Важный момент: СБП не требует драйвера в привычном понимании 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 ...
    
КонецФункции

Механизм работы: Динамические vs Статические QR-коды

При реализации СБП важно выбрать модель взаимодействия:

  1. Динамический QR-код: Формируется под каждую конкретную операцию. 1С отправляет запрос в банк, получает уникальную ссылку, преобразует её в QR-код и выводит на дисплей покупателя или печатает на чеке. Это исключает ошибки кассира при вводе суммы.
  2. Статический QR-код: Наклеивается на кассе один раз. Кассир должен вручную убедиться в поступлении оплаты через личный кабинет банка или дождаться уведомления от системы. В 1С в этом случае нужно реализовать только мониторинг статуса оплаты.

Рассмотрим подробнее процесс подтверждения платежа. Система должна в автоматическом режиме опрашивать API банка (метод GET /status) до момента получения статуса «Успешно». Это позволяет реализовать бесшовный процесс пробития чека на ККТ сразу после подтверждения транзакции в банковской системе.

Практические советы по реализации

Выясним, какие объекты 1С помогут нам в реализации:

Если в вашей организации используется несколько банков, рекомендуется спроектировать универсальный интерфейс в расширении, который будет определять, к какому API обращаться, основываясь на выбранной НастройкеОплатыСБП. Это позволит легко масштабировать систему при смене расчетного банка.

Резюме

Интеграция СБП в УТ 11 без драйверов — задача вполне решаемая. Наиболее эффективным методом для старых версий является использование расширения, реализующего механизмы Библиотеки электронных документов. Это позволяет автоматизировать прием платежей, повысить скорость обслуживания и избежать дополнительных затрат на банковское оборудование.

← На главную