Как корректно отразить себестоимость при возврате товара от розничного покупателя не в день покупки в 1С:УТ 11?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с розничными продажами в программе 1С:Управление торговлей 11 (УТ 11.3 и выше) пользователи часто сталкиваются с проблемой: при оформлении возврата товара не в день покупки через документ Отчет о розничных продажах (ОоРП) с отрицательными строками, себестоимость возвращенного товара после закрытия месяца рассчитывается как нулевая. Это приводит к искажению финансового результата и недовольству бухгалтерии.

В данной статье мы разберем причины такого поведения системы, проанализируем внутренние механизмы работы регистров себестоимости и рассмотрим эффективные способы решения этой задачи.

Почему в «Отчете о розничных продажах» себестоимость становится нулевой?

Проанализируем ситуацию с точки зрения архитектуры 1С. Документ Отчет о розничных продажах предназначен для отражения факта реализации товаров в рамках одной кассовой смены. Когда мы вводим в него отрицательную строку, система воспринимает это как сторнирование продажи. Однако для корректного расчета себестоимости системе необходимо знать, из какой «партии» (или по какому Виду запасов) этот товар был списан изначально.

Рассмотрим основные причины обнуления стоимости:

  1. Отсутствие связи с документом продажи: В структуре документа Отчет о розничных продажах на уровне строк отсутствует реквизит, позволяющий указать конкретную первичную реализацию.
  2. Логика закрытия месяца: Механизм расчета себестоимости при проведении ОоРП видит отрицательный расход. Если в текущем месяце не было поступлений этого товара или система не может сопоставить возврат с конкретным приходом, она не «придумывает» стоимость, а оставляет ее равной нулю, чтобы не нарушать баланс регистра Себестоимость товаров.
  3. Виды запасов: В УТ 11 расчет строится на аналитике Виды запасов. При возврате через ОоРП программа часто формирует новый вид запаса без привязки к суммовым оценкам прошлых периодов.

Вариант 1. Использование типовой методики через документ «Возврат товаров от клиента»

Выясним, как рекомендует поступать фирма 1С. Согласно методологии, разделение возвратов на «в день покупки» и «не в день покупки» является ключевым. Если возврат происходит после закрытия кассовой смены (в другой день), использование Чека ККМ и последующего Отчета о розничных продажах технически возможно, но методически неверно для учета себестоимости.

Разберем по шагам правильный алгоритм:

  1. Создаем документ Возврат товаров от клиента. В поле «Операция» выбираем Возврат от розничного покупателя.
  2. На вкладке «Товары» указываем возвращаемую номенклатуру.
  3. Важный момент: В этом документе, в отличие от ОоРП, предусмотрено поле Документ продажи. Если указать там документ реализации (или ОоРП, которым был продан товар), система автоматически подтянет себестоимость из той партии.
  4. Если документ продажи неизвестен, в документе Возврат товаров от клиента (начиная с версии 11.3) можно выбрать способ определения себестоимости:
    • Определяется из документа продажи;
    • Равна стоимости в данной строке;
    • Указывается вручную.

Именно возможность ручного указания себестоимости решает проблему главного бухгалтера. При выборе этого варианта вы можете прямо в документе зафиксировать сумму, которая должна «вернуться» на склад вместе с товаром.

Вариант 2. Программная трансформация данных при загрузке

Если возвраты загружаются из внешней кассовой программы (фронт-офиса), необходимо перенастроить логику загрузки. Вместо создания отрицательных строк в Отчете о розничных продажах, рассмотрим возможность создания отдельных документов возврата.

Проанализируем пример логики обработки данных:


// Пример логики при загрузке данных
Если ДанныеОВозврате.ДатаПродажи < НачалоДня(ТекущаяДата) Тогда
    // Это возврат не в день покупки
    НовыйВозврат = Документы.ВозвратТоваровОтКлиента.СоздатьДокумент();
    НовыйВозврат.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя;
    // Заполняем товары и ищем себестоимость в базе или берем из внешней системы
    ЗаполнитьСтрокиВозврата(НовыйВозврат, ДанныеОВозврате);
    НовыйВозврат.Записать(РежимЗаписиДокумента.Проведение);
Иначе
    // Возврат в день покупки - включаем в ОоРП как обычно
    ДобавитьСтрокуВОтчетОРозничныхПродажах(ДанныеОВозврате);
КонецЕсли;

Такой подход позволит автоматизировать процесс и сохранить корректность учета без ручного вмешательства бухгалтера.

Вариант 3. Доработка документа «Отчет о розничных продажах»

Если по каким-то причинам (например, требование руководства использовать только ОоРП) вы не можете перейти на использование документов возврата, потребуется программная доработка. Рассмотрим подробнее, что для этого нужно сделать.

Во-первых, необходимо добавить в табличную часть Товары документа Отчет о розничных продажах новый реквизит СебестоимостьВозврата. Во-вторых, нужно вмешаться в процедуру проведения документа, чтобы эти данные попали в регистры.

Проанализируем ситуацию с регистрами. Основной регистр, отвечающий за стоимость — Себестоимость товаров. При проведении ОоРП формируются движения с видом Расход (для возвратов это будет расход с минусом). Вам необходимо модифицировать модуль расчета, чтобы в поле Стоимость записывалось ваше значение из нового реквизита.

Внимание! Это сложный путь, так как в УТ 11 расчет себестоимости выполняется отложенно при закрытии месяца. Просто записать сумму в регистр при проведении документа может быть недостаточно, так как обработка Расчет себестоимости может перезаписать эти движения.

Нюансы партионного учета 2.1 и 2.2

Результат решения проблемы также зависит от используемой версии партионного учета. Посмотрим на различия:

Итоги и рекомендации

Подводя итог, можно сказать, что попытка заставить Отчет о розничных продажах корректно обрабатывать себестоимость возвратов прошлых периодов — это борьба с типовой архитектурой программы.

Для достижения результата рекомендуем следующее:

  1. Откажитесь от отрицательных строк в ОоРП для возвратов не в день покупки. Это «тупиковый» путь для управленческого учета.
  2. Используйте связку «Возврат товаров от клиента» + «РКО/Эквайринговая операция». Это обеспечит прозрачность взаиморасчетов и точность себестоимости.
  3. Если возвратов много, автоматизируйте их загрузку из сторонних систем в правильные документы 1С.
  4. Помните, что в Возврате товаров от клиента вы всегда можете принудительно указать себестоимость, если первичная продажа была совершена в другой информационной базе или данные о ней утеряны.

Соблюдение этих правил позволит вам и вашему главному бухгалтеру всегда иметь актуальные и достоверные данные о прибыли и остатках товаров на складах.

← На главную