Как исправить ошибку эквайринга «System error: 001 Details: Contact card issuer» в 1С:Розница

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

При интеграции торгового оборудования, в частности эквайринговых терминалов Ingenico, работающих через протокол Arcus2 (часто используется банком ВТБ), технические специалисты часто сталкиваются с критической ситуацией. Денежные средства с карты клиента успешно списываются, банк подтверждает операцию, однако в 1С:Розница всплывает окно с ошибкой: "Эквайринговая операция не была проведена: System error: 001 Details: Contact card issuer". В результате чек ККМ не пробивается, а в системе 1С операция оплаты не фиксируется. Если деньги уже списаны банком, для фиксации оплаты и печати фискального чека можно применить расширение для аварийного пробития чека при ошибке эквайринга.

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

Анализ природы ошибки 001 в контексте Arcus2

Ошибка Contact card issuer (Свяжитесь с банком-эмитентом) в стандартных банковских протоколах обычно означает отказ со стороны банка, выдавшего карту. Однако в случае работы через драйвер Arcus2 и конфигурацию 1С:Розница, ситуация иная. Если средства фактически списаны, это сигнализирует о том, что терминал успешно связался с банковским хостом, но не смог корректно передать подтверждение в 1С или сама 1С неверно интерпретировала ответ от компоненты.

Проанализируем основные причины возникновения этого сбоя:

  1. Несоответствие версий драйверов: В 1С:Розница может быть загружена одна версия драйвера (например, 1.0.2), в то время как ПО терминала требует версию 1.0.1.
  2. Права доступа к файловой системе: Обмен данными между 1С и ПО Arcus2 часто происходит через текстовые файлы (cheque.txt, result.dat). Если у пользователя Windows, под которым запущена 1С, нет прав на изменение или удаление файлов в папке C:\Arcus2, драйвер вернет ошибку.
  3. Неверный тип процессинга: При установке ПО Arcus2 на кассовый компьютер мог быть выбран тип протокола, не поддерживаемый текущим релизом 1С или прошивкой терминала.
  4. Таймауты ожидания: Система 1С обрывает ожидание ответа раньше, чем терминал успевает записать результат операции в лог-файл.

Шаг 1. Проверка настроек в 1С и драйвера терминала

Выясним, какой драйвер используется в вашей системе. Перейдем в раздел Администрирование — Подключаемое оборудование. Найдем ваш эквайринговый терминал и откроем его настройки. Обратим внимание на поле "Драйвер оборудования".

Проанализируем ситуацию с версиями. Часто релизы 1С:Розница 2.2 и 2.3 содержат встроенные компоненты, которые могут конфликтовать с обновленным ПО от банка. Попробуем обновить только компоненту (драйвер), не затрагивая всю конфигурацию. Для этого выполним следующие действия:

  1. Зайдем в справочник "Драйверы оборудования".
  2. Найдем драйвер "ВТБ: Эквайринговые терминалы" или "Arcus2".
  3. Нажмем кнопку "Обновить из файла" и укажем путь к актуальной библиотеке DualConnector.dll, которую можно запросить в техподдержке банка.

Важный нюанс: Убедитесь, что разрядность DualConnector.dll (x86 или x64) соответствует разрядности платформы 1С, которую вы используете. Если вы работаете в 32-битной платформе, 64-битный драйвер работать не будет.

Шаг 2. Настройка прав доступа и антивирусных исключений

Проанализируем взаимодействие 1С с папкой обмена. По умолчанию ПО Arcus2 устанавливается в корень диска C:\Arcus2. Для стабильной работы нам необходимо обеспечить беспрепятственный доступ 1С к этой папке.

Выполним следующие рекомендации:

Шаг 3. Корректировка параметров в cashier.xml

В корневой папке ПО Arcus2 находится конфигурационный файл cashier.xml. Разберем ключевые параметры, которые влияют на возникновение системных ошибок:


<CashierConfig>
    <Protocol>1</Protocol>
    <Timeout>90</Timeout>
    <LogPath>C:\Arcus2\LOGS</LogPath>
</CashierConfig>

Посмотрим на параметр Timeout. Если терминал долго связывается с банком, 1С может "отвалиться" по таймауту, не дождавшись ответа. Рекомендуется установить значение не менее 90 секунд. Также стоит проверить параметр Protocol — он должен соответствовать тому, что указано в настройках драйвера в 1С (Native API или COM).

Шаг 4. Использование лог-файлов для поиска истины

Если ошибка сохраняется, нам необходимо понять, на чьей стороне происходит сбой. Для этого проанализируем файл лога, который обычно называется p.log или находится в подпапке LOG внутри директории Arcus2.

Найдем в логе строку последней операции. Нас интересует код ответа (Response Code):

В такой ситуации часто помогает принудительная очистка папки обмена. Удалим все файлы с расширением .txt и .dat из папки C:\Arcus2 перед началом новой смены. Зависший файл от предыдущей (пусть даже тестовой) операции может блокировать запись новых данных.

Шаг 5. Выбор правильного типа процессинга

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

  1. Запустите утилиту настройки из комплекта поставки банка (часто это config.exe в папке Arcus2).
  2. Убедитесь, что выбран протокол обмена, совместимый с 1С (обычно это "Протокол обмена с кассой по умолчанию").
  3. В самой 1С:Розница в настройках терминала попробуйте переключить тип подключения (если драйвер позволяет выбирать между различными вариантами реализации интерфейса).

Резюме и рекомендации

Подводя итог, можно сказать, что ошибка System error: 001 в 1С при работе с терминалами VTB/Ingenico — это почти всегда проблема "последней мили" связи между банковской библиотекой и платформой 1С. Для решения проблемы:

1. Не спешите обновлять весь релиз 1С:Розница, так как это может повлечь другие ошибки. Попробуйте сначала обновить только файл DualConnector.dll.

2. Проверьте права доступа к папке Arcus2.

3. Синхронизируйте настройки таймаута в cashier.xml и в настройках оборудования в 1С.

4. Всегда проверяйте логи (p.log), чтобы убедиться, что деньги действительно ушли в банк, прежде чем делать повторную операцию, чтобы избежать двойного списания у клиента.

← На главную