В процессе оформления продажи по банковской карте в конфигурации 1С:Управление торговлей 10.3 нередко возникает сбой: клиент вводит ПИН-код на терминале, оплата успешно подтверждается банком, касса распечатывает один или два банковских слипа и после этого наглухо зависает. В программе 1С появляется сообщение об ошибке Нет связи, а фискальный чек продажи не пробивается до тех пор, пока кассовый аппарат не будет физически перезагружен. Разберем основные причины такого поведения оборудования и пошаговые методы устранения сбоя.
Прежде чем менять конфигурацию 1С или настройки операционной системы, выясним, связано ли зависание с аппаратной частью кассы или потоком нефискальных строк. Для этого протестируем работу устройства стандартной утилитой производителя.
Во время проведения оплаты по банковской карте терминал осуществляет сетевой обмен с процессинговым центром банка, а касса последовательно печатает объемные нефискальные слипы. Если в настройках торгового оборудования 1С установлен слишком короткий интервал ожидания ответа, обработка обслуживания прерывает сессию по таймауту прямо в момент передачи команд фискализации.
Интервал ожидания).30 до 60–120 секунд), чтобы дать кассе и эквайринговому терминалу гарантированное время на завершение всех промежуточных операций.Пока клиент вводит ПИН-код на терминале эквайринга, обмен данными между 1С и кассой по USB-порту временно приостанавливается. Операционная система Windows может ошибочно расценить этот простой как неактивность устройства и перевести виртуальный COM-порт в режим сна, что разрывает соединение.
Контроллеры USB, откроем свойства каждого Корневого USB-концентратора (USB Root Hub) и на вкладке Управление электропитанием снимем флажок Разрешить отключение этого устройства для экономии энергии.Порты (COM и LPT).Конфликт версий низкоуровневых драйверов ККТ и устаревшего внутреннего программного обеспечения кассы часто приводит к застреванию очередей команд печати.
Если конфигурация 1С:Управление торговлей 10.3 дорабатывалась, проанализируем код вызова процедур печати банковского слипа и фискального чека. Отправка непрерывного массива нефискальных строк без пауз переполняет внутреннюю память ККТ. Посмотрим на пример оптимизации алгоритма:
// Пример корректной паузы и проверки состояния перед открытием фискального чека
Если ПечатьСлипЧекаВыполнена Тогда
// Задержка на завершение физической протяжки бумаги термоголовкой
Предупреждение(" ", 1); // Либо использование специализированной функции ожидания
// Проверка готовности кассы к началу фискального документа
ОтветККТ = ПолучитьСостояниеККТ();
Если ОтветККТ = 0 Тогда
ОткрытьЧек(ВидЧека);
Иначе
ВызватьИсключение "Касса не готова к фискализации после печати слипа: " + ОписаниеОшибкиККТ();
КонецЕсли;
КонецЕсли;
Дополнительно рекомендуется проверить передаваемый текст слипа на наличие скрытых непечатных символов и спецсимволов отрезки (hex-кодов), способных заблокировать интерпретатор команд кассы, и программно очищать входящую строку перед отправкой в драйвер.
Печать подряд двух длинных слип-чеков создает пиковую нагрузку на термоголовку и блок питания кассы. Проанализируем физическое подключение:
RS-232 (настоящий COM-порт) через специализированный кабель, который аппаратно не подвержен сбросам при скачках напряжения.