В процессе работы розничной торговой точки нередко возникают ситуации, когда физический фискальный регистратор (ККМ/ККТ) выходит из строя, отправляется в сервисный центр на ремонт или модернизацию, а кассовая смена в программе 1С остается открытой. Согласно законодательству и внутренним алгоритмам платформы, кассовая смена не может длиться более 24 часов. По истечении этого времени система блокирует проведение новых чеков и требует закрыть смену, однако сделать это стандартным способом при отсутствии подключенной кассы невозможно.
В данной статье мы подробно рассмотрим, как выйти из этой ситуации, разберем штатные механизмы конфигурации, научимся работать с эмулятором оборудования, использовать групповое изменение реквизитов и исправлять сопутствующие ошибки эквайринга, когда суммы продаж и возвратов не совпадают.
Перед тем как приступать к сложным техническим манипуляциям с базой данных, проверим наличие в нашей конфигурации штатной функции обхода печати чека закрытия. Разработчики современных решений 1С предусмотрели сценарий, когда физическая касса уже закрыта или недоступна.
Проанализируем пошагово, как выполнить это действие в типовом интерфейсе:
При активации этой опции программа выполнит все необходимые внутренние регламентные операции: сформирует документ ОтчетОРозничныхПродажах, проведет его, спишет проданные товары со складов, заархивирует чеки и изменит статус документа КассоваяСмена на значение «Закрыта». При этом команда на печать физического чека и передачу данных в ОФД на ККМ отправлена не будет, что позволит нам избежать ошибок связи с оборудованием.
Если в вашей версии конфигурации отсутствует кнопка закрытия без Z-отчета или программа все равно выдает ошибку отсутствия связи с кассой, мы можем временно обмануть систему, подключив программный эмулятор фискального регистратора.
Выполним следующие шаги для настройки эмулятора:
Бывают случаи, когда смена зависает в неопределенном статусе, база данных выдает критические ошибки работы с транзакциями, и ни один из вышеописанных способов не помогает. В такой ситуации мы можем принудительно изменить статус документа КассоваяСмена напрямую в базе данных.
Важное предупреждение: Любые действия по прямому изменению реквизитов объектов базы данных несут в себе риски нарушения логической целостности учета. Перед началом процедуры обязательно создайте резервную копию вашей информационной базы!
Рассмотрим порядок действий при ручной корректировке:
ДокументСсылка.КассоваяСмена).Ссылка Равно [Ваша зависшая смена]. В верхней части формы обязательно должно появиться подтверждение: «Выбран 1 элемент». Если этого отбора не сделать, программа изменит статус у абсолютно всех кассовых смен в вашей базе данных за все годы ведения учета.Для разработчиков и администраторов, имеющих доступ к консоли кода, данную операцию можно выполнить быстрее с помощью небольшой внешней обработки или в режиме отладки. Посмотрим на пример кода:
// Программное изменение статуса конкретной зависшей смены
СсылкаНаСмену = Документы.КассоваяСмена.НайтиПоНомеру("00000001", ТекущаяДата());
Если Не СсылкаНаСмену.Пустая() Тогда
СменаОбъект = СсылкаНаСмену.ПолучитьОбъект();
СменаОбъект.Статус = Перечисления.СтатусыКассовыхСмен.Закрыта;
СменаОбъект.ДатаОкончанияСмены = ТекущаяДата();
СменаОбъект.Записать(РежимЗаписиДокумента.Запись);
Сообщить("Статус смены успешно изменен на 'Закрыта'");
КонецЕсли;
Иногда закрытию смены мешает конфликт сумм. Например, при оформлении возврата на платежную карту сумма операции в документе возврата оказалась на 1 рубль или на несколько копеек больше, чем сумма первоначальной продажи (из-за округления или ошибки кассира). Фискальный накопитель блокирует печать такого чека, выдавая ошибку: «Сумма безналичных оплат превышает сумму чека». При этом документ эквайринговой операции заблокирован для редактирования пользователем, так как он уже «отправлен в банк».
Проанализируем, как обойти эту блокировку и скорректировать сумму документа:
После проведения данной корректировки документ без проблем запишется, и мы сможем штатно закрыть кассовую смену в 1С.
В практике встречаются ситуации рассинхронизации, вызванные сбоями электропитания или обрывом связи с ОФД в момент печати Z-отчета:
Применяя данные методы, мы сможем оперативно решать любые нестандартные ситуации с кассовым оборудованием, минимизировать простои торговой точки и поддерживать порядок в учете базы данных 1С.