В розничной торговле при работе в конфигурации 1С:Розница ред. 2.2 на рабочем месте кассира (РМК) нередко возникает критическая ситуация: кассовый аппарат (фискальный регистратор) успешно печатает бумажный чек, но в окне РМК список товаров не очищается. При закрытии формы кассир обнаруживает, что документ Чек ККМ сохранился в списке со статусом непробитого и непроведенного. Разберем детально, почему возникает эта рассинхронизация между базой данных и ККТ, как исправить зависшие документы и как защитить систему от подобных сбоев в будущем.
Проанализируем техническую сторону процесса пробития чека. В момент нажатия кнопки оплаты в РМК программа выполняет последовательность действий:
Чек ККМ и закрывает транзакцию СУБД.Если на шаге 4 или 5 возникает любая ошибка, транзакция в 1С аварийно откатывается. Чек на фискальнике уже пробит, а в информационной базе документ остается непроведенным. Выделим главные факторы, вызывающие этот сбой:
По магазину. Во время выполнения сеанса синхронизации платформа 1С накладывает транзакционную блокировку на таблицы базы данных для обеспечения целостности данных. Если кассир пробивает чек именно в этот момент, проведение документа блокируется ошибкой вида «Не удалось заблокировать таблицу...». Блокировка РИБ инициируется на уровне платформы, поэтому отключить ее стандартными средствами конфигуратора нельзя.Разберем регламент, которому необходимо следовать кассиру и администратору при возникновении зависшего чека:
ФискальныеОперации в 1С.Чек ККМ:
Откроем список документов «Чеки ККМ» (вне интерфейса РМК). Если документ позволяет выполнить ручное проведение без отправки команды на ККТ, проведем его.
Если конфигурация блокирует стандартное проведение, используем сервисную обработку Групповое изменение реквизитов (обязательно включив режим отображения служебных реквизитов):
Чек ККМ.Проведен в значение Истина.СтатусЧекаККМ в значение Пробит.ОтчетОРозничныхПродажах.Рассмотрим комплексные меры, которые помогут полностью исключить зависание непробитых чеков в торговой точке:
Настроим расписание регламентных заданий обмена данными в узлах магазинов так, чтобы синхронизация происходила в нерабочие часы (до открытия или после закрытия смены) либо в строго определенные технологические перерывы кассы. Если обмен требуется в течение дня, частоту синхронизации необходимо снизить, а кассиров проинформировать о недопустимости пробития чеков в моменты ручного запуска обмена.
Использование клиент-серверного варианта 1С (MS SQL Server, PostgreSQL) переводит систему на уровень построчных управляемых блокировок. В отличие от файлового режима, одновременное проведение чека и обновление других данных в фоновом режиме не будут блокировать всю таблицу целиком.
Откроем параметры подключенного оборудования в 1С и увеличим время ожидания ответа (таймаут) для фискального регистратора и эквайрингового терминала. В диспетчере устройств операционной системы на кассовом ПК обязательно отключим опцию «Разрешить отключение этого устройства для экономии энергии» для всех USB-концентраторов и виртуальных COM-портов.
На узлах РИБ касс рекомендуется отключить фоновые задачи, не влияющие на оперативные продажи: обновление индекса полнотекстового поиска, расчет показателей статистики, фоновое слияние индексов.
Для высоконагруженных магазинов оптимальным решением является разделение учетного контура и контура продаж — переход на автономное приложение «1С:РМК» или специализированные POS-системы с последующей пакетной загрузкой документов в центральную базу.