Как убрать надпись "Чек недействителен" на ККТ АТОЛ при работе без фискального накопителя

Системный администратор Торговля и дистрибуция
← На главную

При использовании современных кассовых аппаратов АТОЛ без фискального накопителя (ФН) владельцы бизнеса и разработчики часто сталкиваются с неприятной проблемой. На каждом распечатанном чеке ККТ выводит крупную предупреждающую надпись "ЧЕК НЕДЕЙСТВИТЕЛЕН" (или "Демонстрационный режим"). Это штатное поведение ККТ, заложенное производителем для предотвращения нелегального использования кассы в обход налоговых органов.

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

Причина возникновения надписи "Чек недействителен"

Прежде чем перейти к методам устранения надписи, выясним причину её появления. По умолчанию микропрограмма (прошивка) ККТ АТОЛ работает в одном из двух режимов:

  1. Фискальный режим — полноценная работа с установленным фискальным накопителем и передачей данных в ОФД.
  2. Учебный / демонстрационный режим — активен, когда ФН в кассе отсутствует или касса не зарегистрирована. В этом режиме драйвер при вызове команд оформления фискального чека (открытие чека, регистрация позиций, закрытие чека) автоматически добавляет на чековую ленту текст о недействительности документа.

Наша задача — перевести ККТ в специальный режим принтера документов (АСПД) либо изменить способ отправки данных из 1С таким образом, чтобы касса не считала печатаемый документ фискальным чеком.

---

Метод 1. Перевод ККТ АТОЛ в режим АСПД (ЕНВД) через драйвер

Самый простой и правильный путь — активировать во внутренней памяти ККТ специальный режим принтера документов (АСПД или режим ЕНВД). В этом режиме касса программно «понимает», что она работает без ФН легально, и перестает печатать предупреждающие надписи.

Важное ограничение: данный метод работает только на фискальных регистраторах со старыми версиями прошивок (платформа 2.5, версии прошивок до 3689) и на моделях, поддерживающих режим АСПД (например, АТОЛ 30Ф, АТОЛ 11Ф, АТОЛ 22Ф/55Ф). На новых прошивках (платформа 5.0) и на некоторых смарт-терминалах (например, АТОЛ Sigma, АТОЛ 91Ф/92Ф) производитель полностью заблокировал возможность перевода в АСПД. При попытке перевода вы можете столкнуться с Ошибкой 122 ("Активизация памяти ПД невозможна"). Если это ваш случай, переходите сразу к Мегоду 2.

Выполним процедуру перевода ККТ в режим АСПД по шагам:

  1. Подключим кассовый аппарат к компьютеру через USB или COM-порт и запустим утилиту "Тест драйвера ККТ" (рекомендуется использовать ДТО 10 или ДТО 8.14).
  2. Установим связь с ККТ, перейдя в свойства соединения и проверив успешность подключения (кнопка "Проверка связи").
  3. В главном меню тест-драйвера или специализированной "Утилиты регистрации АТОЛ" найдем раздел, отвечающий за фискализацию и регистрацию аппарата.
  4. В списке опций регистрации выберем пункт "Активировать память ПД" (или "Включить режим ЕНВД"). При этом устанавливать фискальный накопитель в ККТ не требуется.
  5. Подтвердим операцию. Касса должна издать звуковой сигнал и распечатать на чековой ленте информационный отчет с текстом: Активация выполнена. Режим ЕНВД включен.

После проведения этой несложной настройки касса начнет печатать обычные чеки без раздражающей надписи о недействительности.

---

Метод 2. Печать чека текстовыми строками из 1С (Slip-печать)

Если ваша модель кассы не поддерживает переход в режим АСПД, или на ней установлена современная прошивка платформы 5.0, метод с утилитой регистрации не сработает. Однако мы можем обойти ограничение программным путем непосредственно из 1С.

Когда 1С отправляет документ на печать стандартным образом, она вызывает методы фискальной печати: сначала открывает чек через драйвер, затем регистрирует товарные позиции и, наконец, закрывает чек. Именно процедура закрытия фискального чека при отсутствии ФН инициирует печать надписи "Чек недействителен".

Решение заключается в том, чтобы вообще не открывать фискальный чек. Вместо этого мы будем использовать ККТ как обычный принтер, отправляя на него текстовые строки. При такой схеме (slip-печать) устройство просто выводит на бумагу присланный текст, не анализируя его структуру, и не добавляет никаких сервисных сообщений от себя.

Проанализируем пример кода на языке 1С для реализации текстовой печати через Драйвер торгового оборудования АТОЛ 10-й версии (ДТО 10):


// Создаем объект драйвера ККТ АТОЛ 10
Драйвер = Новый COMОбъект("AddIn.Fptr10");

// Устанавливаем параметры подключения (порт, скорость и т.д.)
// В данном примере параметры берутся по умолчанию, настроенные в системе
Драйвер.ПоказыватьСвойства = Ложь;

// Открываем соединение с кассовым аппаратом
РезультатПодключения = Драйвер.open();

Если РезультатПодключения <> 0 Тогда
    Предупреждение("Не удалось подключиться к кассовому аппарату!");
    Возврат;
КонецЕсли;

// Начинаем нефискальную печать документа
// Мы НЕ вызываем метод openReceipt(), а сразу отправляем текст

// Печать заголовка документа
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "      ООО ""МОЯ ТОРГОВАЯ КОМПАНИЯ""");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGNMENT_CENTER);
Драйвер.printText();

Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "          ТОВАРНЫЙ ЧЕК (КОПИЯ)");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGNMENT_CENTER);
Драйвер.printText();

Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "------------------------------------------");
Драйвер.printText();

// Печать товарных позиций (в реальной задаче здесь будет цикл по табличной части документа)
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "1. Кабель USB-C 1.5м             1 x 450.00");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGNMENT_LEFT);
Драйвер.printText();

Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "2. Переходник OTG                2 x 150.00");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGNMENT_LEFT);
Драйвер.printText();

Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "------------------------------------------");
Драйвер.printText();

// Печать итоговой суммы
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "ИТОГО К ОПЛАТЕ:                     750.00");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGNMENT_RIGHT);
Драйвер.printText();

// Печать подвала документа
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_TEXT, "      Спасибо за покупку!");
Дrapвер.setParam(Драйвер.LIBFPTR_PARAM_ALIGNMENT, Драйвер.LIBFPTR_ALIGNMENT_CENTER);
Драйвер.printText();

// Производим отрезку чековой ленты (полную или частичную)
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_CUT_TYPE, Драйвер.LIBFPTR_CUT_FULL);
Драйвер.cut();

// Закрываем соединение с ККТ
Драйвер.close();

Рассмотрим подробнее преимущества и особенности данного метода:

Резюме

Если перед вами стоит задача запустить ККТ АТОЛ без фискального накопителя в качестве обычного принтера документов, сначала попробуйте перевести устройство в режим АСПД/ЕНВД через штатную утилиту тест-драйвера. Если касса выдает ошибку о невозможности активизации памяти ПД (что часто бывает на современных прошивках), единственным надежным и стабильным решением будет переписать алгоритм отправки чека из 1С на построчную нефискальную slip-печать.

← На главную