Что делать, если чек ККМ напечатался, но не провелся в 1С, и возник дубликат на кассе?

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

В практической работе кассиров и системных администраторов нередко возникает неприятная ситуация: при закрытии чека фискальный регистратор (ККТ) успешно печатает бумажный документ, но в программе 1С документ зависает в статусе «Не проведен» или выдает ошибку. Если кассир, не разобравшись в ситуации, повторно нажимает кнопку «Пробить чек», программа проводит документ и дает команду на печать еще одного фискального чека. В результате на кассовом аппарате пробивается дубликат, фактическая выручка на ККТ удваивается, а в 1С отражается только одна продажа.

В этой статье мы подробно разберем, почему возникает подобный сбой, как исправить эту ошибку на старых фискальных регистраторах через тест драйвера ККМ и как правильно решать подобные проблемы на современных онлайн-кассах в соответствии с требованиями 54-ФЗ.

Технические причины сбоя связи между 1С и ККТ

Рассмотрим природу этого технического сбоя. Ситуация, когда чек физически напечатался, но в 1С транзакция осталась незавершенной, чаще всего связана с потерей обратной связи от кассового аппарата. Проанализируем основные причины:

  1. Таймаут связи (Timeout) в настройках торгового оборудования. Программа 1С отправляет на кассовый аппарат пакет данных для формирования чека. Касса принимает данные, записывает их в фискальную память (или фискальный накопитель) и начинает печатать чек. Печать длинного чека (особенно если в нем более 10–20 позиций номенклатуры) занимает определенное время. Если в настройках подключения ККТ в 1С установлен слишком короткий таймаут ожидания ответа (например, стандартные 1000–1500 мс), программа прерывает сессию по таймауту, решив, что касса зависла. При этом сама касса успешно завершает печать чека и считает операцию закрытой.
  2. Рассинхронизация скоростей портов. Если скорость передачи данных COM-порта (или виртуального USB-COM порта) в Диспетчере устройств Windows не совпадает со скоростью, настроенной в самом фискальном регистраторе (например, на кассе установлена скорость 115200 бод, а в системе — 9600 бод), могут возникать буферные перегрузки. Запрос «туда» уходит корректно, а ответный пакет «обратно» искажается или теряется.
  3. Сбои при обмене данными в распределенных базах (РИБ). Если в магазине настроен частый автоматический обмен данными между кассовыми узлами и центральной базой, сессия обмена может совпасть по времени с моментом фискализации чека, кратковременно заблокировав порты или ресурсы процессора.

Для минимизации таких рисков рекомендуется всегда увеличивать параметр Таймаут в настройках подключения ККТ в 1С до 5000–10000 мс. Это гарантирует, что программа дождется ответа от кассы даже при печати очень длинного чека.

Решение проблемы на старых кассовых аппаратах через драйвер ККМ

Если вы работаете на старом оборудовании (например, АТОЛ Fprint-03 с драйвером версии 6) под управлением старых конфигураций (таких как 1С:Управление торговлей 11.1), исправление ситуации можно произвести напрямую через утилиту драйвера ККМ. Наша цель — убрать лишнюю сумму продаж из фискального регистратора, не затрагивая при этом корректные данные в 1С.

Разберем по шагам алгоритм проведения корректирующего возврата через «Тест драйвера ККМ» АТОЛ:

  1. Убедитесь, что текущая кассовая смена закрыта. Все операции по корректировке итогов рекомендуется выполнять при закрытой смене во избежание путаницы в текущих отчетах.
  2. Запустите утилиту «Тест драйвера ККМ» на рабочем месте кассира.
  3. Перейдите в меню «Настройка свойств», выберите модель вашего фискального регистратора, укажите правильный COM-порт и скорость подключения. Нажмите кнопку «Проверка связи». В строке состояния должны появиться данные вашей кассы — это означает, что связь установлена.
  4. Выйдите из окна свойств драйвера и установите флаг «Устройство включено» в главном окне утилиты.
  5. Перейдите на вкладку «Запросы» и нажмите кнопку «Наличные». Программа покажет сумму наличных, которая в данный момент числится в кассе. Зафиксируйте это значение для контроля.
  6. Перейдите на вкладку «Регистрация» и заполните следующие поля для оформления чека возврата:
    • В поле «Название» введите текст (например, Ошибочный чек или Корректировка сбоя).
    • В поле «Сумма/Процент» укажите точную сумму ошибочно пробитого чека (во втором поле оставьте 0).
    • В поле «Цена/Количество» укажите сумму чека в качестве цены, а в поле количества поставьте 1.
    • В выпадающем списке «Тип чека» выберите значение «Возврат продажи».
  7. Нажмите кнопку «Возврат продажи». Кассовый аппарат начнет формирование документа.
  8. Для успешного завершения операции нажмите кнопку «Закрыть чек без сдачи». Из кассового аппарата выйдет физический чек с признаком возврата.
  9. Если ошибочных дубликатов было несколько, повторите шаги 6–8 для каждого чека отдельно.
  10. Снова перейдите на вкладку «Запросы» и проверьте сумму наличных кнопкой «Наличные». Сумма в ККТ должна уменьшиться на величину произведенных возвратов.

После проведения данных манипуляций в 1С откройте новую смену и снимите Х-отчет. В строке «Выручка» сумма уменьшится, а в строке «Возвраты» появится проведенная вами сумма корректировки. К кассовому отчету обязательно приложите объяснительную записку от кассира с описанием технического сбоя и прикрепите к ней оба чека (ошибочный дубликат и чек возврата, пробитый через драйвер).

Особенности исправления ошибок на онлайн-кассах по 54-ФЗ

Критически важно: описанный выше метод исправления через драйвер ККТ подходит только для старых кассовых аппаратов, работающих без передачи данных в налоговую службу. В условиях современного законодательства (54-ФЗ) при работе с онлайн-кассами проводить операции напрямую через драйвер без отражения в 1С категорически запрещено! Любые расхождения между данными, ушедшими в ОФД, и базой 1С гарантированно вызовут вопросы и камеральные проверки со стороны ФНС.

Рассмотрим, как правильно исправлять дублирование чеков в современных реалиях в зависимости от используемого формата фискальных данных (ФФД):

Сценарий для ФФД 1.05

Если ваша касса работает на формате фискальных данных 1.05, порядок действий следующий:

  1. В программе 1С найдите ошибочный документ продажи, который привел к дублированию чека.
  2. На основании этого документа создайте документ «Чек ККМ на возврат» (или «Возврат товаров от покупателя»).
  3. Пробейте этот чек на кассе. На кассовом аппарате сформируется и распечатается чек с признаком расчета «Возврат прихода». Налоговая получит информацию о том, что лишняя выручка была аннулирована.
  4. Поскольку фактически покупатель товар не возвращал, и остатки на складе в 1С не должны меняться, созданный в 1С документ возврата необходимо аккуратно распровести или пометить на удаление (в зависимости от логики вашей конфигурации), чтобы не задваивать складские остатки и взаиморасчеты. ОФД при этом получит правильные сведения о возврате, а в 1С учет останется корректным.

Сценарий для ФФД 1.1 и 1.2

В более современных форматах ФФД 1.1 и 1.2 для исправления любых ошибок кассира применяется специализированный документ — Чек коррекции.

  1. Создайте в 1С документ «Чек коррекции» (в современных конфигурациях его можно создать непосредственно на основании ошибочной продажи).
  2. Выберите тип операции — «Возврат прихода».
  3. Укажите тип коррекции — «Самостоятельно» (поскольку ошибку вы обнаружили сами, а не по предписанию налоговой инспекции).
  4. Заполните фискальные признаки ошибочного чека (номер ФД, ФПД/ФП), которые необходимо скорректировать. Эти данные можно взять с бумажного дубликата чека.
  5. Пробейте чек коррекции на ККТ. Данная операция полностью легитимна, прозрачна для ФНС и не требует последующих сложных корректировок остатков вручную.

Как современные версии 1С предотвращают дублирование чеков

Разработчики фирмы «1С» и производители кассового оборудования постоянно совершенствуют механизмы защиты от подобных сбоев. В современных конфигурациях (1С:Управление торговлей 11.5, 1С:Розница 3.0, 1С:УНФ) и драйверах АТОЛ 10-й версии реализованы встроенные инструменты контроля транзакций.

Проанализируем основные защитные механизмы:

Примерная логика работы этого алгоритма на внутреннем языке 1С выглядит следующим образом:


// Алгоритм проверки статуса последней операции в ККТ перед повторной печатью
ПараметрыСвязи = ПолучитьПараметрыПодключенияКассы();
РезультатККТ = ДрайверККТ.ПолучитьПараметрыПоследнегоДокумента(ПараметрыСвязи);

Если РезультатККТ.Успешно Тогда
    Если РезультатККТ.Сумма = ТекущийЧек1С.СуммаДокумента И РезультатККТ.ТипРасчета = "Приход" Тогда
        // Чек уже физически пробит на кассе! Повторная печать не требуется.
        // Просто записываем фискальные данные в документ 1С и проводим его.
        ЗаписатьДанныеФискализацииВДокумент(ТекущийЧек1С, РезультатККТ.НомерФД, РезультатККТ.ФПД);
        ТекущийЧек1С.СтатусОплаты = Перечисления.СтатусыЧековККМ.Пробит;
        ТекущийЧек1С.Записать(РежимЗаписиДокумента.Проведение);
        ПоказатьПредупреждение("Внимание: Чек уже был напечатан ККТ. Данные успешно синхронизированы без повторной печати.");
    Иначе
        // Чек не найден на кассе, отправляем команду на фискализацию
        ДрайверККТ.ПробитьНовыйЧек(ТекущийЧек1С);
    КонецЕсли;
КонецЕсли;

Таким образом, мы рассмотрели как классический метод решения проблемы дублирования чеков через драйвер АТОЛ, так и современные легитимные способы исправления ошибок в рамках действующего законодательства 54-ФЗ. Понимание этих механизмов поможет вам оперативно решать проблемы на рабочем месте кассира и не допускать расхождений в учете.

← На главную