Как устранить сбой 1С:Розницы (ошибка dialog_forms.dll / ntdll.dll) при оплате картой через терминал Сбербанка?

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

Рассмотрим распространенную и крайне неприятную проблему: периодические сбои программы 1С:Розница 2.3 в момент пробития чека с оплатой по банковской карте. Ситуация проявляется в виде аварийного завершения работы 1С с ошибкой приложения 1cv8.exe, где в качестве сбойного модуля указываются системные библиотеки dialog_forms.dll или ntdll.dll. Последствия могут быть разными: печатается только слип-чек, а фискальный — нет; чек ККМ зависает в очереди; или же после перезапуска 1С проведенный документ и вовсе исчезает. Проблема носит плавающий характер и может возникать от одного до нескольких раз в день, вызывая простои на кассе.

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

Анализ проблемы: разбираемся в версиях драйверов Сбербанка

Причина нестабильной работы часто кроется не в "железе" или ошибках конфигурации 1С, а в драйвере, который обеспечивает взаимодействие программы с пин-падом. Для подключения терминалов Сбербанка в 1С исторически существует два основных подхода, которые условно можно разделить на две версии.

1. Драйвер "1С:Эквайринговые терминалы Сбербанк 1.Х"

Это наиболее распространенный вариант, который использует библиотеки sbrf.dll и gate.dll из папки sc552. Его главная отличительная черта — при оплате на экране появляется фирменное зеленое графическое окно Сбербанка для ввода пин-кода и взаимодействия с картой. Именно эта тесная интеграция графического интерфейса драйвера с платформой 1С, по-видимому, и вызывает конфликты с системными библиотеками, приводя к аварийному завершению работы.

2. Драйвер "1С:Эквайринговые терминалы Сбербанк 2.Х"

Этот драйвер работает по другому принципу. Он не имеет собственного графического интерфейса, а взаимодействует с терминалом через внешнюю утилиту-посредник — pilot_nt.exe или ее более современный аналог sb_pilot.exe. При оплате вместо зеленого окна на экране появляется черное консольное окно (как в командной строке), где текстом отображаются все этапы операции: "Приложите карту", "Связь с банком", "Операция одобрена" и т.д. Такой подход более стабилен, так как процесс обмена данными с терминалом вынесен за пределы основного процесса 1cv8.exe, что исключает прямые конфликты, приводящие к сбою.

Решение проблемы заключается в переходе с нестабильного драйвера версии 1.Х на более надежный консольный драйвер версии 2.Х.

Пошаговое решение: Переход на драйвер Сбербанка 2.Х

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

  1. Получение необходимых файлов от Сбербанка

    Ключевой момент — получение комплекта файлов для работы через pilot_nt.exe. Эти файлы должны предоставляться технической поддержкой Сбербанка. При обращении будьте настойчивы. Возможно, инженеры на первой линии не сразу поймут, о чем речь, и будут предлагать стандартные решения. Четко сформулируйте задачу: "Необходим комплект драйверов для подключения терминала к 1С через pilot_nt.exe (или sb_pilot.exe)". Иногда они называют этот способ "старым" или "консольным". Вам должны предоставить архив с утилитой и сопутствующими файлами, включая pinpad.ini.

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

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

    1. Перейдите в раздел НСИ и администрирование → РМК и подключаемое оборудование.
    2. В открывшемся окне выберите вкладку Подключаемое оборудование.
    3. Установите фильтр по типу оборудования "Эквайринговые терминалы" и откройте настройки вашего текущего терминала.
    4. В поле Драйвер оборудования измените значение с 1С:Эквайринговые терминалы Сбербанк 1.Х на 1С:Эквайринговые терминалы Сбербанк 2.Х.
    5. Нажмите кнопку Настроить.... В окне параметров укажите путь к папке, куда вы распаковали файлы от Сбербанка (ту, где лежит pilot_nt.exe).
    6. Сохраните изменения, нажав Записать и закрыть.
  3. Проверка и нюансы работы

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

    Важный момент: часто после такой настройки при нажатии на кнопку "Тест устройства" в параметрах оборудования 1С может выдавать ошибку. Не обращайте на это внимания. Несмотря на ошибку теста, основные операции (оплата, отмена, сверка итогов) в 99% случаев будут работать корректно непосредственно из Рабочего места кассира (РМК). Проверьте работу, пробив тестовый чек.

Дополнительные рекомендации и возможные проблемы

Даже после перехода на новый драйвер могут возникнуть некоторые сложности. Рассмотрим, как с ними справиться.

Таким образом, переход на консольный драйвер Сбербанка версии 2.Х является проверенным и эффективным методом решения проблемы с аварийным завершением работы 1С:Розницы при эквайринговых операциях. Этот способ повышает общую стабильность кассового узла и избавляет от простоев в работе.

← На главную