Как подключить два терминала Сбербанка к одной базе УТ 11 на одном компьютере

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

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

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

Проанализируем основную причину конфликта: стандартное ПО Сбербанка (UPOS) по умолчанию использует одну и ту же папку (обычно C:\sc552) и одни и те же ветки реестра Windows. Чтобы два терминала работали независимо, нам необходимо создать для каждого из них полностью обособленную программную среду. Рассмотрим, как это сделать по шагам.

Во-первых, создадим на диске C: две разные папки для драйверов, например, C:\sber_org1 и C:\sber_org2. В каждую из этих папок необходимо скопировать полный комплект файлов от банка (pilot.exe, pinpad.ini, gate.dll, sb_kernel.dll и другие). Важно, чтобы это были не просто ссылки, а независимые копии исполняемых файлов.

Во-вторых, в настройках 1С в разделе Подключаемое оборудование мы создадим два отдельных экземпляра оборудования с типом «Эквайринговый терминал». В настройках каждого экземпляра мы укажем путь к соответствующей папке. Это критически важный момент для драйверов типа NativeApi, которые умеют подхватывать настройки из указанного пути, не обращаясь к системному реестру.

Тонкая настройка конфигурационных файлов pinpad.ini

После того как мы разделили файлы, необходимо настроить каждый терминал так, чтобы они не «дрались» за аппаратные ресурсы компьютера. Основным файлом конфигурации здесь выступает pinpad.ini. Разберем основные параметры, которые должны различаться в этих файлах:

  1. ComPort: Каждому физическому терминалу при подключении к USB назначается свой виртуальный COM-порт в диспетчере устройств Windows — для учета транзакций есть обработка автоматической загрузки реестра оплат Сбербанка. Проверьте номера портов и жестко пропишите их. Например, для первого терминала ComPort=3, для второго — ComPort=4.
  2. TerminalID: Укажите уникальный восьмизначный номер терминала, присвоенный банком. Это поможет при анализе логов.
  3. LogPath: Рекомендуется указать относительный путь для ведения логов внутри своих папок, чтобы отчеты об операциях не перемешивались.

Пример содержимого файла pinpad.ini для первого терминала:


[Check]
Target=P
ComPort=3
Speed=115200
TerminalID=12345678
[Application]
Log=1

Пример для второго терминала:


[Check]
Target=P
ComPort=4
Speed=115200
TerminalID=87654321
[Application]
Log=1

Настройка рабочего места (РМК) в 1С:УТ 11

Перейдем к настройкам внутри 1С. Выясним причину, по которой 1С может путать терминалы в АРМ кассира — поможет виджет отображения остатков товаров в РМК. Основная проблема часто кроется в привязке оборудования к объекту Рабочее место. В 1С:УТ 11 рабочее место идентифицируется связкой имени компьютера и текущего пользователя Windows.

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

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

Решение проблемы через режим «Мультимерчант»

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

При таком подходе в папке с драйвером появляется файл ecomm.xml. В нем описывается структура отделов:


<Departments>
    <Department Id="1" MerchantId="123456789012" />
    <Department Id="2" MerchantId="987654321098" />
</Departments>

Однако, как было отмечено в обсуждении, в типовых конфигурациях УТ 11 (особенно старых релизов 11.4) существует «косяк»: при пробитии чека из АРМ кассира параметр Department (номер отдела) может передаваться некорректно или всегда иметь значение «0». Чтобы это исправить, программисту необходимо проверить процедуру передачи параметров в драйвер эквайринга. Выясним причину: в модулях интеграции с оборудованием значение отдела должно браться из карточки Эквайринговый терминал, где в поле «Номер отдела» должен стоять индекс, соответствующий Id в файле ecomm.xml.

Использование драйверов NativeApi

Важным решением проблемы «перепутывания» терминалов является переход на современные драйверы типа NativeApi. В отличие от старых COM-компонентов (SberbankES.dll), которые регистрируются в системе через regsvr32 и создают глобальную ссылку в реестре, NativeApi-драйверы загружаются динамически из указанной папки.

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

Аппаратные нюансы подключения

Не забудем про аппаратную составляющую. При подключении двух энергоемких устройств (а современные терминалы с цветными дисплеями потребляют немало) к одному USB-контроллеру материнской платы, могут возникать микро-сбои питания. Это приводит к тому, что один из терминалов «отваливается» и пропадает из списка COM-портов.

Рекомендуем придерживаться следующих правил:

Таким образом, комбинируя разделение каталогов драйверов, использование NativeApi и корректную привязку оборудования к кассам в настройках РМК, мы можем добиться стабильной и независимой работы двух терминалов Сбербанка в рамках одной информационной базы 1С — для обеспечения безналичных расчетов также подойдет интеграция оплаты по QR-кодам Сбербанка в интерфейсе 1С.

← На главную