Как исправить ошибку «Команда не поддерживается в данном режиме» при печати чеков из 1С 7.7 на онлайн-кассе Штрих?

Программист 1С v7.7 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При интеграции онлайн-касс линейки «Штрих-М» (например, «Штрих-On-Line») с конфигурацией «1С:Торговля и Склад 7.7» через внешнюю компоненту DrvFR.dll и обработку обслуживания часто возникает ошибка: «Фискальный регистратор: ошибка при печати чека Команда не поддерживается в данном режиме». При этом статус кассы в драйвере может выглядеть корректным (Режим 2 — «Кассовая смена открыта», Подрежим 0 — «Бумага есть»), однако печать из документов (ПКО, Чек ККМ) не выполняется.

Разберем причины возникновения этой ошибки и пошаговые методы её устранения.

Причины возникновения ошибки

Проанализируем основные факторы, приводящие к блокировке фискальных операций:

  1. Переключение интерфейса кассы в режим RNDIS: При настройке отправки данных в ОФД специалист по кассовой технике часто переводит порт USB из режима виртуального COM-порта (VCOM) в режим сетевой карты (RNDIS). После этого операционная система перестает видеть устройство на прежнем виртуальном COM-порту, и попытка отправки прямых команд по COM-протоколу из 1С завершается ошибкой.
  2. Зависший незавершенный документ в ККТ: Если предыдущий чек был прерван из-за сбоя связи, отсутствия бумаги или некорректной команды, фискальный регистратор остается во внутреннем подрежиме незавершенного чека. Отправка команды открытия нового чека в таком состоянии отклоняется.
  3. Несовместимость старой обработки 1С 7.7 с требованиями 54-ФЗ: Типовые обработки обслуживания прошлых лет (например, fr_elves.ert или fr_shtrih.ert) вызывают методы драйвера по старому стандарту, не передавая обязательные реквизиты (СНО, признак способа расчета, ставки НДС нового формата, данные кассира). Прошивка онлайн-ККТ требует соблюдения строгого порядка тегов, и при его нарушении регистратор возвращает ошибку режима.

Шаг 1. Первичная диагностика через «Тест драйвера ККТ»

Выясним причину сбоя, проверив работу аппарата вне среды 1С:

  1. Запустим утилиту «Тест драйвера ФР» (Штрих-М).
  2. Перейдем в настройки свойств и проверим связь с кассой.
  3. Если связь установлена, откроем вкладку «Регистрация» или «Печать чека» и попробуем пробить тестовый чек на 1 рубль.
  4. Если тест драйвера возвращает аналогичную ошибку, значит, проблема кроется в зависшем состоянии ККТ, некорректном канале связи или прошивке. Если из драйвера чек печатается, проблема локализована в модуле внешней обработки 1С.

Шаг 2. Сброс зависшего состояния и отмена чека

Если касса находится в промежуточном состоянии, вернем её в базовый режим:

  1. В утилите «Тест драйвера ФР» перейдем на вкладку «Аннулирование» (или «Режимы»).
  2. Нажмем кнопку «Отмена чека» (команда SysAdminCancelCheck).
  3. Если в буфере печати остался документ, выполним команду «Продолжение печати».
  4. Снова снимем краткий статус кассы, убедившись, что подрежим равен 0.

Шаг 3. Корректная настройка подключения (VCOM / RNDIS / Физический COM)

Рассмотрим варианты взаимодействия 1С 7.7 и фискального регистратора:

  1. Вариант 1: Разделение каналов управления и передачи в ОФД (рекомендуемый). Подключим кассу к компьютеру физическим кабелем RS-232 (COM-порт) для управления из 1С, а интерфейс USB оставим в режиме RNDIS для стабильной связи кассы с серверами ОФД. В таблицах ККТ (Таблица 16) настроим соответствующие порты обмена.
  2. Вариант 2: Работа через TCP/IP (RNDIS). Если касса переведена в RNDIS, переключим подключение в драйвере и в 1С с COM-порта на протокол «TCP сокет». Укажем сетевой IP-адрес ККТ (по умолчанию в таблицах кассы часто используется 192.168.137.111) и порт 7778.
  3. Вариант 3: Обновление драйверов и прошивки. Установим актуальную версию драйвера «Штрих-М» и обновим прошивку ККТ у сервисного партнера, так как устаревшие микропрограммы могут вызывать сбои при одновременной печати и сетевом обмене.

Шаг 4. Доработка внешней обработки обслуживания в 1С 7.7

Проанализируем структуру внешней обработки fr_elves.ert (или аналогичной). Для корректной печати онлайн-чека перед открытием фискального документа необходимо программно передать обязательные реквизиты через объект драйвера AddInDrvFR.

Посмотрим на пример адаптации кода инициализации и печати чека в процедуре проведения фискальной операции:


// Пример корректной установки свойств перед регистрацией чека
ЗагрузитьВнешнююКомпоненту("DrvFR.dll");
ФР = СоздатьОбъект("AddIn.DrvFR");

// Установка пароля системного администратора
ФР.Password = 30;

// Отмена незавершенных операций перед началом печати
ФР.SysAdminCancelCheck();

// Установка системы налогообложения (СНО) для чека
// 1 - ОСН, 2 - УСН Доход, 4 - УСН Доход-Расход, 8 - ЕНВД, 16 - ЕСХН, 32 - ПСН
ФР.TaxType = 2; 

// Установка параметров кассира
ФР.StringForPrinting = "Кассир: Иванов И.И.";
ФР.PrintString();

// Открытие чека продажи (0 - Продажа)
ФР.CheckType = 0;
ФР.OpenCheck();
Если ФР.ResultCode <> 0 Тогда
    Предупреждение("Ошибка открытия чека: " + ФР.ResultCodeDescription);
    Возврат;
КонецЕсли;

Разберем важные моменты при регистрации позиций: в онлайн-кассах ставки НДС передаются в строгом соответствии с номерами налоговых ставок, настроенных в таблицах драйвера ККТ. Несоответствие номера налога ставке из документа 1С также вызывает ошибку режима.


// Регистрация товарной позиции с указанием ставки НДС
ФР.Quantity = 1;
ФР.Price = 100.00;
ФР.Department = 1;
ФР.Tax1 = 1; // Номер налога из таблицы налогов ККТ
ФР.StringForPrinting = "Товар 1";
ФР.Sale();

// Закрытие чека с передачей суммы оплаты
ФР.Summ1 = 100.00; // Оплата наличными
ФР.CloseCheck();
Если ФР.ResultCode <> 0 Тогда
    ФР.SysAdminCancelCheck();
    Предупреждение("Ошибка закрытия чека: " + ФР.ResultCodeDescription);
КонецЕсли;

Таким образом, комплексная проверка состояния кассы, правильный выбор сетевого интерфейса и адаптация команд внешней обработки 1С 7.7 позволяют полностью устранить ошибку режима при печати чеков.

← На главную