Как исправить ошибку расчета валовой прибыли в отчетах ABC и XYZ анализа продаж в 1С?

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

При проведении стратегического анализа продаж руководители и бизнес-аналитики часто сталкиваются с неприятным сюрпризом: стандартные отчеты «ABC-анализ продаж» и «ABC/XYZ-анализ продаж» в старых конфигурациях (таких как «1С:Комплексная автоматизация 1.1», «1С:Управление торговлей 10.3» и «1С:Управление производственным предприятием 1.3») выдают искаженные результаты. Причиной тому является серьезная методологическая ошибка в расчете ключевого показателя — валовой прибыли.

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

Суть проблемы: откуда берется искажение?

Давайте проанализируем, по какой формуле типовой отчёт 1С рассчитывает валовую прибыль. Обратимся к исходному коду запроса, который используется системой для вывода данных:


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Продажи.[ОбъектАнализа] КАК [ОбъектАнализа],
    СУММА(Продажи.СтоимостьОборот) КАК СуммаВыручки,
    СУММА(Продажи.СтоимостьОборот - Продажи.НДСОборот) КАК СуммаВыручкиБезНДС,
    СУММА(ВЫБОР 
        КОГДА ЦенаСебестоимости.ЦенаНоменклатуры ЕСТЬ NULL 
            ТОГДА Продажи.СтоимостьОборот
        ИНАЧЕ Продажи.СтоимостьОборот - (ЦенаСебестоимости.ЦенаНоменклатуры * Продажи.КоличествоОборот)
    КОНЕЦ) КАК СуммаВаловойПрибыли,
    СУММА(Продажи.КоличествоОборот) КАК КоличествоПроданныхТоваров

Если мы внимательно посмотрим на строку расчета поля СуммаВаловойПрибыли, то увидим экономический парадокс:

Продажи.СтоимостьОборот - (ЦенаСебестоимости.ЦенаНоменклатуры * Продажи.КоличествоОборот)

Здесь переменная СтоимостьОборот представляет собой сумму выручки вместе с НДС (исходящим налогом с продаж). В то же время себестоимость в подавляющем большинстве торговых и производственных компаний в системе 1С ведется и списывается по партиям без НДС (согласно принятой учетной политике).

В результате математического расчета программа вычитает чистую себестоимость из «грязной» выручки, содержащей налог. Показатель валовой прибыли необоснованно завышается на сумму НДС. Мы получаем формулу: Валовая прибыль = Реальная прибыль + Исходящий НДС.

Почему это критично для ABC-анализа?

ABC-анализ делит товары на три группы по степени их важности для компании (где группа «А» — самые ценные товары, приносящие 80% прибыли). Если компания продает продукцию с одинаковой ставкой НДС, искажение результатов будет пропорциональным, хотя общие цифры прибыли все равно окажутся завышенными.

Однако, если в ассортименте присутствуют товары с разными ставками налога (например, детские или медицинские товары со ставкой 10%, стандартные товары со ставкой 20% и услуги, не облагаемые НДС), то структура анализа полностью разрушается. Товары с большей ставкой НДС будут искусственно выталкиваться вверх рейтинга и ошибочно классифицироваться как более прибыльные (попадая в группу «А»), хотя фактически их реальная маржинальность ниже аналогов с меньшей налоговой нагрузкой.

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

Способ 1. Исправление запроса в конфигураторе (для разработчиков)

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

Нам необходимо очистить показатель выручки от налога во всех ветках условия расчета прибыли. Для этого мы заменяем переменную Продажи.СтоимостьОборот на конструкцию (Продажи.СтоимостьОборот - Продажи.НДСОборот).

Разберем, как должен выглядеть скорректированный фрагмент запроса:


СУММА(ВЫБОР 
    КОГДА ЦенаСебестоимости.ЦенаНоменклатуры ЕСТЬ NULL 
        ТОГДА Продажи.СтоимостьОборот - Продажи.НДСОборот
    ИНАЧЕ (Продажи.СтоимостьОборот - Продажи.НДСОборот) - (ЦенаСебестоимости.ЦенаНоменклатуры * Продажи.КоличествоОборот)
КОНЕЦ) КАК СуммаВаловойПрибыли,

После внесения этого изменения во все аналогичные пакеты запросов внутри отчетов ABC-анализа система начнет рассчитывать показатели корректно. Валовая прибыль примет свой классический и методологически верный экономический вид: ВыручкаБезНДС - Себестоимость.

Способ 2. Обходной путь без изменения конфигурации (для пользователей)

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

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

  1. Откроем настройки отчета «ABC/XYZ-анализ продаж» и перейдем в расширенный режим настройки компоновки данных.
  2. Перейдем на вкладку «Пользовательские поля».
  3. Добавим новое поле с типом «Поле-выражение». Назовем его, например, «Валовая прибыль (чистая)».
  4. В поле выражения для расчета детальных и суммарных записей пропишем следующую формулу:
    [Сумма выручки] - [Сумма НДС] - [Себестоимость]
  5. Перейдем на вкладку «Выбранные поля», уберем стандартное поле Валовая прибыль и добавим наше созданное пользовательское поле Валовая прибыль (чистая).

Этот способ позволяет оперативно получать достоверные аналитические отчеты без необходимости привлечения программистов 1С и внесения изменений в метаданные конфигурации.

Как эта проблема решена в современных версиях 1С?

Проанализируем развитие этой ситуации в современных программных продуктах на платформе «1С:Предприятие 8.3». Разработчики учли прошлые ошибки проектирования и полностью переработали архитектуру хранения данных продаж:

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

← На главную