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

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

При анализе торговой деятельности в конфигурации «1С:Управление торговлей 10.3» с помощью типового отчета «Валовая прибыль» пользователи нередко сталкиваются с ситуацией, когда по определенной номенклатуре или контрагенту отображается рентабельность 100%, хотя фактически товар был продан с минимальной наценкой или со скидкой.

Проанализируем типовую ситуацию: покупатель вернул ранее приобретенный товар, после чего в том же периоде этот же товар был продан ему повторно, но уже со скидкой. В свернутой группировке по контрагенту и номенклатуре количество равно нулю, себестоимость равна нулю, но рентабельность показывает ровно 100%. Разберем по шагам, почему возникает такой расчет, и рассмотрим практические способы получения корректной аналитики.

Причина возникновения показателя рентабельности 100%

Выясним математическую причину такого поведения типового отчета. В 1С показатель рентабельности рассчитывается по формуле:

Рентабельность = (Валовая прибыль / Стоимость продаж) * 100%

где Валовая прибыль = Стоимость продаж - Себестоимость.

Посмотрим на пример движений по регистру накопления Продажи себестоимость:

  1. Документ Возврат товаров от покупателя: количество -2, сумма выручки -500 руб., себестоимость -300 руб.
  2. Документ Реализация товаров и услуг (со скидкой): количество +2, сумма выручки +400 руб., себестоимость +300 руб.

Когда отчет формирует итоги по группировке Контрагент — Номенклатура, показатели суммируются:

  1. Количество: -2 + 2 = 0 шт.
  2. Себестоимость: -300 + 300 = 0 руб.
  3. Стоимость продаж (выручка): -500 + 400 = -100 руб.
  4. Валовая прибыль: -100 - 0 = -100 руб.

При расчете рентабельности программа делит валовую прибыль (-100 руб.) на стоимость продаж (-100 руб.). В результате деления отрицательного числа самого на себя получается единица (1), которая при умножении на 100% дает ровно 100%. Это математически корректно для заданной формулы, но абсолютно не отражает реальную экономику сделки.

Способ 1. Расширение периода отчета до первоначальной продажи

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

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

Способ 2. Детализация структуры отчета до документов движения

Если расширить период невозможно или требуется проанализировать конкретный месяц, наиболее наглядным решением является изменение группировок отчета.

Выполним следующие действия по настройке отчета:

  1. Откроем форму Настройка отчета.
  2. В структуре группировок строк добавим поле Регистратор (или Документ движения) на нижний уровень иерархии.
  3. Сформируем отчет повторно.

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

Способ 3. Корректировка формулы вычисляемого поля в СКД

Если отчет работает на базе системы компоновки данных (СКД), можно предотвратить появление ложных 100% при нулевом количестве или нулевой себестоимости с помощью изменения формулы пользовательского или вычисляемого поля.

Рассмотрим пример выражения на языке СКД для поля Рентабельность:


ВЫБОР 
    КОГДА КоличествоОборот = 0 ИЛИ СтоимостьОборот = 0 
        ТОГДА 0 
    ИНАЧЕ ((СтоимостьОборот - СебестоимостьОборот) / СтоимостьОборот) * 100 
КОНЕЦ

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

Способ 4. Методически правильное оформление скидки постфактум

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

Для предоставления скидки на ранее отгруженную продукцию правильнее использовать специализированные механизмы:

  1. Использовать документ Корректировка реализации (в конфигурациях, где он предусмотрен), что позволяет изменить цену и сумму взаиморасчетов без физического возврата партии на склад.
  2. При оформлении документа Возврат товаров от покупателя обязательно указывать исходный документ партии (документ реализации), чтобы возврат себестоимости производился строго по той оценке, по которой товар списывался со склада.
  3. Регулярно запускать регламентную обработку Проведение по партиям (при партионном учете), чтобы исключить расхождения по партиям и зависание нулевой себестоимости при списании.

Альтернативные отчеты для проверки данных

Для проверки и сверки показателей продаж и себестоимости рекомендуется использовать следующие стандартные отчеты:

  1. «Продажи» — позволяет оценить натуральные объемы и выручку без расчета производных показателей маржинальности.
  2. «Ведомость по партиям товаров на складах» — дает возможность детально проверить, с какой именно стоимостью товар вернулся на склад и по какой себестоимости списался при повторной отгрузке.
← На главную