Как исправить ошибку «В экземпляре объекта не задана ссылка на объект» при оплате через терминал INPAS в 1С?

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

При настройке эквайрингового оборудования INPAS пользователи часто сталкиваются с ситуацией, когда терминал успешно проходит тесты связи, но при попытке совершить реальную операцию оплаты в 1С возникает критическая ошибка: «В экземпляре объекта не задана ссылка на объект». Эта проблема особенно актуальна для конфигураций на базе 1С:ERP, 1С:Комплексная автоматизация 2.5 и 1С:Управление торговлей 11, работающих в терминальном режиме (RDP).

Разберем подробно причины возникновения этой ошибки и проанализируем последовательность шагов, необходимых для восстановления корректной работы системы. Основная причина кроется в конфликте между версиями программного обеспечения Dual Connector (DC), некорректной регистрацией COM-компонент в Windows и особенностями работы Библиотеки подключаемого оборудования (БПО) 1С.

Шаг 1. Анализ лог-файлов драйвера

Прежде чем приступать к активным действиям, нам необходимо выяснить, на каком этапе происходит сбой. Рассмотрим лог-файл драйвера, который обычно располагается в папке временных файлов пользователя или в директории установки Dual Connector. Типичная картина ошибки выглядит следующим образом:


2024.06.25 16:41:03.188 DEBUG SetParameter: Params: [TimeoutAfterGetParams; 2000]
2024.06.25 16:41:03.211 DEBUG Open: Params: []
2024.06.25 16:41:03.294 DEBUG TerminalParameters: Params: [; ]
2024.06.25 16:41:08.145 ERROR Exception: В экземпляре объекта не задана ссылка на объект
2024.06.25 16:41:08.147 DEBUG < TerminalParameters: Result=False; Params: [; ]

Проанализируем эту ситуацию: ошибка возникает сразу после вызова метода TerminalParameters. Это означает, что компонента 1С обращается к объекту драйвера, но сам объект либо не инициализирован, либо не может вернуть структуру параметров из-за отсутствия связи с нижележащим слоем ПО (Dual Connector).

Шаг 2. Выбор корректной версии Dual Connector

Как показывает практика, современная версия Dual Connector 2.x не всегда стабильно работает с текущими драйверами 1С, особенно если банк (например, Альфа-Банк) предоставляет специфические прошивки для терминалов PAX. Рассмотрим решение через откат версии:

  1. Полностью удалим текущую версию Dual Connector через «Панель управления».
  2. Очистим папку C:\Program Files (x86)\INPAS\ от остаточных файлов.
  3. Установим версию Dual Connector 1.x (рекомендуемая стабильная версия — 1.3.9.1 или 1.0.0.1 в зависимости от требований банка).
  4. При установке обязательно убедимся, что выбрана опция установки DC Proxy. Это критически важно для работы через TCP/IP.

Выясним причину: версии 1.x используют более старый, но более стабильный COM-интерфейс, который напрямую поддерживается большинством драйверов в БПО 1С без дополнительных прослоек совместимости.

Шаг 3. Регистрация библиотек и настройка прав доступа

Ошибка «ссылка на объект не указывает на экземпляр» часто означает, что Windows заблокировала доступ к COM-объекту или библиотека DC_Com.dll не зарегистрирована в реестре для текущего пользователя. Выполним следующие действия:

Запустим командную строку (cmd) от имени администратора и перейдем в папку с установленным коннектором:


cd "C:\Program Files (x86)\INPAS\DualConnector"
regsvr32 DC_Com.dll

Если вы работаете в 64-битной операционной системе, а клиент 1С используется 32-битный, убедитесь, что регистрация прошла успешно именно в подсистеме SysWOW64. Также проанализируем файл RegisterDC.bat. Посмотрим на пример корректного содержания bat-файла для регистрации:


@echo off
cd /d "C:\Program Files (x86)\INPAS\DualConnector"
regsvr32 /s DC_Com.dll
echo Компоненты успешно зарегистрированы.
pause

Важный момент: если работа ведется через RDP, убедитесь, что у пользователя есть права на «Изменение» и «Запись» в папке C:\Program Files (x86)\INPAS\DualConnector. Драйвер создает временные файлы (например, pos.xml или логи), и при отсутствии прав объект драйвера "падает" с неочевидной ошибкой.

Шаг 4. Настройка драйвера в интерфейсе 1С

После переустановки внешнего ПО перейдем к настройке внутри 1С. Посмотрим на список доступных драйверов. В новых версиях 1С:КА и 1С:УТ предлагается драйвер ИНПАС:Эквайринговые терминалы UNIPOS(ФЗ-491). Однако, если вы используете Dual Connector версии 1.x, этот драйвер может конфликтовать с ним.

Проанализируем альтернативный вариант: выберем драйвер «ИНПАС:Эквайринговые терминалы UNIPOS» (без приписки ФЗ-491). Несмотря на то что 1С может помечать его как устаревший, именно он обеспечивает наиболее стабильную работу с протоколом Dual Connector 1.x. В параметрах подключения укажите:

Шаг 5. Особенности работы с Java и графическим интерфейсом

Современные версии Dual Connector включают в себя компоненты Java для отрисовки графических окон (например, окно ввода пин-кода на мониторе). Если в системе установлена сторонняя Java, может возникнуть конфликт версий. Выясним причину ошибки:

С апреля 2025 года (и в ряде актуальных дистрибутивов) из стандартной Java удален компонент JavaFX. Если драйвер пытается вызвать GUI-форму, не находя JavaFX, он завершает работу аварийно. Рекомендуется использовать JRE, которая идет в комплекте с дистрибутивом INPAS, и не устанавливать Java отдельно. Перед установкой DC проверьте список установленных программ и удалите все версии Java Runtime Environment.

Итоги и проверка

После выполнения всех шагов перезагрузите сервер или рабочую станцию. Проверку следует проводить в два этапа:

  1. Запустите 1С от имени администратора один раз и выполните тест устройства.
  2. Если тест прошел успешно, проверьте операцию оплаты под обычным пользователем.

Если ошибка сохраняется, убедитесь, что в диспетчере задач запущен процесс dc_proxy.exe. Без этого процесса взаимодействие между 1С и терминалом будет невозможным, что и приведет к отсутствию ссылки на объект в коде драйвера.

← На главную