Как настроить один эквайринговый терминал Сбербанка для работы с двумя организациями в 1С?

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

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

Разбор архитектуры решения: что такое Мультимерчант

Прежде всего, нам необходимо понять, как терминал понимает, на какую организацию пробивать чек. В терминологии Сбербанка это называется Multi-merchant. Для реализации этой функции банк должен прошить в терминал несколько идентификаторов: Merchant ID (MID) и Terminal ID (TID) для каждого юридического лица. Эти идентификаторы привязываются к логическим номерам отделов (обычно 1, 2, 3 и так далее).

Проблема в 1С часто заключается в том, что при использовании одного и того же драйвера и одного и того же рабочего каталога (например, C:\SC552), настройки перетирают друг друга, или драйвер просто не понимает, какой отдел вызвать в конкретный момент. Проанализируем шаги, необходимые для стабильной работы.

Шаг 1. Настройка на стороне банка

Перед началом манипуляций в 1С убедитесь, что сотрудники Сбербанка настроили терминал на работу с несколькими отделами. Без предварительной настройки терминала банком любые изменения в pinpad.ini или настройках 1С будут игнорироваться. Попросите инженера банка предоставить вам список отделов (Department) для каждой организации.

Шаг 2. Разделение рабочих каталогов драйвера

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

  1. Перейдите в корень диска C: (или туда, где установлены компоненты Сбербанка).
  2. Найдите папку с ПО от Сбербанка (по умолчанию это C:\SC552).
  3. Создайте копию этой папки и назовите ее иначе, например C:\SC552_ORG2.
  4. Теперь у вас есть два идентичных набора файлов для каждой из организаций.

В каждой папке обязательно должны присутствовать файлы pilot_nt.dll, pinpad.ini и loadparm.exe. Это позволит системе 1С обращаться к разным экземплярам настроек.

Шаг 3. Редактирование файла pinpad.ini

Теперь нам нужно жестко закрепить номер отдела за каждым каталогом. Для этого мы отредактируем файл pinpad.ini в каждой из папок. Разберем пример конфигурации:

В папке C:\SC552 (для Организации №1) откройте файл и добавьте или измените параметр:


[Application]
...
DEPARTMENT=0
...

В папке C:\SC552_ORG2 (для Организации №2) укажите другой отдел:


[Application]
...
DEPARTMENT=1
...

Важный нюанс: если параметра DEPARTMENT нет в файле, его необходимо создать вручную. Обратите внимание, что нумерация отделов в Сбербанке может начинаться как с 0, так и с 1 — это зависит от того, как настроил инженер банка. Если оплата уходит не туда, попробуйте изменить значения местами.

Шаг 4. Настройка подключаемого оборудования в 1С

После подготовки файловой структуры переходим в 1С:Управление торговлей. Нам необходимо создать два разных экземпляра подключаемого оборудования.

  1. Перейдите в раздел НСИ и администрирование — РМК и оборудование — Подключаемое оборудование.
  2. Создайте первую запись для эквайрингового терминала Организации №1. В поле «Рабочий каталог» укажите C:\SC552.
  3. Создайте вторую запись для терминала Организации №2. В поле «Рабочий каталог» укажите C:\SC552_ORG2.
  4. Для каждой записи зайдите в «Параметры подключения». Убедитесь, что там указаны верные COM-порты (они будут одинаковыми, так как физический терминал один) и соответствующие номера отделов в поле «Номер отдела».

Выясним причину, почему это важно: 1С при инициализации оплаты обращается к библиотеке по указанному пути. Имея разные пути, 1С гарантирует, что временные файлы (например, файл p с параметрами операции) не будут перезаписаны другой сессией или другим процессом в момент оплаты.

Шаг 5. Привязка терминалов к Кассам ККМ

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

Проверьте следующее:

Устранение ошибки 4191 («Ответ от пин-пада не получен»)

При использовании двух каталогов часто возникает ошибка 4191. Она означает, что драйвер не смог открыть порт или не получил ответа от устройства. Рассмотрим причины и способы их устранения:

  1. Монопольный захват порта: Если одна организация только что совершила оплату, порт может быть еще занят процессом loadparm.exe или pilot_nt.dll. Убедитесь, что в настройках драйвера не стоит слишком большой таймаут удержания порта.
  2. Права доступа: Проверьте, что у пользователя, под которым запущена 1С, есть полные права (запись/чтение) на папки C:\SC552 и C:\SC552_ORG2. Если драйвер не сможет записать лог или файл ответа в свою папку, он вернет ошибку.
  3. Регистрация библиотек: Несмотря на разные папки, библиотека sberbank.dll должна быть корректно зарегистрирована в системе через regsvr32. Однако для работы через 1С достаточно правильно указать путь к dll в настройках оборудования.

Особенности работы в RDP и Тонком клиенте

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

Рассмотрим рекомендации для терминальной среды:

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

← На главную