Как настроить прием платежей по СБП ВТБ в 1С:Розница 2.3?

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

Мы часто сталкиваемся с необходимостью интеграции новых платежных методов в существующие учетные системы. В этой статье мы подробно рассмотрим, как настроить прием платежей по Системе Быстрых Платежей (СБП) банка ВТБ в 1С:Розница 2.3, особенно когда "коробочного" решения для прямой интеграции нет. Наша основная цель — добиться того, чтобы при выборе оплаты через СБП, на экране платежного терминала формировался QR-код, который покупатель сможет считать своим мобильным приложением для осуществления платежа (в отличие от альтернативного подхода с печатью QR-кода на чеке). Мы проанализируем сложности, которые возникают на этом пути, и предложим пошаговые решения, основанные на реальном опыте пользователей.

Настройка нескольких логических терминалов для СБП и традиционного эквайринга

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

Обращение в банк для настройки терминала:

Прежде всего, критически важно обратиться в техническую поддержку банка ВТБ. Объясните им вашу задачу: вам необходимо, чтобы на одном физическом платежном терминале (например, Ingenico) можно было принимать как обычные банковские карты, так и платежи по СБП, с обязательным выводом QR-кода на экран самого терминала (для других терминалов, например, PAX D230, могут понадобиться отдельные решения). Мы выясним, какие действия должен выполнить банк:

  1. Банк должен настроить ваш физический терминал таким образом, чтобы он мог работать с двумя разными логическими номерами терминалов (Terminal ID) или мерчант-идентификаторами (Merchant ID, ММС). Это означает, что один физический терминал будет эмулировать работу двух независимых устройств.
  2. Один из этих идентификаторов будет специально использоваться для традиционного эквайринга, то есть для операций оплаты по банковским картам.
  3. Второй идентификатор будет предназначен исключительно для операций через СБП. Банк должен предоставить вам эти два уникальных номера терминалов (или ММС).
  4. Банк также должен настроить программное обеспечение терминала на генерацию и отображение QR-кода на его экране при получении соответствующей команды для СБП-платежа. Это обеспечит удобство для покупателей, которым не придется искать QR-код на дополнительных дисплеях или чеках.

Как показывает практика, сотрудники банка ВТБ готовы приехать на место и выполнить эту настройку, "привязав" к одному физическому терминалу два серийных номера, что подтверждает реальность такого решения.

Настройка в 1С:Розница 2.3:

После того как банк выполнил настройку терминала и предоставил вам необходимые идентификаторы, мы переходим к конфигурации 1С:Розница. Мы рассмотрим пошаговые действия, которые необходимо выполнить:

  1. Откройте раздел НСИ и Администрирование в вашей конфигурации 1С:Розница. Затем перейдите в подраздел Подключаемое оборудование.
  2. Мы создадим два отдельных элемента эквайрингового терминала в списке подключаемого оборудования. Это позволит 1С работать с двумя логическими терминалами на одном физическом устройстве:
    • Первый элемент будет соответствовать традиционному эквайрингу. В его настройках мы укажем номер терминала (ММС), который был предоставлен банком для обычных операций по картам.
    • Второй элемент будет предназначен специально для СБП. Мы рекомендуем дать ему понятное имя, например, "Эквайринговый терминал (QR)" или "СБП ВТБ", чтобы продавцу было ясно, какой терминал выбирать при оплате. В его настройках мы укажем номер терминала (ММС), который банк выделил для СБП.
  3. Убедитесь, что для каждого из этих элементов выбран соответствующий драйвер (например, "Драйвер эквайринговых терминалов Ingenico"). Важно использовать правильный драйвер, который обеспечивает корректное взаимодействие между 1С и физическим терминалом (при работе с оборудованием других банков могут возникать свои нюансы).

Таким образом, в 1С у вас будет отображаться два "эквайринговых терминала", хотя физически он останется одним устройством. Продавец при оформлении оплаты будет выбирать нужный вид оплаты – "Карта" или "СБП" (или другое название, которое вы дадите новому виду оплаты) – и 1С будет направлять команду на соответствующий логический терминал, обеспечивая правильную маршрутизацию платежа.

Создание вида оплаты для СБП в 1С:

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

  1. Перейдите в раздел НСИ и Администрирование -> Виды оплат в 1С:Розница.
  2. Мы создадим новый элемент вида оплаты, например, с наименованием "Оплата СБП".
  3. Ключевым моментом является указание его типа как "СБП". Это важно для правильного функционирования механизмов СБП в 1С.
  4. Привяжите этот новый вид оплаты к созданному ранее элементу эквайрингового терминала, предназначенному для СБП (например, "Эквайринговый терминал (QR)").

Теперь при выборе этого вида оплаты на кассе, 1С будет отправлять соответствующую команду на СБП-терминал, который, в свою очередь, сформирует QR-код на экране для оплаты.

Глубокая настройка через файл ops.ini и драйвер IngenicoDriver1C.dll

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

Получение operation configuration от банка:

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

Редактирование файла ops.ini:

Файл ops.ini (или аналогичный конфигурационный файл для вашего драйвера Ingenico, например, ARCUS2.ini) является ключом к управлению командами, которые 1С отправляет на терминал. В этот файл необходимо добавить или модифицировать команды в соответствии с полученной от банка "operation configuration". Мы рассмотрим шаги по редактированию:

  1. Найдите файл ops.ini. Обычно он находится в директории драйвера эквайрингового терминала (например, в папке, где расположен IngenicoDriver1C.dll, или в системной папке программы).
  2. Откройте его с помощью любого текстового редактора (например, Блокнота).
  3. Добавьте или измените секции, отвечающие за СБП-операции. Например, для оплаты по СБП может быть команда типа ОплатитьСБП. Вам потребуется узнать от банка точный номер команды и ее синтаксис. Каждый банк может использовать свои уникальные коды.
  4. Приведем пример того, как может выглядеть секция для оплаты СБП в ops.ini. Важно: это обобщенный пример, реальные команды, их номера и параметры нужно брать строго из документации, предоставленной банком:
    
    [SBP_PAYMENT]
    CommandCode=24 ; Пример номера команды для операции оплаты через СБП
    OperationName=ОплатитьСБП ; Название операции для идентификации
    Parameters=Amount|1|N|12,CurrencyCode|2|N|3,RRN|3|AN|12,AdditionalInfo|4|AN|255
    
    В этом примере:
    • CommandCode – это уникальный номер команды, который 1С будет отправлять терминалу для инициирования СБП-платежа.
    • OperationName – это название операции, используемое для внутренней идентификации.
    • Parameters – список параметров, которые передаются вместе с командой (такие как сумма платежа, код валюты, референс-номер транзакции и дополнительная информация).
  5. Аналогично, необходимо будет настроить команды для других важных операций, таких как СтатусСБП (для проверки статуса платежа, если он не был подтвержден мгновенно) и, что очень важно, ВозвратСБП для выполнения операций возврата.

Внимание: Некорректное редактирование файла ops.ini может привести к неработоспособности платежного терминала или ошибкам при проведении операций. Всегда делайте резервную копию файла перед внесением любых изменений.

Использование драйвера IngenicoDriver1C.dll и ПО ARCUS2:

1С:Розница взаимодействует с платежным терминалом через специализированный драйвер, такой как IngenicoDriver1C.dll. Этот драйвер, в свою очередь, может использовать низкоуровневое программное обеспечение, установленное на самом терминале (например, ARCUS2), для непосредственного управления устройством. Драйвер IngenicoDriver1C.dll выступает в роли посредника: он отвечает за отправку команд, указанных в ops.ini, на терминал и за обработку ответов, приходящих от терминала.

Когда мы отправляем команду на терминал из 1С (например, команду, связанную с операцией ОплатитьСБП), драйвер "переводит" эту команду в протокол, понятный терминалу, и инициирует выполнение операции (в данном случае – формирование QR-кода на экране). В 1С, настройка номера команды обычно осуществляется не напрямую в пользовательском интерфейсе конфигурации, а либо через конфигурацию самого драйвера, либо через параметры, передаваемые в функции драйвера. Этот механизм может варьироваться в зависимости от версии драйвера и его конкретной реализации.

Типичные проблемы и их решения при работе с СБП ВТБ

Даже после успешной настройки оплаты могут возникнуть сложности. Мы проанализируем наиболее частые проблемы и возможные пути их решения.

Проблемы с возвратами СБП:

Одной из наиболее частых проблем, возникающих после успешной настройки оплаты по СБП, является отсутствие или некорректная работа функции возврата. Мы рассмотрим наиболее вероятные причины и способы их устранения:

  1. Отсутствие или некорректная команда возврата в ops.ini: Как и для операции оплаты, для возврата платежа через СБП нужна своя специфическая команда. Мы должны убедиться, что в файле ops.ini прописана отдельная команда для возврата по СБП (например, ВозвратСБП) с правильным номером и параметрами, предоставленными банком. Часто проблема кроется именно в отсутствии такой записи или ее неверном синтаксисе.
  2. Различия в механизме возврата между банками: Некоторые банки могут иметь особенности в обработке возвратов СБП, которые отличаются от стандартных операций с картами. Возможно, возврат необходимо инициировать не через кассовый терминал напрямую, а через личный кабинет банка или другое специализированное ПО. Этот аспект также необходимо очень внимательно уточнять у технической поддержки банка ВТБ.
  3. Ограничения 1С:Розница: В некоторых версиях 1С или при специфических настройках, встроенный механизм обработки возвратов может не полностью поддерживать все особенности СБП, особенно если платеж прошел через нестандартный канал. В этом случае может потребоваться доработка типовой конфигурации 1С для корректной обработки возвратов.
  4. Несоответствие версий ПО: Мы должны убедиться, что используются актуальные версии драйвера, прошивки платежного терминала и конфигурации 1С. Разработчики регулярно выпускают обновления, которые включают исправления для работы с СБП и могут решить подобные проблемы.

При возникновении проблем с возвратами, мы рекомендуем собрать подробные логи обмена данными между 1С и терминалом. Затем следует предоставить эти логи в техническую поддержку банка ВТБ. Их рекомендация "обращаться к разработчику кассового ПО (1С)" часто означает, что банку нужны именно эти логи для анализа и выявления первопричины.

Ошибка "при переходе к оплате если в настройках оборудования терминала в 1С использую ИД с СБП":

Если вы столкнулись с ошибкой при попытке перейти к оплате, когда в настройках оборудования терминала в 1С используется идентификатор, предназначенный для СБП, мы проанализируем возможные причины, которые могут приводить к такому поведению:

  1. Некорректная настройка терминала банком: Мы должны убедиться, что банк ВТБ действительно настроил данный идентификатор (ИД) на терминале для работы с СБП. Возможно, он настроен, но не активирован, или с ним связаны другие ограничения, которые не позволяют корректно инициализировать СБП-операцию.
  2. 1С не распознает ИД: Возможно, используемый идентификатор не соответствует ожидаемому формату или типу для СБП-операций в текущей версии 1С или драйвера. 1С может ожидать определенный формат для ИД СБП, который не совпадает с предоставленным.
  3. Проблемы с драйвером платежного терминала: Драйвер может не поддерживать специфику использования данного ИД для СБП, или в нем могут содержаться внутренние ошибки. Мы должны убедиться, что используем актуальную и совместимую версию драйвера, рекомендованную как 1С, так и банком.
  4. Отсутствие или неверная запись в ops.ini: Если драйвер пытается использовать определенную команду для СБП, но эта команда не прописана или прописана неверно в файле ops.ini, это может вызвать ошибку еще на этапе инициализации операции.

Для диагностики этой проблемы, мы рекомендуем внимательно проверить логи работы драйвера и 1С при каждой попытке оплаты. Зачастую там содержится более детальная информация об ошибке, которая поможет нам локализовать проблему.

Общие рекомендации для успешной работы СБП

Для обеспечения успешной и стабильной работы СБП в 1С:Розница мы рекомендуем придерживаться следующих практических советов:

  1. Использовать актуальные версии программного обеспечения: Мы настоятельно рекомендуем регулярно обновлять 1С:Розница до последних стабильных релизов. Кроме того, поддерживайте актуальные версии драйверов платежных терминалов и прошивок самого оборудования. Разработчики постоянно выпускают обновления, которые включают исправления ошибок, улучшения производительности и добавляют поддержку новых функций СБП.
  2. Тщательное тестирование всех операций: После любых изменений в настройках — будь то на стороне банка, терминала или в 1С — мы должны обязательно проводить комплексное тестирование всех возможных операций. Проверьте не только оплату, но и отмену, полный возврат и частичный возврат (если это применимо). Тестируйте различные сценарии, чтобы убедиться в стабильности работы системы.
  3. Изучение и использование официальной документации: Мы всегда должны обращаться к официальной документации от 1С по работе с платежными системами, а также к документации от банка ВТБ по СБП и их платежным терминалам. Эти ресурсы часто содержат критически важную информацию о специфике интеграции, ограничениях и рекомендованных настройках.

Интеграция СБП, особенно с банками, которые не предоставляют готовые "коробочные" решения, требует внимательного и системного подхода. Она включает в себя взаимодействие с разными сторонами: банком, производителем терминала, разработчиком ПО. Мы надеемся, что это подробное руководство поможет вам успешно настроить прием платежей по СБП ВТБ в 1С:Розница и обеспечить бесперебойную работу вашего бизнеса.

← На главную