В конфигурации 1С:Управление торговлей (редакция 11) стандартный отчет «Валовая прибыль предприятия» строится на основе данных регистра накопления РегистрНакопления.ВыручкаИСебестоимостьПродаж. Особенность этого регистра заключается в том, что записи в него попадают только в момент проведения документа Реализация товаров и услуг. То есть до тех пор, пока товар фактически не отгружен со склада клиенту, в отчете по валовой прибыли этот заказ не отразится.
Однако в реальной бизнес-практике часто возникает ситуация, когда менеджеры получают свои премии и бонусы по факту оплаты заказа клиентом (например, при 100% предоплате), независимо от того, уехал ли товар со склада или еще находится в доставке. В этой статье мы подробно разберем, почему штатные механизмы не подходят для этой задачи и как разработать собственный отчет с помощью Системы компоновки данных (СКД), который учтет как отгруженные, так и неотгруженные, но оплаченные заказы.
Проанализируем архитектуру хранения данных в 1С:УТ 11. Стандартный отчет по выручке ориентируется на свершившийся факт перехода права собственности (отгрузку). Если мы хотим видеть валовую прибыль по заказам в статусе «К выполнению» или «В доставке», нам придется столкнуться с двумя ключевыми техническими проблемами:
Заказ клиента.Давайте пошагово разберем, как собрать необходимую информацию из регистров системы и объединить её в одном отчете СКД.
Для того чтобы получить список актуальных заказов, их состав, количество товаров и согласованную с клиентом цену, мы можем обратиться к двум источникам данных:
Документ.ЗаказКлиента.Товары) — подходит, если нам нужно видеть состав заказа в его первоначальном виде.РегистрНакопления.ЗаказыКлиентов) — данный регистр является более предпочтительным, если в системе практикуются частичные отгрузки. Анализируя остатки по этому регистру, мы сможем увидеть, какая именно часть товаров по заказу еще осталась неотгруженной.Чтобы понять, оплачен ли заказ (и в каком объеме), мы можем использовать два подхода:
РегистрСведений.СостоянияЗаказовКлиентов. Из него можно получить готовые показатели, которые система рассчитывает автоматически. Нам будут полезны поля Состояние (например, «Готов к отгрузке»), СуммаОплаты и ПроцентОплаты.РегистрНакопления.РасчетыСКлиентамиПоДокументам. Сравнив общую сумму заказа и сумму фактических платежей по этому объекту расчетов, мы сможем вычислить точный процент оплаты заказа на дату формирования отчета.Это самый важный шаг. Так как реальной себестоимости списания еще нет, мы должны использовать оценочные (плановые) методы. Рассмотрим два наиболее популярных варианта решения:
Метод А. Использование прайс-листа закупочных цен
Мы можем брать цены из регистра сведений РегистрСведений.ЦеныНоменклатуры.СрезПоследних. Для этого в настройках отчета выбирается определенный вид цен (например, «Закупочная» или «Дилерская»). В запросе плановая себестоимость будет рассчитываться как произведение количества товара в заказе на актуальную закупочную цену на дату отчета.
Метод Б. Оценка по текущей средней себестоимости на складах
Мы можем получить оперативную себестоимость товаров, обратившись к регистру накопления РегистрНакопления.СебестоимостьТоваров. Потребуется рассчитать среднюю стоимость единицы хранения на складе (разделив общую стоимость остатка на количество) и умножить полученное значение на количество товара в неотгруженном заказе.
Ниже представлен пример структуры запроса, который объединяет данные по заказам клиентов, их оплатам и плановой себестоимости по типу цен. Вы можете использовать этот код как основу для создания своего внешнего отчета в схеме компоновки данных.
ВЫБРАТЬ
ЗаказТовары.Ссылка КАК ЗаказКлиента,
ЗаказТовары.Ссылка.Менеджер КАК Менеджер,
ЗаказТовары.Номенклатура КАК Номенклатура,
ЗаказТовары.Количество КАК КоличествоЗаказ,
ЗаказТовары.Сумма КАК ВыручкаЗаказ,
ЕСТЬNULL(СостоянияЗаказов.ПроцентОплаты, 0) КАК ПроцентОплаты,
ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ЗакупочнаяЦена,
ЗаказТовары.Количество * ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК ПлановаяСебестоимость,
ЗаказТовары.Сумма - (ЗаказТовары.Количество * ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)) КАК ПлановаяВаловаяПрибыль
ПОМЕСТИТЬ ВТ_ДанныеЗаказов
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказов
ПО ЗаказТовары.Ссылка = СостоянияЗаказов.Заказ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦеныЗакупочная) КАК ЦеныНоменклатуры
ПО ЗаказТовары.Номенклатура = ЦеныНоменклатуры.Номенклатура
ГДЕ
ЗаказТовары.Ссылка.Проведен = ИСТИНА
И СостоянияЗаказов.ПроцентОплаты >= &МинимальныйПроцентОплаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ДанныеЗаказов.Менеджер КАК Менеджер,
ВТ_ДанныеЗаказов.ЗаказКлиента КАК ЗаказКлиента,
ВТ_ДанныеЗаказов.Номенклатура КАК Номенклатура,
ВТ_ДанныеЗаказов.КоличествоЗаказ КАК Количество,
ВТ_ДанныеЗаказов.ВыручкаЗаказ КАК Выручка,
ВТ_ДанныеЗаказов.ПлановаяСебестоимость КАК Себестоимость,
ВТ_ДанныеЗаказов.ПлановаяВаловаяПрибыль КАК ВаловаяПрибыль,
ВТ_ДанныеЗаказов.ПроцентОплаты КАК ПроцентОплаты
ИЗ
ВТ_ДанныеЗаказов КАК ВТ_ДанныеЗаказов
РегистрСведений.СостоянияЗаказовКлиентов, чтобы отсечь заказы, которые не соответствуют критериям оплаты (например, мы можем установить параметр &МинимальныйПроцентОплаты равным 100%, чтобы выбирать только полностью оплаченные заказы).РегистрСведений.ЦеныНоменклатуры по определенному виду закупочных цен для расчета плановой себестоимости и маржинальности.Выручка, Себестоимость и ВаловаяПрибыль. Эти поля мы назначим ресурсами на вкладке «Ресурсы» в конструкторе СКД, чтобы получить корректные итоги по группировкам (Менеджер -> Заказ -> Номенклатура).Для минимизации ошибок при расчете управленческих показателей (особенно при расчете премий менеджерам по продажам) рекомендуем придерживаться следующих организационных и технических правил:
Заказ клиента без предварительного согласования или получения минимального аванса, чтобы менеджеры не могли искусственно завышать свои показатели продаж виртуальными заказами.Установка цен номенклатуры гарантирует точность расчета валовой прибыли.Используя предложенный подход на базе СКД, вы получите гибкий инструмент для контроля реальной эффективности работы отдела продаж, который позволит оценивать валовую прибыль компании по факту прихода денежных средств, не дожидаясь физической отгрузки товаров клиентам.