При интеграции торгового оборудования и переходе на современные стандарты Библиотеки подключаемого оборудования (БПО) для печати нефискальных документов (например, слип-чеков эквайринга) вместо устаревших методов используется передача XML-пакета через метод НапечататьТекстовыйДокумент. Однако разработчики часто сталкиваются с двумя проблемами: возникновением ошибки «7D1h, Чек открыт — операция невозможна» и автоматическим выводом полных реквизитов организации (клише и шапки) на нефискальном чеке. Разберем по шагам причины этих проблем и практические способы их решения.
Выясним причину появления ошибки 7D1h. Данный код состояния фискального регистратора означает, что устройство находится в режиме открытого документа, из-за чего любая последующая команда печати или отрезки блокируется.
При формировании пакета нефискального документа в 1С с помощью стандартных механизмов БПО вызывается метод формирования XML:
ДанныеЧека = МенеджерОборудованияВызовСервера.ПолучитьXMLПакетДляТекстовогоДокумента(СтрокаТекста);
Проанализируем структуру переменной ДанныеЧека. В процессе преобразования текста функция может вернуть массив XML-структур. Если при передаче исходного текста в строке содержались лишние переносы, пустые блоки или разделители страниц, формируется массив из двух и более элементов. В первом элементе находится тело слип-чека, а во втором — пустая структура.
В результате драйвер ККТ успешно печатает первый документ, после чего приступает к обработке следующего элемента массива, открывает новый нефискальный документ, но из-за отсутствия строк не может корректно завершить операцию и оставляет чек открытым. При следующей попытке обращения к кассе драйвер возвращает ошибку 7D1h.
Для устранения этой неполадки применим следующие действия:
ОтменитьЧек / CancelCheck), либо воспользоваться методом БПО ОчиститьСостояниеЧека.Рассмотрим, почему при вызове метода печати текстового документа на чековой ленте появляются наименование организации, ИНН, клише и заголовок «НЕФИСКАЛЬНЫЙ ДОКУМЕНТ».
НапечататьТекстовыйДокумент инициирует открытие полноценного документа. Прошивка ККТ (согласно требованиям формата фискальных данных) обязана идентифицировать документ и печатает заголовок из таблиц кассы.Разберем возможные способы избавления от лишней шапки или оптимизации печати эквайринговых квитанций.
Посмотрим на параметры ККТ, доступные через утилиту «Тест драйвера ККТ»:
Наиболее надежный и экономичный способ — объединить печать фискального чека и банковского слипа в одну операцию. Для этого строки эквайринга передаются в массив текстовых строк фискального чека (в подвал или перед товарными позициями) в методе СформироватьЧек.
Преимущества такого подхода:
Если слип-чек обязательно должен печататься отдельным документом без открытия нефискального чека БПО, можно использовать прямое обращение к COM-объекту драйвера ККТ:
PrintString() или PrintWideString() драйвера.CutCheck().Следует учитывать, что в современных версиях прошивок под ФФД 1.2 прямая печать текста вне открытого фискального или нефискального документа может ограничиваться внутренними алгоритмами безопасности кассового аппарата.