Как настроить отчет по валовой прибыли с учетом неотгруженных заказов в 1С:Управление торговлей 11?

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

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

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

Почему стандартный отчет не подходит и в чем сложность?

Проанализируем архитектуру хранения данных в 1С:УТ 11. Стандартный отчет по выручке ориентируется на свершившийся факт перехода права собственности (отгрузку). Если мы хотим видеть валовую прибыль по заказам в статусе «К выполнению» или «В доставке», нам придется столкнуться с двумя ключевыми техническими проблемами:

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

Давайте пошагово разберем, как собрать необходимую информацию из регистров системы и объединить её в одном отчете СКД.

Шаг 1. Получение данных по заказам и номенклатуре

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

Шаг 2. Анализ состояния оплаты заказа

Чтобы понять, оплачен ли заказ (и в каком объеме), мы можем использовать два подхода:

Шаг 3. Оценка плановой себестоимости неотгруженного товара

Это самый важный шаг. Так как реальной себестоимости списания еще нет, мы должны использовать оценочные (плановые) методы. Рассмотрим два наиболее популярных варианта решения:

Метод А. Использование прайс-листа закупочных цен
Мы можем брать цены из регистра сведений РегистрСведений.ЦеныНоменклатуры.СрезПоследних. Для этого в настройках отчета выбирается определенный вид цен (например, «Закупочная» или «Дилерская»). В запросе плановая себестоимость будет рассчитываться как произведение количества товара в заказе на актуальную закупочную цену на дату отчета.

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

Практическая реализация: Шаблон запроса для СКД

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


ВЫБРАТЬ
    ЗаказТовары.Ссылка КАК ЗаказКлиента,
    ЗаказТовары.Ссылка.Менеджер КАК Менеджер,
    ЗаказТовары.Номенклатура КАК Номенклатура,
    ЗаказТовары.Количество КАК КоличествоЗаказ,
    ЗаказТовары.Сумма КАК ВыручкаЗаказ,
    ЕСТЬNULL(СостоянияЗаказов.ПроцентОплаты, 0) КАК ПроцентОплаты,
    ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ЗакупочнаяЦена,
    ЗаказТовары.Количество * ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПлановаяСебестоимость,
    ЗаказТовары.Сумма - (ЗаказТовары.Количество * ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)) КАК ПлановаяВаловаяПрибыль
ПОМЕСТИТЬ ВТ_ДанныеЗаказов
ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказТовары
    
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказов
    ПО ЗаказТовары.Ссылка = СостоянияЗаказов.Заказ
    
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦеныЗакупочная) КАК ЦеныНоменклатуры
    ПО ЗаказТовары.Номенклатура = ЦеныНоменклатуры.Номенклатура
ГДЕ
    ЗаказТовары.Ссылка.Проведен = ИСТИНА
    И СостоянияЗаказов.ПроцентОплаты >= &МинимальныйПроцентОплаты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ДанныеЗаказов.Менеджер КАК Менеджер,
    ВТ_ДанныеЗаказов.ЗаказКлиента КАК ЗаказКлиента,
    ВТ_ДанныеЗаказов.Номенклатура КАК Номенклатура,
    ВТ_ДанныеЗаказов.КоличествоЗаказ КАК Количество,
    ВТ_ДанныеЗаказов.ВыручкаЗаказ КАК Выручка,
    ВТ_ДанныеЗаказов.ПлановаяСебестоимость КАК Себестоимость,
    ВТ_ДанныеЗаказов.ПлановаяВаловаяПрибыль КАК ВаловаяПрибыль,
    ВТ_ДанныеЗаказов.ПроцентОплаты КАК ПроцентОплаты
ИЗ
    ВТ_ДанныеЗаказов КАК ВТ_ДанныеЗаказов

Разберем логику работы запроса:

  1. В качестве основы мы берем табличную часть товаров проведенных заказов клиентов.
  2. С помощью левого соединения подключаем виртуальную таблицу РегистрСведений.СостоянияЗаказовКлиентов, чтобы отсечь заказы, которые не соответствуют критериям оплаты (например, мы можем установить параметр &МинимальныйПроцентОплаты равным 100%, чтобы выбирать только полностью оплаченные заказы).
  3. Подключаем срез последних регистра РегистрСведений.ЦеныНоменклатуры по определенному виду закупочных цен для расчета плановой себестоимости и маржинальности.
  4. В итоговой выборке рассчитываем поля Выручка, Себестоимость и ВаловаяПрибыль. Эти поля мы назначим ресурсами на вкладке «Ресурсы» в конструкторе СКД, чтобы получить корректные итоги по группировкам (Менеджер -> Заказ -> Номенклатура).

Рекомендации по внедрению отчета в работу

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

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

← На главную