Как закрыть смену без ККМ в 1С:Розница: подробные инструкции и решение сопутствующих проблем

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

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

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

Решение 1. Штатный механизм «Закрыть без Z-отчета»

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

Проанализируем пошагово, как выполнить это действие в типовом интерфейсе:

  1. Перейдем в раздел Продажи и выберем пункт Закрытие кассовой смены (в некоторых конфигурациях этот функционал доступен через рабочее место кассира или форму управления фискальным устройством).
  2. В открывшейся форме найдем и установим флаг Закрывать без Z-отчета.
  3. Нажмем кнопку Закрыть смену.

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

Решение 2. Использование встроенного эмулятора ККТ

Если в вашей версии конфигурации отсутствует кнопка закрытия без Z-отчета или программа все равно выдает ошибку отсутствия связи с кассой, мы можем временно обмануть систему, подключив программный эмулятор фискального регистратора.

Выполним следующие шаги для настройки эмулятора:

  1. Перейдем в раздел Администрирование, далее выберем Подключаемое оборудование.
  2. В списке оборудования найдем раздел ККТ с передачей данных (или Фискальные регистраторы) и нажмем кнопку Создать.
  3. В качестве драйвера оборудования выберем стандартный встроенный драйвер «1С:Фискальный регистратор (эмулятор)». Укажем организацию и рабочее место, после чего сохраним настройки.
  4. Теперь откроем справочник Кассы ККМ (находится в разделе НСИ или Администрирование). Найдем кассу, на которой зависла смена.
  5. Откроем карточку кассы, нажмем кнопку Еще (в правом верхнем углу) и выберем пункт Разрешить редактирование реквизитов. Это необходимо, так как программа по умолчанию блокирует изменение ключевых полей у рабочих касс.
  6. В поле Подключаемое оборудование заменим наше реальное устройство (например, Viki Print или Атол) на созданный эмулятор и запишем документ.
  7. Перейдем в интерфейс кассира и закроем смену в стандартном режиме. Программа отправит все данные на виртуальный эмулятор, успешно завершит смену в базе данных и сформирует отчет о продажах.
  8. После успешного закрытия вернемся в справочник Кассы ККМ и привяжем наше реальное оборудование обратно.

Решение 3. Изменение статуса смены через «Групповое изменение реквизитов»

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

Важное предупреждение: Любые действия по прямому изменению реквизитов объектов базы данных несут в себе риски нарушения логической целостности учета. Перед началом процедуры обязательно создайте резервную копию вашей информационной базы!

Рассмотрим порядок действий при ручной корректировке:

  1. Перейдем в раздел АдминистрированиеОбслуживаниеКорректировка данных и откроем обработку Групповое изменение реквизитов.
  2. В поле «Выбирать элементы типа» укажем объект Кассовая смена (ДокументСсылка.КассоваяСмена).
  3. Критически важно настроить отбор! Нажмем на ссылку «Все элементы» и добавим условие отбора: Ссылка Равно [Ваша зависшая смена]. В верхней части формы обязательно должно появиться подтверждение: «Выбран 1 элемент». Если этого отбора не сделать, программа изменит статус у абсолютно всех кассовых смен в вашей базе данных за все годы ведения учета.
  4. В списке доступных для изменения реквизитов найдем поле Статус и установим для него значение Закрыта.
  5. Также для корректности аналитики найдем реквизиты Дата окончания смены и Время окончания смены и укажем в них фактическое время завершения работы.
  6. Нажмем кнопку Изменить реквизиты.

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


// Программное изменение статуса конкретной зависшей смены
СсылкаНаСмену = Документы.КассоваяСмена.НайтиПоНомеру("00000001", ТекущаяДата());
Если Не СсылкаНаСмену.Пустая() Тогда
    СменаОбъект = СсылкаНаСмену.ПолучитьОбъект();
    СменаОбъект.Статус = Перечисления.СтатусыКассовыхСмен.Закрыта;
    СменаОбъект.ДатаОкончанияСмены = ТекущаяДата();
    СменаОбъект.Записать(РежимЗаписиДокумента.Запись);
    Сообщить("Статус смены успешно изменен на 'Закрыта'");
КонецЕсли;

Решение 4. Расхождение сумм эквайринга и корректировка в режиме разработчика

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

Проанализируем, как обойти эту блокировку и скорректировать сумму документа:

  1. Откроем обработку Групповое изменение реквизитов.
  2. В поле выбора объектов укажем документ Операция по платежной карте.
  3. Настроим жесткий отбор по ссылке на наш проблемный документ возврата.
  4. По умолчанию программа не позволит изменить сумму проведенного и закрытого документа. Для обхода этого ограничения нажмем кнопку Дополнительные параметры в нижней части формы.
  5. В открывшихся настройках установим флаг Режим разработчика. Этот режим позволяет изменять системные и заблокированные реквизиты документов без снятия их с проведения.
  6. В списке реквизитов найдем поле Сумма (в шапке документа) и установим корректное значение (равное сумме продажи).
  7. Перейдем на вкладку Расшифровка платежа (табличная часть документа). Нам также необходимо скорректировать сумму в табличной части, иначе при проведении документа база выдаст ошибку несоответствия сумм шапки и табличной части. Укажем там аналогичную корректную сумму.
  8. Нажмем Изменить реквизиты.

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

Решение 5. Рассинхронизация статусов смены в 1С и на ККТ

В практике встречаются ситуации рассинхронизации, вызванные сбоями электропитания или обрывом связи с ОФД в момент печати Z-отчета:

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

← На главную