Как настроить эквайринговые терминалы Сбербанка в УТ 11.4.7 при отказе от старого драйвера

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

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

В этой статье мы подробно разберем, как перейти на новый драйвер «1С:Эквайринговые терминалы Сбербанк» (Native API), как сохранить работу с несколькими отделами на одном терминале и что делать, если чеки «слипаются» из-за отсутствия автоматического отрезчика на фискальном регистраторе.

Причина проблемы: переход на Native API

Традиционно терминалы Сбербанка подключались через COM-объекты. В версии 11.4.7 произошел окончательный переход на использование современной технологии Native API (библиотека SberBankES_v2.dll). Старая схема, когда мы могли напрямую передавать параметры через ОбъектДрайвера.SParam("Department", ИндексОтдела), во многих типовых механизмах перестала быть доступной без серьезного вмешательства в код конфигурации. Давайте проанализируем, как адаптироваться к этим изменениям.

Решение №1: Настройка мультимерчанта через файловую структуру

Если вам необходимо, чтобы один физический терминал обслуживал несколько организаций (например, ИП и ООО), и кассир не должен вручную выбирать отдел на пин-паде, мы можем применить метод разделения рабочих каталогов. Разберем этот процесс по шагам.

Шаг 1. Подготовка папок на диске

Вместо одной папки с банковским ПО (обычно C:\sc552), создадим несколько копий. Например:

В каждую папку необходимо скопировать полный набор библиотек (gate.dll, sb_terminal.exe и другие актуальные файлы от Сбербанка).

Шаг 2. Настройка конфигурационных файлов

В каждой папке находим или создаем файл pinpad.ini. Именно здесь мы будем жестко привязывать конкретную папку к конкретному мерчанту. Пропишем параметр Department:

Для первой папки:

Department=1

Для второй папки:

Department=2

Важный момент: Убедитесь, что параметр порта (Port) во всех файлах настроен на один и тот же виртуальный COM-порт, к которому физически подключен терминал.

Шаг 3. Регистрация в 1С

Теперь перейдем в 1С в раздел «НСИ и администрирование» — «РМК и оборудование». Нам нужно создать две записи в справочнике «Подключаемое оборудование»:

  1. Выбираем тип «Эквайринговые терминалы».
  2. Драйвер — «1С:Эквайринговые терминалы Сбербанк».
  3. В настройках первого устройства указываем путь к каталогу C:\Sber_Org1.
  4. В настройках второго устройства указываем путь к каталогу C:\Sber_Org2.

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

Решение №2: Исправление конфликта «Оборудование не подключено»

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

Проанализируем ситуацию: когда 1С обращается ко второму терминалу, первый экземпляр драйвера все еще удерживает COM-порт. Для решения этой проблемы может потребоваться доработка в общем модуле МенеджерОборудованияВызовСервера. Нам нужно убедиться, что при смене организации система принудительно вызывает метод Отключить() для текущего устройства перед вызовом Подключить() для нового.

Если вы хотите реализовать это программно, как это делалось в старых драйверах, вспомним пример кода, который использовался ранее:


ОбъектДрайвера.Clear();
ОбъектДрайвера.SParam("Track2", "");
ОбъектДрайвера.SParam("CardType", 0);
ОбъектДрайвера.SParam("Department", ИндексОтдела);
ВыходныеПараметры = Новый Массив;
// Команда оплаты
Результат = ОбъектДрайвера.AuthorizeSales(Сумма, ...);

В новом Native API драйвере такая передача параметров может не работать напрямую через SParam. Поэтому использование разных каталогов с преднастроенными pinpad.ini является наиболее стабильным «low-code» решением.

Решение №3: Управление печатью и паузами (проблема «слипания» чеков)

Если ваш фискальный регистратор (ФР) не имеет функции автоматического отреза, то при печати слип-чека эквайринга лента идет сплошным потоком, и кассиру трудно понять, где заканчивается первый экземпляр и начинается второй. В новом драйвере настройки паузы часто игнорируются.

Рассмотрим способы добавления разделителей и пауз:

  1. Параметр «Символ отреза»: В настройках эквайрингового терминала в 1С есть поле «Символ отреза». Обычно там стоит код 33. Попробуйте поэкспериментировать с этим значением. Если ваш ФР поддерживает частичный отрез или специфические команды управления бумагой, это может помочь.
  2. Настройка ожидания в терминале: В файле pinpad.ini можно добавить параметр WaitForKey=1. Это заставит терминал ждать нажатия любой клавиши на пин-паде после печати первого слипа и перед началом печати второго. Это обеспечит естественную паузу, во время которой кассир успеет оторвать чек.
  3. Доработка макета в 1С: Это самый надежный метод. Найдем в конфигурации общий макет СлипЧекЭквайринга (или аналогичный в БПО). Мы можем добавить в конец макета несколько пустых строк или строку из дефисов "-------------------".

Пример программного добавления пустых строк в макет (условно):


// В процедуре формирования текста слипа
ТекстЧека = РезультатВыполненияОперации.ТекстСлипа;
Разделитель = "--------------------------------" + Символы.ПС + Символы.ПС + Символы.ПС;
ТекстЧека = СтрЗаменить(ТекстЧека, "ПОДПИСЬ КЛИЕНТА", "ПОДПИСЬ КЛИЕНТА" + Символы.ПС + Разделитель);

Резюме и рекомендации

Переход на новый драйвер в УТ 11.4.7 требует изменения подхода к настройке оборудования. Вместо динамического управления параметрами из кода 1С, мы переносим логику разделения отделов на уровень файловой системы и конфигурационных файлов самого Сбербанка (pinpad.ini).

Основные выводы:

Такой подход позволит вам сохранить работоспособность кассового узла без серьезной переработки логики конфигурации и обеспечит стабильную работу с современным банковским ПО.

← На главную