Почему возникают пропуски в нумерации чеков ККМ и как это исправить?

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

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

Для правильного решения проблемы в первую очередь разделим два принципиально разных понятия:

  1. Номер документа в информационной базе 1С — строка внутреннего идентификатора документа Чек ККМ, которая формируется автонумератором платформы 1С.
  2. Реквизит НомерЧекаККМ (или номер фискального документа ФД) — порядковый номер операции, который присваивается непосредственно фискальным накопителем (ФН) и драйвером контрольно-кассовой техники (ККТ).

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

Причина 1. Фискализация неторговых документов и системных операций ККТ

Если пропуск возникает именно в реквизите НомерЧекаККМ (или номере фискального документа), проанализируем поведение кассового аппарата. В онлайн-кассах сквозной номер фискального документа (ФД) увеличивается при любой операции, требующей фиксации в фискальном накопителе:

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

Причина 2. Удаление отложенных и аннулированных чеков при закрытии смены

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

Причина 3. Сбои транзакций и кэширование номеров платформой 1С

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

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

Пошаговая диагностика пропусков через Журнал регистрации и ОФД

Чтобы точно определить, куда пропал конкретный номер, выполним следующую последовательность действий:

  1. Анализ журнала регистрации 1С:

    Откроем Сервис — Журнал регистрации (или Администрирование — Обслуживание — Журнал регистрации). Установим отбор по метаданным: Документ.Чек ККМ. Изучим события за период возникновения пропуска. Если документ создавался, но был удален, в колонке данных будет отображаться объект со статусом Объект не найден. По пользователю и времени события легко восстановить последовательность действий кассира.

  2. Сверка с Личным кабинетом ОФД:

    Перейдем в личный кабинет вашего Оператора фискальных данных и отфильтруем чеки по номеру ФД. В кабинете ОФД отображаются абсолютно все фискальные документы кассы, включая отчеты об открытии/закрытии смен, чеки коррекции и чеки из кассовых ордеров. Это позволит сразу увидеть, на какую именно сервисную операцию ушел «пропущенный» номер.

  3. Проверка текстовых логов драйвера ККТ:

    В папке установленного драйвера кассы (например, АТОЛ или Штрих-М) проанализируем лог-файлы за нужную дату. Там фиксируются все команды, переданные из 1С в кассовый аппарат, включая случаи аварийного аннулирования чеков из-за обрыва ленты или сбоя питания.

Программное обновление автонумератора платформы

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


// Сброс и синхронизация счетчика номеров документов Чек ККМ
ОбновитьНумерациюОбъектов(Метаданные.Документы.ЧекККМ);

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

← На главную