Проблема зависания кассового места при проведении эквайринговой операции — одна из самых неприятных ситуаций в ритейле. Часто мы сталкиваемся с тем, что деньги с карты клиента списались, терминал выдал слип-чек, а 1С:Розница «зависла» или выдала ошибку, не напечатав фискальный чек. Давайте разберем, почему это происходит и какие меры помогут стабилизировать работу кассы.
Основная причина кроется в рассинхронизации между 1С:Розница, драйвером платежных систем (UPOS) и самой ККТ. Когда банковский терминал возвращает данные об успешной транзакции в формате XML, кассовое ПО ожидает корректного завершения цепочки печати. Если драйвер ККТ не успевает обработать XML-пакет или в нем содержатся недопустимые символы, система уходит в бесконечное ожидание ответа или выдает ошибку устройства.
Часто причиной ошибки при сверке итогов или закрытии чека является наличие спецсимволов в XML-пакете от Сбербанка. Мы можем внедрить «заглушку» в общий модуль, чтобы очистить строку перед отправкой на печать.
Для этого модифицируем ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент, вставив следующий код:
ИначеЕсли ПараметрыПодключения.ТипОборудования = \"ККТ\" Или ПараметрыПодключения.ТипОборудования = \"ПринтерЧеков\" Тогда
// Костыль для исправления ошибки XML-пакета от терминала
СтрокаТекста = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(СтрокаТекста, \"[отрезка]\");
ДанныеЧека = МенеджерОборудованияВызовСервера.ПолучитьXMLПакетДляТекста(СтрокаТекста);
Если ваша ККТ (например, линейка Штрих-М) печатает медленно, 1С может отправить команду на печать следующего документа раньше, чем завершится печать текущего. Чтобы избежать конфликта ресурсов, необходимо принудительно ожидать завершения печати в коде обработки.
Рекомендуется использовать метод WaitForPrinting при работе с DrvFR.dll. Это гарантирует, что кассовый аппарат полностью освободится от текущей задачи, прежде чем 1С начнет передавать данные фискального чека.
Огромную роль играет качество физического подключения. Практика показывает, что использование USB-портов без дополнительного питания для моделей Verifone 805 и 820 является прямой причиной «отвалов» оборудования.
COM-порт, отдавайте предпочтение оригинальным чипсетам FTDI, избегая дешевых аналогов PL2303, которые часто сбоят под нагрузкой.Если все методы не приносят 100% результата, многие администраторы внедряют обходной путь для критических ситуаций:
Проверьте содержимое файла pinpad.ini в папке драйверов Сбербанка. В некоторых случаях критически важно наличие или отсутствие параметра PrinterEnd=01. Также убедитесь, что вы используете актуальную версию библиотек (последняя актуальная версия ПО терминалов — 26). Если проблема повторяется на разных магазинах, имеет смысл обновить версию платформы 1С до 8.3.10 и выше, так как старые релизы корректно не обрабатывают новые XML-ответы от терминалов, адаптированных под карты «МИР».
Помните, что стабильность кассового узла зависит от чистоты операционной системы: на Windows 7 драйверы работают стабильнее, чем на Windows 8/10, за счет более предсказуемой работы с USB-эмуляцией COM-портов.