Почему после номера чека 9999 нумерация в 1С началась заново с 1?

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

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

Разграничение номеров: чек в 1С, счетчик ККТ и фискальный документ

Для понимания причин сброса номера проанализируем, какие именно числовые идентификаторы присваиваются операции продажи при пробитии чека. В системе параллельно работают три независимых механизма нумерации:

  1. Номер документа в 1С — стандартный реквизит Номер документа ЧекККМ. Он формируется средствами платформы 1С на основании настроек нумератора, длины строки и заданных префиксов (префикс информационной базы РИБ, префикс организации).
  2. Сменный или операционный номер чека ККТ — реквизит НомерЧекаККМ, который возвращается драйвером торгового оборудования после успешной печати на фискальном регистраторе.
  3. Номер фискального документа (ФД) — сквозной номер, генерируемый непосредственно фискальным накопителем (ФН). Этот номер строго последователен, не сбрасывается при закрытии смен, перезагрузках или отключениях питания и не может циклически начинаться с единицы в пределах одного ФН.

Когда кассир или администратор видит номер чека на бумажной ленте или в интерфейсе кассового узла, речь чаще всего идет именно об оперативном номере чека ККТ либо о реквизите Номер самого документа 1С.

Причина 1. Аппаратное циклическое переполнение счетчика ККТ

Рассмотрим поведение контрольно-кассовой техники (например, фискальных регистраторов марок «Штрих-М» или «Атол»). В микропрограмме (прошивке) большинства кассовых аппаратов под счетчик операционных чеков зарезервировано фиксированное количество десятичных разрядов — 4 знака (от 0001 до 9999).

При достижении значения 9999 внутренний регистр устройства переполняется, и счетчик чеков аппаратно начинает отсчет заново с единицы (в некоторых моделях фиксируется чек 0000 или дублируется 9999 в качестве технологической отметки, после чего идет 1). Если в этот момент произошло кратковременное отключение света, это совпадение является случайным: аппарат в любом случае сбросил бы данный счетчик на 1 при пробитии следующего документа.

Причина 2. Исчерпание разрядности строкового номера в 1С

Проанализируем второй фактор — ограничения автонумератора самой платформы 1С. В конфигурациях длина стандартного реквизита Номер для документа ЧекККМ может быть жестко ограничена (например, 8 символами). Посмотрим, как распределяются эти символы при включенных механизмах распределенных информационных баз (РИБ):

  1. Два символа отводятся под префикс узла РИБ (например, РБ).
  2. Два символа отводятся под префикс организации (например, О1).
  3. Один символ занимает системный разделитель (дефис -).
  4. На полезную числовую часть номера документа остается всего 3 символа (максимум до 999). Если префиксов меньше, под числовую часть может оставаться ровно 4 знака (до 9999).

Когда числовая часть номера достигает предельного значения 9999, механизм автонумерации платформы 1С не имеет возможности добавить дополнительный разряд влево из-за ограничения общей длины реквизита. В результате платформа циклически начинает нумерацию заново, находя минимальный свободный номер в текущем периоде (как правило, ...0001).

Важно помнить, что смотреть реальную длину номера необходимо не в настройках ширины колонки журнала или формы списка, а непосредственно в дереве метаданных конфигуратора: свойства документа ЧекККМ, раздел Нумерация, свойство Длина номера.

Причина 3. Аппаратный сброс оперативной памяти кассы при скачке питания

Выясним, как именно кратковременное отключение электроэнергии может повлиять на кассовый аппарат. Внутри системной платы ККТ установлена литиевая батарейка резервного питания (обычно формата CR2032), которая поддерживает энергозависимую оперативную память (NVRAM/таймер реального времени) при отключении основного блока питания.

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

Пошаговый план проверки и устранения проблемы

Для исключения ошибок уникальности и сбоев в работе кассового места выполним следующую последовательность действий:

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