В процессе работы в 1С:Розница 3.0 (или 1С:УНФ) многие пользователи сталкиваются с классической методологической проблемой. Ситуация выглядит так: утром покупатель возвращает товар, оформляется Чек ККМ на возврат, а днем или вечером этот же товар необходимо отправить обратно поставщику. Однако при закрытии смены система аннулирует движения отдельных чеков и формирует сводный документ Отчет о розничных продажах (ОРП), который записывается концом дня. В итоге получается, что расход (возврат поставщику) произошел раньше, чем приход (возврат от покупателя в ОРП), что ломает партионный учет и вызывает ошибки остатков.
В этой статье мы подробно разберем, почему так происходит, и рассмотрим несколько способов решения этой задачи — от организационных изменений до технических «хитростей».
Разберем внутреннюю механику программы. В отличие от старых версий (например, Розница 2.3), редакция 3.0 построена на архитектуре УНФ. Здесь реализован механизм «временных» движений для чеков. Рассмотрим цепочку событий:
Чек на возврат. В этот момент товар фактически и документально (временно) зачисляется на склад.Возврат поставщику. Программа видит остаток, созданный чеком, и позволяет провести документ.Чекам ККМ и создает один общий Отчет о розничных продажах.Проблема в том, что Отчет о розничных продажах по умолчанию создается со временем 23:59:59. После перепроведения документов система видит, что в 17:00 вы пытались вернуть товар, который поступил на склад только в 23:59. Происходит «перехлест» времени, возникает отрицательный остаток по партии, и себестоимость списывается некорректно.
Проанализируем самый простой и надежный способ, предложенный опытными пользователями. Чтобы избежать программных коллизий, необходимо разнести операции во времени так, чтобы приход всегда предшествовал расходу в учетной системе.
Рекомендуемый порядок действий:
Чек на возврат от покупателя в обычном режиме.Закрытие смены.Отчет о розничных продажах (когда товар официально закрепился на остатках за текущий день) оформляйте Возврат поставщику.Если возврат поставщику критично сделать именно сегодня, установите в документе Возврат поставщику время вручную — например, 23:59:59. В этом случае в рамках одной секунды программа сначала обработает приходные операции ОРП, а затем расходную операцию возврата.
Выясним причину, по которой Чеки ККМ ведут себя так нестабильно. Чеки — это оперативные документы фронт-офиса. Если вам нужно, чтобы возврат от покупателя «застолбил» за собой время и не исчезал при закрытии смены, рассмотрите использование другого типа документа.
Вместо розничного чека на возврат можно оформить полноценный документ прихода (в разных интерфейсах это может быть Приходная накладная с видом операции «Возврат от покупателя» или отдельный документ Возврат от покупателя). Рассмотрим плюсы этого подхода:
Возврата поставщику.Важно: При таком подходе нужно быть внимательным с кассовой дисциплиной. Если возврат денег покупателю идет через ККТ, чек все равно должен быть пробит, но в программе он может быть помечен как «без создания движений по запасам», если это позволяют настройки конфигурации.
Если вы обладаете навыками программирования или привлекаете специалиста, можно рассмотреть вариант изменения логики формирования Отчета о розничных продажах. Проанализируем, как можно повлиять на время документа.
По умолчанию в модулях менеджера документа ОтчетОРозничныхПродажах прописана установка времени в конец дня. Можно создать расширение, которое будет устанавливать время документа равным времени первого или последнего чека в смене. Однако будьте осторожны: это может привести к тому, что продажи «встанут» раньше, чем поступления товара в течение того же дня.
Пример логики, которую можно реализовать в коде (схематично):
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ЭтоНовый() И ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийОРП.Продажи") Тогда
// Устанавливаем время на начало дня или время первого чека,
// чтобы возвраты поставщику днем прошли успешно
ЭтотОбъект.Дата = НачалоДня(ЭтотОбъект.Дата) + 1; // Условно 00:00:01
КонецЕсли;
КонецПроцедуры
Рассмотрим еще один критически важный аспект. Если вы торгуете маркированным товаром (обувь, одежда, молочная продукция), то последовательность документов важна не только для бухгалтерии 1С, но и для государственных систем.
Если вы оформите Возврат поставщику (через ЭДО) до того, как код маркировки вернулся в оборот через Чек на возврат, возникнет ошибка в ГИС МТ. Система посчитает, что вы пытаетесь вернуть товар, который все еще числится «выведенным из оборота» (проданным конечному потребителю). Поэтому строгая последовательность «Возврат от клиента -> Отражение в базе -> Возврат поставщику» — это единственный безопасный путь для работы с маркировкой.
Проанализировав ситуацию, мы можем выделить три основных правила для работы в Рознице 3.0:
Отчет о розничных продажах. Скорее всего, он «улетел» на конец дня, оставив середину дня пустой.Следуя этим рекомендациям, вы обеспечите корректное ведение складского учета и избежите проблем при закрытии месяца и расчете финансового результата.