В процессе автоматизации розничной торговли часто возникает ситуация, когда на одной кассовой зоне работают два юридических лица, но используется один физический эквайринговый терминал Сбербанка. Основная проблема, с которой сталкиваются пользователи 1С:Управление торговлей (УТ 11), — это «смешивание» оплат, когда деньги по организации №1 уходят на отдел или счет организации №2. Рассмотрим подробно, как решить эту проблему с помощью механизма мультимерчанта и корректной настройки драйверов.
Прежде всего, нам необходимо понять, как терминал понимает, на какую организацию пробивать чек. В терминологии Сбербанка это называется Multi-merchant. Для реализации этой функции банк должен прошить в терминал несколько идентификаторов: Merchant ID (MID) и Terminal ID (TID) для каждого юридического лица. Эти идентификаторы привязываются к логическим номерам отделов (обычно 1, 2, 3 и так далее).
Проблема в 1С часто заключается в том, что при использовании одного и того же драйвера и одного и того же рабочего каталога (например, C:\SC552), настройки перетирают друг друга, или драйвер просто не понимает, какой отдел вызвать в конкретный момент. Проанализируем шаги, необходимые для стабильной работы.
Перед началом манипуляций в 1С убедитесь, что сотрудники Сбербанка настроили терминал на работу с несколькими отделами. Без предварительной настройки терминала банком любые изменения в pinpad.ini или настройках 1С будут игнорироваться. Попросите инженера банка предоставить вам список отделов (Department) для каждой организации.
Для того чтобы каждая организация имела свои независимые настройки, мы воспользуемся методом разделения исполняемых файлов и конфигураций. Рассмотрим этот процесс пошагово:
C: (или туда, где установлены компоненты Сбербанка).C:\SC552).C:\SC552_ORG2.В каждой папке обязательно должны присутствовать файлы pilot_nt.dll, pinpad.ini и loadparm.exe. Это позволит системе 1С обращаться к разным экземплярам настроек.
Теперь нам нужно жестко закрепить номер отдела за каждым каталогом. Для этого мы отредактируем файл pinpad.ini в каждой из папок. Разберем пример конфигурации:
В папке C:\SC552 (для Организации №1) откройте файл и добавьте или измените параметр:
[Application]
...
DEPARTMENT=0
...
В папке C:\SC552_ORG2 (для Организации №2) укажите другой отдел:
[Application]
...
DEPARTMENT=1
...
Важный нюанс: если параметра DEPARTMENT нет в файле, его необходимо создать вручную. Обратите внимание, что нумерация отделов в Сбербанке может начинаться как с 0, так и с 1 — это зависит от того, как настроил инженер банка. Если оплата уходит не туда, попробуйте изменить значения местами.
После подготовки файловой структуры переходим в 1С:Управление торговлей. Нам необходимо создать два разных экземпляра подключаемого оборудования.
C:\SC552.C:\SC552_ORG2.Выясним причину, почему это важно: 1С при инициализации оплаты обращается к библиотеке по указанному пути. Имея разные пути, 1С гарантирует, что временные файлы (например, файл p с параметрами операции) не будут перезаписаны другой сессией или другим процессом в момент оплаты.
Проанализируем ситуацию, когда настройки верны, но чеки все равно бьются неправильно. Часто ошибка кроется в том, что в настройках Кассы ККМ (справочник «Кассы ККМ») для обеих организаций выбран один и тот же экземпляр оборудования.
Проверьте следующее:
При использовании двух каталогов часто возникает ошибка 4191. Она означает, что драйвер не смог открыть порт или не получил ответа от устройства. Рассмотрим причины и способы их устранения:
loadparm.exe или pilot_nt.dll. Убедитесь, что в настройках драйвера не стоит слишком большой таймаут удержания порта.C:\SC552 и C:\SC552_ORG2. Если драйвер не сможет записать лог или файл ответа в свою папку, он вернет ошибку.sberbank.dll должна быть корректно зарегистрирована в системе через regsvr32. Однако для работы через 1С достаточно правильно указать путь к dll в настройках оборудования.Если ваши пользователи работают через удаленный рабочий стол (RDP) или тонкий клиент на сервере, важно помнить о «видимости» оборудования. В случае с RDP необходимо пробрасывать COM-порты локального компьютера на сервер. Если два пользователя одновременно пытаются обратиться к одному и тому же проброшенному порту, возникнет конфликт.
Рассмотрим рекомендации для терминальной среды:
e_err.log в рабочих каталогах — там будет детально описано, почему возникла ошибка 4191 (например, Port busy или Access denied).Следуя этой методике разделения рабочих пространств драйверов, вы сможете добиться корректного распределения платежей между организациями на одном физическом устройстве Сбербанка.