Ситуация, когда кассовая смена успешно закрывается на физическом уровне (выходит Z-отчет), но остается "открытой" в учетной системе 1С — одна из классических проблем в автоматизации розничной торговли. Это вызывает панику у кассиров и головную боль у администраторов, так как нарушается последовательность документов и учет выручки. Чтобы избежать таких инцидентов еще на этапе внедрения, должна быть изучена базовая инструкция по настройке торгового места на базе РМК, учитывающая специфику современных конфигураций.
В этом материале мы подробно разберем, почему возникает такая "рассинхронизация", какие технические параметры необходимо проверить в первую очередь, и как корректно завершить смену вручную, не нарушив учет.
Давайте проанализируем механику взаимодействия 1С и фискального регистратора (ККТ). Обмен данными происходит по принципу "Запрос — Ответ".
ЗакрытьСмену и отправляет её драйверу ККТ.КассоваяСмена на "Закрыта" и формирует документ ОтчетОРозничныхПродажах.Сбой происходит на этапе №4 или №5. Команда ушла, касса её выполнила (чек вышел), но ответ до 1С не дошел. Самая частая причина — истечение времени ожидания (таймаута). Если штатные механизмы постоянно дают сбой, для проверки связи часто применяется независимая печать чеков на ККМ АТОЛ напрямую драйвером, что позволяет исключить влияние кода 1С на процесс обмена.
Как справедливо заметили участники обсуждения, "отвал по таймауту" — это корень зла в 90% случаев. 1С просто устает ждать ответа от кассы и считает, что связь разорвана или устройство недоступно, хотя касса в этот момент может добросовестно печатать отчет.
Давайте разберем, какие значения таймаута необходимо выставлять в зависимости от типа подключения вашего оборудования. Эти настройки производятся в разделе "Подключаемое оборудование" -> "Параметры подключения" (Тест драйвера).
Если ваша касса подключена физическим кабелем RS-232 или через эмуляцию COM-порта по USB (старый надежный метод), передача данных идет достаточно стабильно.
Рекомендуемое значение таймаута:
Современные кассы (Атол, Штрих) часто настраиваются как сетевые карты через USB (протокол RNDIS) для быстрой передачи данных в ОФД. Этот канал связи более сложный и подвержен задержкам.
Рекомендуемое значение таймаута:
Если 1С запущена на сервере, а касса подключена к локальному компьютеру и "проброшена" в терминальную сессию, задержки сигнала неизбежны.
Рекомендуемое значение таймаута:
Важно: Под "таймаутом" в настройках драйвера обычно понимается время ожидания ответа на одну команду. При закрытии смены обмен состоит из множества команд. Если вы используете ФФД 1.2 (с маркировкой), обмен с серверами "Честного ЗНАКА" может занимать дополнительное время. В таких случаях в настройках драйвера ищите параметр "Таймаут чтения" или "Ожидание ответа".
Помимо настроек драйвера, мы должны проверить окружение, в котором работает касса. Рассмотрим факторы, которые часто упускают из виду.
Операционная система Windows по умолчанию настроена на экономию энергии. Она может отключать питание USB-портов, если считает их неактивными. Это приводит к кратковременному разрыву связи именно в момент закрытия смены.
Решение: В диспетчере устройств для каждого "Корневого USB-концентратора" на вкладке "Управление электропитанием" снимите галочку "Разрешить отключение этого устройства для экономии энергии".
Если кассир нажимает кнопку "Закрыть смену" и сразу закрывает окно 1С, программа прерывает выполнение кода обработки ответа. Касса уже получила команду и печатает чек, а 1С "убита" до того, как успела записать изменения.
Если беда уже случилась, действуйте по следующему алгоритму.
Поскольку Журнал регистрации 1С может быть неинформативен, нужно подтверждение от "железа". Убедитесь, что статус устройства в драйвере — "Смена закрыта". Также полезно провести анализ документов оплаты по чекам для вашей конфигурации (УТ, КА или ERP), чтобы точно сопоставить фискальные данные с теми, что успели зафиксироваться в системе. Для этой задачи есть восстановление чеков по данным ОФД.
Нам необходимо "объяснить" 1С, что смена закрыта. Найдите проблемную смену в списке (статус будет "Открыта"). Если стандартные средства редактирования не позволяют внести изменения, используйте специализированный инструмент для изменения недоступных реквизитов объекта (есть редактор реквизитов и скрытых полей), который позволит корректно перевести статус в значение "Закрыта" и проставить дату окончания из бумажного Z-отчета.
Для программистов 1С ситуацию можно исправить простым кодом:
СменаОбъект = СсылкаНаСмену.ПолучитьОбъект();
СменаОбъект.Статус = Перечисления.СтатусыКассовойСмены.Закрыта;
СменаОбъект.ДатаОкончания = ДатаИзЧека;
СменаОбъект.Записать();
Проверьте, создался ли ОтчетОРозничныхПродажах автоматически. Если нет, создайте его вручную. Если после этого возникли расхождения в движениях или остатках, вам поможет универсальная работа с регистрами для управляемых форм или обработка для корректировки остатков регистра накопления, позволяющая точечно исправить записи в базе данных.
Соблюдение этих простых правил сохранит нервы персоналу и обеспечит точность учета в вашей торговой точке.