В процессе ежедневной работы торговых точек кассиры часто сталкиваются с ситуацией, когда после автоматического обновления программного обеспечения (ПО) эквайрингового терминала Сбербанка стандартная процедура закрытия смены начинает давать сбой. При этом Z-отчет успешно распечатывается, но на этапе сверки итогов по картам система возвращает ошибку с кодом «Ошибка 1» (или статус завершения операции «-1»). Сверка итогов в автоматическом режиме из интерфейса 1С перестает работать, и кассирам приходится выполнять ее вручную непосредственно через клавиатуру POS-терминала.
В данной статье мы подробно разберем, почему возникает эта ошибка, проанализируем взаимосвязь между компонентами интеграции 1С и Сбербанка, а также рассмотрим пошаговые методы устранения этой неисправности.
Основная причина возникновения «Ошибки 1» при автоматической сверке итогов кроется в рассинхронизации версий программного обеспечения. Эквайринг Сбербанка работает как связка двух систем:
Когда Сбербанк обновляет ПО самого терминала, протоколы обмена данными могут измениться. Если при этом на компьютере пользователя остаются старые библиотеки (такие как SBRF.dll или SBRFCOM.dll), происходит конфликт форматов данных. В результате 1С отправляет запрос на сверку итогов через функцию ИтогиДняПоКартам, терминал выполняет операцию, но возвращает ответ в новом формате, который старый локальный драйвер распознать не может, формируя пустой ответ или статус ошибки со значением «-1».
Рассмотрим подробнее пошаговые методы решения этой проблемы, начиная от простых эксплуатационных «лайфхаков» и заканчивая техническим обновлением библиотек.
Если произошло обновление внутреннего ПО pos-терминала, необходимо вручную обновить локальные файлы Сбербанка на компьютере и заново зарегистрировать управляющую COM-библиотеку в операционной системе Windows.
Разберем этот процесс по шагам:
C:\sc552 или C:\sbrf.SBRF.dll, SBRFCOM.dll, pilot.exe). Извлечем их с заменой в рабочую папку (например, C:\sc552).SBRFCOM.dll. Введем команду регистрации и нажмем Enter:
regsvr32.exe "C:\sc552\SBRFCOM.dll"
При успешном выполнении операции система выдаст информационное сообщение: «Успешное выполнение DllRegisterServer в C:\sc552\SBRFCOM.dll».
После этого перезапустим сеанс «1С:Предприятие» и проверим выполнение сверки итогов.
В некоторых случаях конфигурация 1С продолжает использовать кэшированные параметры старого драйвера подключения. Существует быстрый способ заставить платформу 1С обновить связь с внешними библиотеками:
Данная процедура помогает восстановить работоспособность автоматической сверки в 90% случаев, когда файлы библиотек физически соответствуют версии прошивки, но связь внутри платформы зависла.
Если запуск теста оборудования не принес желаемого результата, проанализируем вариант с полным пересозданием карточки эквайринга. Старые записи в системных регистрах сведений 1С могут блокировать правильную отправку команд. Действуем по следующему алгоритму:
C:\sc552).Часто при автоматическом обновлении ПО терминала Сбербанк перезаписывает рабочую директорию. При этом могут сброситься права доступа пользователей Windows к этой папке. Для корректной работы интеграции драйвер Сбербанка должен иметь возможность создавать и изменять служебные файлы ответов (такие как файлы p, e, receipt.txt).
Проверим и настроим права доступа:
C:\sc552 (или вашей рабочей папке эквайринга), нажмем на нее правой кнопкой мыши и выберем «Свойства».При интеграции терминалов Сбербанка через утилиту управления часто возникает побочная проблема: на экране компьютера кассира всплывают модальные окна или терминальные окна утилиты sb_pilot.exe, требующие дополнительных подтверждений со стороны пользователя. Это тормозит работу кассира и может приводить к зависанию сессии 1С, особенно если работа ведется в терминальном режиме (RDP).
Для того чтобы передать все диалоговые окна исключительно на экран самого POS-терминала и отключить их появление на мониторе компьютера, выполним редактирование конфигурационного файла:
C:\sc552).pinpad.ini и откроем его с помощью любого текстового редактора (например, Блокнота).ShowScreens.ShowScreens=1, это означает, что диалоговые окна выводятся на экран персонального компьютера. Изменим это значение на 0:
ShowScreens=0
Если данной строки в файле нет, мы можем вручную добавить ее в конец файла конфигурации.
После внесения изменений сохраним файл pinpad.ini. Теперь все текстовые сообщения («Вставьте карту», «Введите пин-код», «Недостаточно средств» и т. д.) будут отображаться только на дисплее самого пин-пада, не мешая работе интерфейса 1С кассира и предотвращая зависания потоков обмена данными во время сверки итогов.
Применение рассмотренных методик в комплексе позволяет оперативно и без привлечения банковских специалистов восстановить работоспособность эквайринга Сбербанка и устранить «Ошибку 1» при автоматическом закрытии смены в 1С.