Переход на новые релизы конфигураций 1С (например, обновление 1С:Управление торговлей с версии 11.1.7 на 11.1.9) и одновременное обновление технологической платформы (до версии 8.3.5 и выше) часто преподносят неприятные сюрпризы в работе с подключаемым оборудованием. Одной из наиболее распространенных проблем является внезапный отказ эквайринговой системы Сбербанка.
В этой статье мы подробно разберем, почему происходят подобные сбои при обновлении систем, проанализируем причины возникновения распространенных ошибок с кодами 4309 и 4191, а также выработаем пошаговый алгоритм для их успешного устранения.
Для начала выясним первопричину технического сбоя. При переходе на новые релизы конфигураций фирма 1С регулярно обновляет встроенную Библиотеку стандартных подсистем (БСП). Изменения затрагивают механизмы взаимодействия программы с внешними компонентами и драйверами.
В старых версиях УТ интеграция с терминалами Сбербанка осуществлялась посредством традиционных COM-компонент, таких как sbrfcom.dll или устаревшая sbrf.dll. В обновленных конфигурациях разработчики полностью перешли на использование современного драйвера по технологии Native API (компонента «1С:Эквайринговые терминалы Сбербанк 2.Х»). При этом кардинально меняется не только внутренний код вызова функций, но и визуальный интерфейс — например, окно ожидания и считывания банковской карты на экране кассира.
Дополнительную сложность создает операционная система на рабочем месте кассира. Если на кассовом узле до сих пор используется устаревшая ОС (например, Windows XP или ее различные неофициальные сборки вроде ZverCD), новые библиотеки Native API могут отказаться работать. Современные криптографические протоколы безопасности (включая TLS 1.2), используемые банковским ПО для обмена данными с сервером авторизации, требуют актуальных обновлений операционной системы и наличия пакетов библиотек Microsoft Visual C++ Redistributable.
Ниже мы подробно рассмотрим две самые частые ошибки, возникающие в процессе и после обновления конфигурации 1С.
В протоколе работы программного обеспечения Сбербанка (UPOS) код ошибки 4309 буквально означает «Печатать нечего». Этот сбой происходит на этапе завершения финансовой транзакции, когда терминал успешно провел операцию через банк, но не смог передать кассовой программе или фискальному регистратору данные для печати слип-чека.
Рассмотрим по шагам методы решения этой проблемы:
Для корректного взаимодействия банковского ПО и платформы 1С терминал при проведении операции генерирует временные файлы (например, файлы результатов транзакции p, e, e.xml) в своем рабочем каталоге — как правило, это C:\sc552 или C:\sberbank. Если у пользователя Windows, под учетной записью которого запущена 1С, нет прав на запись или перезапись файлов в этой директории, система выдаст ошибку 4309. Необходимо зайти в свойства папки C:\sc552 на вкладку «Безопасность» и предоставить группе пользователей «Все» полный доступ на чтение, запись и изменение.
В процессе обновления конфигурации во временных файлах (кэше) 1С могут остаться устаревшие ссылки на старые версии драйверов эквайринга. Чтобы быстро и гарантированно очистить кэш, удалите базу данных из списка запуска 1С и добавьте ее снова с тем же путем к файлам базы или серверу. Дополнительно рекомендуется вручную очистить содержимое папки Temp в профиле локального пользователя Windows.
Довольно часто ошибка 4309 имеет банальную физическую причину: в фискальном регистраторе закончилась чековая лента, произошло ее замятие или открыта крышка принтера. Поскольку терминал не может распечатать слип-чек через принтер кассового аппарата, он прерывает операцию с ошибкой печати.
Современные версии Native API драйверов требуют корректного размещения и регистрации динамических библиотек. Выполним следующие действия:
sbpilot.dll, gate.dll и pilot_nt.dll актуальной версии скопированы в рабочую папку Сбербанка (C:\sc552).C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\).PATH операционной системы Windows, чтобы платформа всегда могла обнаружить нужные библиотеки.Вторая частая ошибка, которая может возникнуть при первом запуске оплаты картой после обновления, — это код 4191. Согласно официальному классификатору Сбербанка, данный код расшифровывается как «Неверный номер отдела» (Invalid Department).
Каждый физический эквайринговый терминал настраивается специалистами банка под конкретное юридическое лицо или торговую точку. Внутри конфигурации терминала выручка может разделяться по различным виртуальным секциям или отделам (например, для разделения продаж по разным системам налогообложения). Если 1С отправляет на терминал запрос, содержащий номер отдела, который не поддерживается настройками самого пин-пада или банковского сервера, транзакция отклоняется.
Разберем, как исправить ошибку 4191:
Перейдем в раздел «Администрирование» -> «Подключаемое оборудование». Откроем карточку нашего эквайрингового терминала и нажмем кнопку «Настроить». Найдем параметр, который называется «Номер отдела» (в некоторых версиях БСП — «Код отдела»).
0 или 1. После изменения обязательно сохраним настройки и проведем тест устройства.Откроем с помощью стандартного текстового редактора «Блокнот» конфигурационный файл pinpad.ini, который располагается в рабочей директории Сбербанка (C:\sc552). Нам необходимо найти параметры, отвечающие за идентификацию отделов (например, строки с ключевыми словами Merchant или Department). Параметры, указанные в настройках торгового оборудования в 1С, должны строго соответствовать конфигурации этого файла.
Если манипуляции с настройками в 1С не привели к успеху, это означает, что на сервере авторизации банка для вашего терминала заданы специфические параметры разделения учета. Необходимо связаться со службой поддержки Сбербанка и попросить технического специалиста предоставить точный номер отдела (Department ID) для вашей торговой точки, после чего прописать полученное значение в настройках 1С.
Таким образом, своевременный анализ изменений в механизмах интеграции торгового оборудования, корректная настройка прав доступа к файловой системе и точное сопоставление внутренних параметров терминала и программы 1С позволяют быстро восстановить работоспособность эквайринга после любых обновлений системы.