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

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

Ситуация, когда на одном рабочем месте в 1С ведется торговля от имени двух разных организаций, требует подключения двух кассовых аппаратов и двух эквайринговых терминалов. Однако стандартная настройка через драйвер Arcus2 часто приводит к конфликту: при попытке оплаты 1С активирует не тот пин-пад, который нужен, даже если в настройках указаны разные каталоги с файлами конфигурации. Рассмотрим подробно причины этой проблемы и пути ее решения. В случаях, когда подключение выполняется в конфигурациях прошлых поколений, может потребоваться специализированная обработка обслуживания терминалов Ingenico IPP320 для УТ 10.х.

Почему 1С путает терминалы? Анализируем причины

Проанализируем техническую сторону работы драйверов семейства Ingenico. Основная проблема заключается в механизме инициализации библиотеки ingenico_comm.dll (или ее аналогов). Когда 1С обращается к драйверу (будь то эквайринг или планшет для подписи), операционная система загружает библиотеку в память процесса. Если для обоих терминалов используется один и тот же программный идентификатор драйвера, 1С создает экземпляр объекта, который привязывается к определенным путям в файловой системе или реестре Windows.

Основные факторы конфликта:

  1. Системная переменная CASHREG: Многие версии ПО Arcus2 ищут свои конфигурационные файлы (cashreg.ini, cheque.ini) по пути, указанному в системной переменной окружения CASHREG. Если она задана в Windows, драйвер будет игнорировать настройки пути, указанные в интерфейсе 1С.
  2. Рабочий каталог (Working Directory): При инициализации первого терминала драйвер фиксирует рабочий каталог. При попытке вызвать второй терминал, процесс 1С продолжает «смотреть» в папку первого терминала.
  3. Кэширование DLL: Библиотека драйвера загружается один раз. Если драйвер не умеет корректно переинициализировать параметры связи при смене объекта, он продолжает работать с первым открытым портом.

Решение 1: Использование режима Multi-Merchant (Мультимерчант)

Это наиболее правильный и современный способ, который поддерживается драйвером Arcus2 и конфигурацией 1С:Бухгалтерия КОРП. Вместо того чтобы пытаться запустить два разных экземпляра драйвера, мы настраиваем работу нескольких организаций через один или два терминала в рамках единой конфигурации.

Разберем шаги настройки:

  1. В файле cashreg.ini (который находится в папке с Arcus) необходимо настроить секции для разных мерчантов. Это позволяет разделять потоки платежей на уровне банковского ПО.
  2. В настройках торгового оборудования в 1С для каждого терминала указывается свой Индекс мерчанта (Merchant Index).
  3. При закрытии смены 1С будет передавать команду на сверку итогов с указанием конкретного индекса, что позволит получать раздельные отчеты по каждой организации, избегая проблем с чеками.

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

Решение 2: Установка двух независимых драйверов в 1С

Если вариант с мультимерчантом не подходит по условиям банка, можно попробовать «обмануть» систему, создав два разных элемента в справочнике драйверов оборудования.

Выполним следующие действия:

  1. Выгрузим установленный драйвер Arcus2 из 1С в виде zip-архива.
  2. Распакуем архив, переименуем файлы (например, добавив префикс _Org2 к именам dll) и отредактируем файл manifest.xml, изменив идентификатор типа оборудования и наименование.
  3. Загрузим измененный драйвер обратно в 1С как «Новый драйвер».
  4. В справочнике «Подключаемое оборудование» создадим две записи. Первую привяжем к оригинальному драйверу, вторую — к нашему «новому» клонированному драйверу.

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

Решение 3: Очистка переменных окружения и реестра

Проанализируем состояние системных настроек Windows. Чтобы 1С корректно передавала путь к папке Arcus, убедимся в отсутствии жестких привязок в системе:

  1. Зайдем в «Свойства системы» — «Переменные среды» и проверим наличие переменной CASHREG. Если она есть — удалим ее.
  2. Проверим ветку реестра HKEY_CURRENT_USER\Software\Argo (или аналогичную для вашей версии Arcus). Если там прописаны жесткие пути к папкам EXE или INI, их стоит удалить или очистить, чтобы драйвер брал параметры из настроек, передаваемых из 1С.

Решение 4: Принудительная установка рабочего каталога (для программистов)

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

Рассмотрим пример кода, который можно внедрить в процедуру обработки оплаты:


// Перед вызовом методов драйвера эквайринга
ИмяПапкиТерминала = "C:\Arcus2_Org1"; // Или получаем из настроек оборудования
УстановитьТекущийКаталог(ИмяПапкиТерминала);

// Далее идет штатный вызов выполнения операции по эквайрингу
// Результат = ОбъектДрайвера.ОплатитьПлатежнойКартой(...);

Этот нехитрый прием заставляет библиотеку ingenico_comm.dll искать файл cashreg.ini в текущем активном каталоге процесса, что решает проблему путаницы, даже если пути в настройках 1С прописаны, но драйвер их игнорирует.

Важные замечания по настройке оборудования

При настройке двух терминалов в интерфейсе 1С (раздел Администрирование — Подключаемое оборудование) обязательно проверьте следующие параметры в окне «Параметры подключения»:

Подведем итог: наиболее стабильным решением является использование режима Мультимерчант, если банк-эквайер его поддерживает. Если же необходимо использовать две разные копии Arcus2, критически важно изолировать их на уровне имен драйверов в 1С и исключить влияние системных переменных Windows.

← На главную