В процессе эксплуатации торгового оборудования часто возникает ситуация, когда штатные механизмы интеграции между учетной системой и банковским терминалом дают сбой. Одной из наиболее распространенных проблем является отсутствие автоматической сверки итогов по банковским операциям при закрытии смены в 1С:Розница 2.2. При этом сама оплата по картам и открытие смены проходят без нареканий, а терминал (в нашем случае PAX300 от Сбербанка) просто игнорирует команду на печать отчета. Разберем детально, как диагностировать и устранить эту проблему.
Первым делом нам необходимо исключить вероятность некорректных настроек в самом ПО Сбербанка. Основным файлом конфигурации для терминалов Pilot является pinpad.ini, который обычно располагается в корневой папке драйвера (например, C:\sc552). Проанализируем ключевые параметры, которые могут влиять на печать отчетов:
00, терминал пытается использовать собственный встроенный принтер. Однако у выносных пин-падов типа PAX300 его может не быть, или он может быть заблокирован. Для того чтобы текст сверки передавался в 1С и выходил на чековой ленте фискального регистратора, установите значение 01.pinpad.ini может приводить к потере команд в конце сессии закрытия смены.Важно помнить, что даже если файлы на разных торговых точках кажутся идентичными, стоит выполнить принудительное обновление параметров. Для этого в папке с драйвером найдите и запустите утилиту loadparm.exe. Она синхронизирует локальные настройки с профилем терминала на сервере банка.
Чтобы понять, на чьей стороне проблема — 1С или драйвера Сбербанка, нам нужно выполнить операцию сверки напрямую. В папке sc552 (или аналогичной) обычно присутствуют исполняемые файлы для тестирования. Рассмотрим процесс проверки:
Вызовите командную строку и перейдите в каталог с драйвером. Попробуйте запустить команду сверки вручную через утилиту управления (название может варьироваться в зависимости от версии ПО, часто это sb_pilot.exe с определенными ключами). Если сверка прошла и чек распечатался, значит, оборудование исправно, и корень проблемы кроется во взаимодействии 1С:Розница с библиотекой SBRF.dll. Для устранения подобных проблем совместимости подойдёт инструмент для подключения предыдущей версии драйвера эквайринга Сбербанка в 1С:Розница.
Как показывает практика и обсуждения на профессиональных форумах, проблема в типовой 1С:Розница может быть связана с тем, что система не дожидается освобождения COM-порта или завершения внутренних процессов драйвера перед подачей команды на закрытие смены в ФР. Самым надежным способом решения в данном случае является вынос сверки итогов за рамки автоматического цикла 1С.
Мы можем создать исполняемый файл (батник), который кассир будет запускать вручную после закрытия смены в 1С, либо мы можем интегрировать вызов этого файла в саму систему. Создадим файл settle.bat в папке с драйвером:
cd /d C:\sc552
sb_pilot.exe 7
В данном примере число 7 — это код операции сверки итогов для многих версий ПО Сбербанка. Проконсультируйтесь с технической поддержкой банка, чтобы уточнить точную команду для вашей версии драйвера.
Если мы хотим автоматизировать процесс, нам необходимо внести изменения в код программы (желательно через механизм расширений), чтобы вызов внешней программы происходил сразу после выполнения метода ЗакрытьСмену. Важный нюанс: 1С должна сначала освободить порт. Разберем примерный алгоритм действий в коде:
// Пример логики вызова внешней сверки итогов
Процедура ПослеЗакрытияСмены()
// Даем паузу 1-2 секунды, чтобы драйвер 1С отпустил COM-порт
ПодключитьОбработчикОжидания("ВыполнитьВнешнююСверку", 2, Истина);
КонецПроцедуры
Процедура ВыполнитьВнешнююСверку()
// Запуск внешнего приложения
ИмяФайлаСкрипта = "C:\sc552\settle.bat";
ЗапуститьПриложение(ИмяФайлаСкрипта, "C:\sc552", Истина);
КонецПроцедуры
Такой подход гарантирует, что команда на сверку уйдет в драйвер тогда, когда порт гарантированно свободен, и 1С не будет блокировать поток данных.
Если решение с батником не помогает, проанализируем файл лога p.log, который создается в папке с ПО терминала. Рассмотрим, на что обратить внимание:
Settlement или Settle.PrinterType).Подключаемом оборудовании. В параметрах драйвера эквайринга в 1С убедитесь, что флаг "Печатать слип-чеки на фискальном устройстве" активен.Иногда причина кроется в банальном отсутствии прав на запись в папку драйвера. При сверке итогов драйвер Сбербанка создает временные файлы (например, p, e, results.txt). Если у пользователя Windows, под которым запущена 1С, нет прав на создание/изменение файлов в C:\sc552, процесс сверки прервется без уведомления пользователя.
Также рекомендуем перерегистрировать основные компоненты драйвера. Выполните в командной строке от имени администратора:
regsvr32 C:\sc552\sbrfcom.dll
regsvr32 C:\sc552\sbrf.dll
Подведем итог: если штатная сверка итогов в 1С:Розница 2.2 на терминале PAX300 не работает, наиболее эффективным решением будет использование внешнего скрипта вызова сверки. Это обходит проблему конфликта портов и специфических багов в старых версиях драйверов SBRF, которые часто встречаются в типовых конфигурациях.