При обновлении конфигурации «1С:Управление торговлей» до версии 11.4.7 многие пользователи и технические специалисты столкнулись с неприятным сюрпризом: привычный драйвер эквайринга от Сбербанка перестал поддерживаться. Программа просто «не видит» оборудование или отказывается подключаться, ссылаясь на устаревшие протоколы. Ситуация осложняется, если на одной кассе завязано несколько организаций (режим мультимерчанта), так как старый способ программной передачи номера отдела перестал работать в штатном режиме.
В этой статье мы подробно разберем, как перейти на новый драйвер «1С:Эквайринговые терминалы Сбербанк» (Native API), как сохранить работу с несколькими отделами на одном терминале и что делать, если чеки «слипаются» из-за отсутствия автоматического отрезчика на фискальном регистраторе.
Традиционно терминалы Сбербанка подключались через COM-объекты. В версии 11.4.7 произошел окончательный переход на использование современной технологии Native API (библиотека SberBankES_v2.dll). Старая схема, когда мы могли напрямую передавать параметры через ОбъектДрайвера.SParam("Department", ИндексОтдела), во многих типовых механизмах перестала быть доступной без серьезного вмешательства в код конфигурации. Давайте проанализируем, как адаптироваться к этим изменениям.
Если вам необходимо, чтобы один физический терминал обслуживал несколько организаций (например, ИП и ООО), и кассир не должен вручную выбирать отдел на пин-паде, мы можем применить метод разделения рабочих каталогов. Разберем этот процесс по шагам.
Шаг 1. Подготовка папок на диске
Вместо одной папки с банковским ПО (обычно C:\sc552), создадим несколько копий. Например:
C:\Sber_Org1 — для первой организации (Отдел 1);C:\Sber_Org2 — для второй организации (Отдел 2).В каждую папку необходимо скопировать полный набор библиотек (gate.dll, sb_terminal.exe и другие актуальные файлы от Сбербанка).
Шаг 2. Настройка конфигурационных файлов
В каждой папке находим или создаем файл pinpad.ini. Именно здесь мы будем жестко привязывать конкретную папку к конкретному мерчанту. Пропишем параметр Department:
Для первой папки:
Department=1
Для второй папки:
Department=2
Важный момент: Убедитесь, что параметр порта (Port) во всех файлах настроен на один и тот же виртуальный COM-порт, к которому физически подключен терминал.
Шаг 3. Регистрация в 1С
Теперь перейдем в 1С в раздел «НСИ и администрирование» — «РМК и оборудование». Нам нужно создать две записи в справочнике «Подключаемое оборудование»:
C:\Sber_Org1.C:\Sber_Org2.Теперь при выборе соответствующей организации в чеке 1С будет обращаться к нужному экземпляру оборудования, который, в свою очередь, через настройки в своей папке передаст терминалу команду работать с нужным отделом.
При использовании схемы с несколькими папками часто возникает ошибка: первый терминал работает, а второй выдает сообщение, что оборудование не подключено или порт занят. Это происходит потому, что Библиотека подключаемого оборудования (БПО) пытается держать соединение активным.
Проанализируем ситуацию: когда 1С обращается ко второму терминалу, первый экземпляр драйвера все еще удерживает COM-порт. Для решения этой проблемы может потребоваться доработка в общем модуле МенеджерОборудованияВызовСервера. Нам нужно убедиться, что при смене организации система принудительно вызывает метод Отключить() для текущего устройства перед вызовом Подключить() для нового.
Если вы хотите реализовать это программно, как это делалось в старых драйверах, вспомним пример кода, который использовался ранее:
ОбъектДрайвера.Clear();
ОбъектДрайвера.SParam("Track2", "");
ОбъектДрайвера.SParam("CardType", 0);
ОбъектДрайвера.SParam("Department", ИндексОтдела);
ВыходныеПараметры = Новый Массив;
// Команда оплаты
Результат = ОбъектДрайвера.AuthorizeSales(Сумма, ...);
В новом Native API драйвере такая передача параметров может не работать напрямую через SParam. Поэтому использование разных каталогов с преднастроенными pinpad.ini является наиболее стабильным «low-code» решением.
Если ваш фискальный регистратор (ФР) не имеет функции автоматического отреза, то при печати слип-чека эквайринга лента идет сплошным потоком, и кассиру трудно понять, где заканчивается первый экземпляр и начинается второй. В новом драйвере настройки паузы часто игнорируются.
Рассмотрим способы добавления разделителей и пауз:
33. Попробуйте поэкспериментировать с этим значением. Если ваш ФР поддерживает частичный отрез или специфические команды управления бумагой, это может помочь.pinpad.ini можно добавить параметр WaitForKey=1. Это заставит терминал ждать нажатия любой клавиши на пин-паде после печати первого слипа и перед началом печати второго. Это обеспечит естественную паузу, во время которой кассир успеет оторвать чек.СлипЧекЭквайринга (или аналогичный в БПО). Мы можем добавить в конец макета несколько пустых строк или строку из дефисов "-------------------".Пример программного добавления пустых строк в макет (условно):
// В процедуре формирования текста слипа
ТекстЧека = РезультатВыполненияОперации.ТекстСлипа;
Разделитель = "--------------------------------" + Символы.ПС + Символы.ПС + Символы.ПС;
ТекстЧека = СтрЗаменить(ТекстЧека, "ПОДПИСЬ КЛИЕНТА", "ПОДПИСЬ КЛИЕНТА" + Символы.ПС + Разделитель);
Переход на новый драйвер в УТ 11.4.7 требует изменения подхода к настройке оборудования. Вместо динамического управления параметрами из кода 1С, мы переносим логику разделения отделов на уровень файловой системы и конфигурационных файлов самого Сбербанка (pinpad.ini).
Основные выводы:
WaitForKey в настройках Сбербанка или редактируйте макет слип-чека в 1С.Такой подход позволит вам сохранить работоспособность кассового узла без серьезной переработки логики конфигурации и обеспечит стабильную работу с современным банковским ПО.