В работе типовых конфигураций, таких как 1С:Розница, часто возникает ситуация, когда при закрытии кассовой смены Отчет о розничных продажах (ОРП) записывается не текущим временем, а датой 23:59:59. Если в процессе возникают сбои, это приводит к серьезным нарушениям в учете денежных средств. Давайте разберемся, почему это происходит и как наладить стабильный процесс закрытия смены.
Для начала проанализируем, почему система ведет себя подобным образом. В типовых конфигурациях 1С время документа ОРП осознанно устанавливается на конец суток. Это необходимо для того, чтобы все продажи за рабочую смену попали в отчетность текущего календарного дня, даже если кассир закрывает смену поздно вечером.
Однако, «спорадические» сбои, как правило, связаны с процессом проведения документа. Рассмотрим цепочку событий, приводящую к ошибке:
ОРП. Если товарные остатки отрицательные, а проверки при проведении документа настроены строго, ОРП не проводится.Выемка денежных средств. Если ОРП не проведен, последующие движения по регистрам ДенежныеСредстваККМ ломаются, так как они ожидают корректного остатка, зафиксированного в ОРП.Поскольку проблема носит комплексный характер, разберем по шагам, как выявить и устранить данные ошибки.
Первым делом проанализируем настройки учета. Если вы разрешили продажу без остатков, ОРП будет постоянно конфликтовать с логикой складского учета. Мы рекомендуем включить контроль остатков хотя бы на этапе проведения документов. Это заставит систему «видеть» проблему сразу в момент закрытия смены, а не постфактум, когда отчетность уже искажена.
При изучении процедуры закрытия смены мы видим, что документ инициализируется с установкой режима проведения:
// Фрагмент логики проведения
РежимПроведения = РежимПроведенияДокумента.Оперативный;
ДокументКПроведению.Записать(РежимЗаписиДокумента.Проведение, РежимПроведения);
Если в этот момент ПроверитьЗаполнение() возвращает ошибку, документ не проводится и остается открытым. Чтобы избежать «зависания» документов, добавьте проверку статуса Проведен в обработчики событий или используйте регламентные уведомления для администратора при создании непроведенных ОРП.
Если специфика вашего учета требует, чтобы ОРП имел точное время формирования (а не 23:59:59), можно применить принудительную установку времени. Рассмотрим вариант изменения даты через расширение конфигурации:
Вместо использования времени на конец дня, мы можем присвоить документу ТекущаяДатаСеанса(). Это позволит синхронизировать время закрытия смены с фактическим временем нажатия кнопки в РМК.
Важное предупреждение: Перед внесением подобных правок убедитесь, что ваши отчеты и регламентные задания не настроены жестко на получение данных за «конец дня». Изменение даты может потребовать адаптации отчетных форм.
Чтобы избежать «фейерии» с выемками и отрицательными остатками, придерживайтесь следующих правил:
Журнал регистрации на отслеживание ошибок проведения документов ОРП.Deadlock) часто мешают корректному проведению ОРП.Таким образом, ключ к решению проблемы лежит в исправлении логики складского учета и обеспечении оперативного проведения ОРП. Если документ проводится успешно, временной сдвиг на конец дня перестает быть критическим фактором, так как все регистры накопления будут заполнены корректно.