При закрытии кассовой смены в программе 1С:Розница 2.3 пользователи часто сталкиваются с неприятным системным сообщением: «Не смогли произвести выемку...». После появления этой ошибки автоматическая инкассация перестает работать во все последующие дни, а остаток наличных в программе начинает бесконтрольно расти. В данной статье мы подробно разберем причины возникновения этой ситуации и изучим несколько эффективных способов решения проблемы.
Прежде всего, нам необходимо понять механику процесса. В связке 1С и фискального регистратора (ФР) задействованы два независимых «хранилища» данных о наличности:
ДенежныеСредстваВКассахККМ. Здесь программа ведет свой математический учет приходов и расходов.Рассмотрим типовой сценарий сбоя: во время закрытия смены произошел скачок напряжения или кратковременный обрыв связи с ККТ. 1С успела выполнить команду ЗакрытьСмену (печать Z-отчета), но не смогла завершить команду Выемка. В итоге в базе 1С остаток «завис», а в кассе обнулился (или наоборот). Поскольку при автоматической выемке программа пытается изъять всю сумму, зафиксированную в 1С, а ККТ блокирует операцию, если требуемая сумма превышает фактическую в ее памяти, возникает «замкнутый круг».
Это самый быстрый и надежный способ, если проблема носит разовый характер. Нам необходимо привести данные в информационной базе 1С к реальному нулю, чтобы программа начала учет со следующей смены «с чистого листа».
Разберем алгоритм действий по шагам:
Наличные денежные средства. Если мы видим там сумму, которая должна была уйти в выемку, значит, проблема в регистре.Корректировка записей регистров вручную.ДенежныеСредстваВКассахККМ на всю сумму «зависшего» остатка.Пример программного кода для очистки регистра (если вы пишете свою обработку):
НаборЗаписей = РегистрыНакопления.ДенежныеСредстваВКассахККМ.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.КассаККМ.Установить(ВыбраннаяКасса);
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
После обнуления регистра следующая смена закроется корректно, так как 1С будет пытаться изъять только выручку текущего дня.
Этот способ подойдет системным администраторам, которые не хотят лезть в программный код или регистры напрямую. Мы заставим 1С думать, что выемка прошла успешно, временно отключив связь с реальным «железом».
Проанализируем последовательность действий:
Рабочее место.Важно: Этот метод помогает убрать «зависшие» суммы в программе, но не синхронизирует их с реальной наличностью в аппарате, поэтому после этого обязательно проверьте X-отчет на кассе.
Если ошибка повторяется регулярно, возможно, причина кроется в настройках самого драйвера торгового оборудования. Современные модели Атол под управлением ДТО 10 имеют встроенный механизм контроля наличности.
Рассмотрим подробнее настройки драйвера:
fptr10.exe).Когда простые методы не помогают, выясним истинную причину отказа, изучив технический журнал. Каждое действие 1С фиксируется в логах драйвера Атол. Обычно лог-файл fptr10.log находится в папке пользователя AppData\Roaming\Atol\drivers10.
Посмотрим на примеры ошибок, которые мы можем там обнаружить:
-3807: Сумма выплаты больше наличности в кассе — подтверждает теорию о рассинхроне сумм.-3822: Смена превысила 24 часа — касса заблокирована, и выемка не может быть произведена до закрытия смены.-16: Не подтвержденная ошибка — часто свидетельствует о проблемах с питанием или USB-кабелем.Чтобы избежать повторения ситуации в будущем, рекомендуем придерживаться следующих правил:
1С:Розница.ДТО 10. Старые прошивки иногда некорректно обрабатывают команду инкассации одновременно с командой закрытия смены.Таким образом, мы выяснили, что ошибка выемки — это прежде всего нарушение синхронизации данных между базой данных 1С и фискальной памятью. Использование корректировки регистров или временное отключение оборудования позволяет быстро восстановить работоспособность магазина, а настройка параметров драйвера предотвратит рецидивы.