Как исправить Ошибку 1 при сверке итогов на терминале Сбербанка в 1С?

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

В процессе ежедневной работы торговых точек кассиры часто сталкиваются с ситуацией, когда после автоматического обновления программного обеспечения (ПО) эквайрингового терминала Сбербанка стандартная процедура закрытия смены начинает давать сбой. При этом Z-отчет успешно распечатывается, но на этапе сверки итогов по картам система возвращает ошибку с кодом «Ошибка 1» (или статус завершения операции «-1»). Сверка итогов в автоматическом режиме из интерфейса 1С перестает работать, и кассирам приходится выполнять ее вручную непосредственно через клавиатуру POS-терминала.

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

Выясняем причину несовместимости ПО

Основная причина возникновения «Ошибки 1» при автоматической сверке итогов кроется в рассинхронизации версий программного обеспечения. Эквайринг Сбербанка работает как связка двух систем:

  1. Внутренняя прошивка терминала (UPOS). Она обновляется банком удаленно в фоновом режиме (например, до актуальных версий 30.xx.xx).
  2. Локальные компоненты интеграции на ПК. Это файлы драйверов и динамические библиотеки (DLL), к которым обращается система 1С при отправке команд на терминал.

Когда Сбербанк обновляет ПО самого терминала, протоколы обмена данными могут измениться. Если при этом на компьютере пользователя остаются старые библиотеки (такие как SBRF.dll или SBRFCOM.dll), происходит конфликт форматов данных. В результате 1С отправляет запрос на сверку итогов через функцию ИтогиДняПоКартам, терминал выполняет операцию, но возвращает ответ в новом формате, который старый локальный драйвер распознать не может, формируя пустой ответ или статус ошибки со значением «-1».

Рассмотрим подробнее пошаговые методы решения этой проблемы, начиная от простых эксплуатационных «лайфхаков» и заканчивая техническим обновлением библиотек.

Решение 1: Перерегистрация библиотек DLL и ручное обновление ПО Сбербанка

Если произошло обновление внутреннего ПО pos-терминала, необходимо вручную обновить локальные файлы Сбербанка на компьютере и заново зарегистрировать управляющую COM-библиотеку в операционной системе Windows.

Разберем этот процесс по шагам:

  1. Выясним, где хранятся файлы интеграции Сбербанка. Обычно это корневой каталог диска «C», папка C:\sc552 или C:\sbrf.
  2. Запросим у технической поддержки банка или возьмем из актуального дистрибутива Сбербанка свежие версии файлов интеграции (особенно файлы SBRF.dll, SBRFCOM.dll, pilot.exe). Извлечем их с заменой в рабочую папку (например, C:\sc552).
  3. Запустим командную строку Windows от имени Администратора. Для этого в поиске Windows введем «cmd», нажмем правой кнопкой мыши на «Командная строка» и выберем пункт «Запуск от имени администратора».
  4. Выполним перерегистрацию библиотеки SBRFCOM.dll. Введем команду регистрации и нажмем Enter:

regsvr32.exe "C:\sc552\SBRFCOM.dll"

При успешном выполнении операции система выдаст информационное сообщение: «Успешное выполнение DllRegisterServer в C:\sc552\SBRFCOM.dll».

После этого перезапустим сеанс «1С:Предприятие» и проверим выполнение сверки итогов.

Решение 2: Принудительный «сброс» кэша оборудования в 1С через тест устройства

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

  1. Запустим 1С под пользователем с правами администратора.
  2. Перейдем в раздел «Администрирование» -> «Подключаемое оборудование».
  3. В списке найдем наш эквайринговый терминал Сбербанка и откроем его карточку двойным щелчком мыши.
  4. Нажмем на кнопку «Параметры подключения».
  5. В открывшемся окне настроек нажмем кнопку «Тест устройства» (или «Тест оборудования»).
  6. Дождемся завершения выполнения теста. На экране может на мгновение появиться черное консольное окно работы утилиты обмена. Даже если тест завершится с предупреждением, это инициирует перезагрузку драйвера в памяти 1С.
  7. Нажмем кнопку «Записать и закрыть» для сохранения обновленных параметров связи.
  8. Полностью перезагрузим программу 1С и рабочее место кассира (РМК).

Данная процедура помогает восстановить работоспособность автоматической сверки в 90% случаев, когда файлы библиотек физически соответствуют версии прошивки, но связь внутри платформы зависла.

Решение 3: Полное пересоздание карточки терминала в 1С

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

  1. В справочнике «Подключаемое оборудование» выберем текущий терминал и пометим его на удаление.
  2. Создадим новый элемент оборудования с типом «Эквайринговые терминалы».
  3. Укажем тот же обработчик (драйвер) Сбербанка, который использовался ранее.
  4. Заполним параметры подключения, указав верный COM-порт (или IP-адрес для сетевых терминалов) и путь к рабочей папке с файлами интеграции (например, C:\sc552).
  5. Запишем настройки и проверим прохождение оплаты и закрытие смены.

Решение 4: Настройка прав доступа к файловой системе Windows

Часто при автоматическом обновлении ПО терминала Сбербанк перезаписывает рабочую директорию. При этом могут сброситься права доступа пользователей Windows к этой папке. Для корректной работы интеграции драйвер Сбербанка должен иметь возможность создавать и изменять служебные файлы ответов (такие как файлы p, e, receipt.txt).

Проверим и настроим права доступа:

  1. Откроем проводник Windows, перейдем к папке C:\sc552 (или вашей рабочей папке эквайринга), нажмем на нее правой кнопкой мыши и выберем «Свойства».
  2. Перейдем на вкладку «Безопасность».
  3. Нажмем кнопку «Изменить» для редактирования прав.
  4. В списке пользователей выберем группу «Пользователи» (или конкретную учетную запись кассира, под которой запускается 1С).
  5. В нижней части окна установим флажок напротив пункта «Полный доступ» (или как минимум разрешим «Запись», «Модификацию» и «Чтение»).
  6. Нажмем «Применить» и «ОК» для сохранения изменений для всех вложенных файлов и папок.

Решение 5: Тонкая настройка pinpad.ini (параметр ShowScreens)

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

Для того чтобы передать все диалоговые окна исключительно на экран самого POS-терминала и отключить их появление на мониторе компьютера, выполним редактирование конфигурационного файла:

  1. Перейдем в рабочую папку Сбербанка (например, C:\sc552).
  2. Найдем файл конфигурации с именем pinpad.ini и откроем его с помощью любого текстового редактора (например, Блокнота).
  3. Найдем в тексте строку, содержащую параметр ShowScreens.
  4. Если параметр имеет значение ShowScreens=1, это означает, что диалоговые окна выводятся на экран персонального компьютера. Изменим это значение на 0:

ShowScreens=0

Если данной строки в файле нет, мы можем вручную добавить ее в конец файла конфигурации.

После внесения изменений сохраним файл pinpad.ini. Теперь все текстовые сообщения («Вставьте карту», «Введите пин-код», «Недостаточно средств» и т. д.) будут отображаться только на дисплее самого пин-пада, не мешая работе интерфейса 1С кассира и предотвращая зависания потоков обмена данными во время сверки итогов.

Применение рассмотренных методик в комплексе позволяет оперативно и без привлечения банковских специалистов восстановить работоспособность эквайринга Сбербанка и устранить «Ошибку 1» при автоматическом закрытии смены в 1С.

← На главную