Как исправить ошибку 7D1h при печати слип-чека и убрать шапку фискальника на Ритейл-01Ф в 1С

Программист 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

При интеграции торгового оборудования и переходе на современные стандарты Библиотеки подключаемого оборудования (БПО) для печати нефискальных документов (например, слип-чеков эквайринга) вместо устаревших методов используется передача XML-пакета через метод НапечататьТекстовыйДокумент. Однако разработчики часто сталкиваются с двумя проблемами: возникновением ошибки «7D1h, Чек открыт — операция невозможна» и автоматическим выводом полных реквизитов организации (клише и шапки) на нефискальном чеке. Разберем по шагам причины этих проблем и практические способы их решения.

Анализ и устранение ошибки «7D1h, Чек открыт — операция невозможна»

Выясним причину появления ошибки 7D1h. Данный код состояния фискального регистратора означает, что устройство находится в режиме открытого документа, из-за чего любая последующая команда печати или отрезки блокируется.

При формировании пакета нефискального документа в 1С с помощью стандартных механизмов БПО вызывается метод формирования XML:


ДанныеЧека = МенеджерОборудованияВызовСервера.ПолучитьXMLПакетДляТекстовогоДокумента(СтрокаТекста);

Проанализируем структуру переменной ДанныеЧека. В процессе преобразования текста функция может вернуть массив XML-структур. Если при передаче исходного текста в строке содержались лишние переносы, пустые блоки или разделители страниц, формируется массив из двух и более элементов. В первом элементе находится тело слип-чека, а во втором — пустая структура.

В результате драйвер ККТ успешно печатает первый документ, после чего приступает к обработке следующего элемента массива, открывает новый нефискальный документ, но из-за отсутствия строк не может корректно завершить операцию и оставляет чек открытым. При следующей попытке обращения к кассе драйвер возвращает ошибку 7D1h.

Для устранения этой неполадки применим следующие действия:

  1. Проверка и очистка входного массива: перед отправкой пакета на устройство необходимо проверить полученный массив XML и убедиться, что он содержит только заполненные структуры без пустых дублирующих элементов.
  2. Сброс зависшего состояния ККТ: если устройство уже заблокировано открытым чеком, необходимо программно или через тест драйвера вызвать метод отмены чека (ОтменитьЧек / CancelCheck), либо воспользоваться методом БПО ОчиститьСостояниеЧека.

Почему на нефискальном слип-чеке печатается шапка организации

Рассмотрим, почему при вызове метода печати текстового документа на чековой ленте появляются наименование организации, ИНН, клише и заголовок «НЕФИСКАЛЬНЫЙ ДОКУМЕНТ».

  1. Режим нефискального документа в БПО: метод НапечататьТекстовыйДокумент инициирует открытие полноценного документа. Прошивка ККТ (согласно требованиям формата фискальных данных) обязана идентифицировать документ и печатает заголовок из таблиц кассы.
  2. Упреждающая печать клише: в прошивках фискальных регистраторов семейств «Штрих-М» и «Ритейл» по умолчанию может быть включен режим упреждающей печати. В этом режиме заголовок следующего чека распечатывается сразу после выполнения отрезки предыдущего. Из-за этого кажется, что шапка принудительно добавляется ко всем нефискальным операциям.

Варианты настройки и альтернативные способы печати слипа

Разберем возможные способы избавления от лишней шапки или оптимизации печати эквайринговых квитанций.

Способ 1. Корректировка таблиц фискального регистратора

Посмотрим на параметры ККТ, доступные через утилиту «Тест драйвера ККТ»:

  1. Таблица 1 (Тип и режим кассы): найдем поле «Упреждающая печать клише» и отключим его. Это предотвратит заблаговременный вывод шапки сразу после отрезки. Также проверим поле «Печать заголовка чека» — в зависимости от версии прошивки его можно перевести в режим печати только для фискальных чеков.
  2. Таблица 4 (Текст в чеке): позволяет скорректировать рекламные строки шапки, однако системные реквизиты (ИНН и статус документа) формируются встроенным ПО кассы автоматически.

Способ 2. Печать слип-чека внутри единого фискального чека

Наиболее надежный и экономичный способ — объединить печать фискального чека и банковского слипа в одну операцию. Для этого строки эквайринга передаются в массив текстовых строк фискального чека (в подвал или перед товарными позициями) в методе СформироватьЧек.

Преимущества такого подхода:

  1. Печатается один общий документ с единой шапкой и одним клише.
  2. Исключаются лишние холостые отрезки чековой ленты.
  3. Экономится расход кассовой бумаги и сокращается общее время обслуживания покупателя.

Способ 3. Прямая построчная печать через низкоуровневый драйвер

Если слип-чек обязательно должен печататься отдельным документом без открытия нефискального чека БПО, можно использовать прямое обращение к COM-объекту драйвера ККТ:

  1. В цикле передаем строки слипа с помощью метода PrintString() или PrintWideString() драйвера.
  2. После вывода текста выполняем команду протяжки ленты и команду частичной или полной отрезки CutCheck().

Следует учитывать, что в современных версиях прошивок под ФФД 1.2 прямая печать текста вне открытого фискального или нефискального документа может ограничиваться внутренними алгоритмами безопасности кассового аппарата.

← На главную