Как рассчитать валовую прибыль в разрезе договоров поставщиков и дат поступления в 1С:Управление торговлей 10.3?

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

При ведении учета по методу ФИФО часто возникает необходимость детализировать валовую прибыль не только по покупателям или номенклатуре, но и по первичным условиям закупки: конкретным договорам поставщиков и датам оприходования товара. Это требуется, например, для корректного расчета ретро-бонусов или распределения премий поставщиков между филиалами. Проанализируем, как реализовать подобный расчет в программных продуктах на базе «1С:Управление торговлей» (редакция 10.3).

Обязательные условия учета для корректного расчета

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

  1. Метод оценки запасов: В настройках учетной политики управленческого учета должен быть установлена оценка ФИФО. При выбранном методе «По средней» документ партии не фиксируется при списании в регистрах, и связать проданный товар с конкретной поставкой невозможно.
  2. Актуальность партионного учета: В базе не должно быть отрицательных остатков, а перед формированием отчетов необходимо регулярно выполнять обработку Проведение по партиям. Если партии списались с ошибками или зафиксированы задним числом, поле документа оприходования окажется пустым.

Технический механизм: откуда брать данные

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

  1. Регистр накопления ПродажиСебестоимость — хранит данные о проданном товаре и его списанной себестоимости.
  2. Регистр накопления ПартииТоваровНаСкладах — содержит историю поступлений и списания партий.

В регистре ПродажиСебестоимость ключевым является измерение ДокументОприходования. Оно хранит ссылку на первичный документ закупки (например, ПоступлениеТоваровУслуг). Через реквизиты этого документа вытаскивается необходимая аналитика поставщика:

  1. Дата поступления: ПродажиСебестоимость.ДокументОприходования.Дата
  2. Договор поставщика: ПродажиСебестоимость.ДокументОприходования.ДоговорКонтрагента
  3. Поставщик: ПродажиСебестоимость.ДокументОприходования.Контрагент

Способы решения задачи

Способ 1. Настройка типового отчета «Продажи»

Рассмотрим вариант без изменения конфигурации. В УТ 10.3 стандартные отчеты подсистемы продаж позволяют использовать реквизиты документа оприходования в качестве группировок.

  1. Откроем отчет по продажам или валовой прибыли.
  2. Зайдем в настройки отчета и добавим группировки строк: ДокументОприходования.ДоговорКонтрагента и ДокументОприходования.Дата.
  3. Сформируем отчет за нужный период.

Способ 2. Разработка запроса или внешнего отчета (СКД)

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

Посмотрим на пример текста запроса:


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

Ограничения и узкие места типовой логики

Проанализируем ситуации, когда прямое обращение к ДокументОприходования не вернет первичного поставщика:

  1. Перемещения товаров: Если товар перед реализацией перемещался между складами документом ПеремещениеТоваров, в поле ДокументОприходования запишется именно документ перемещения. В таких случаях для поиска исходной закупки потребуется рекурсивный анализ движения партий по регистру ПартииТоваровНаСкладах.
  2. Комплектация: В случае продажи собранных комплектов документом оприходования выступает КомплектацияНоменклатуры, из-за чего прямая связь с договорами поставщиков комплектующих теряется.
← На главную