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

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

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

Методологические и технические ограничения 1С:УТ 10.3

Прежде чем вносить изменения в конфигурацию, проанализируем, как устроен учет себестоимости и продаж в 1С:УТ 10.3:

  1. Методология учета: Затраты на продажу (упаковка, доставка покупателю) являются коммерческими расходами. В соответствии с правилами учета они не должны включаться в себестоимость запасов на складе. Включение коммерческих расходов в партии товаров приводит к искажению стоимости остатков.
  2. Особенности партионного учета: При повторном проведении документов или выполнении обработки «Проведение по партиям» типовой общий модуль УправлениеЗапасамиПартионныйУчет полностью очищает и переформирует записи регистра накопления ПродажиСебестоимость. Если вручную или отдельным документом записать доп. расходы в этот регистр, эти данные сбросятся при восстановлении последовательности партий.
  3. Проблема возвратов: Если искусственно завысить себестоимость партии в регистре остатков ПартииТоваровНаСкладах в момент продажи, то при последующем оформлении документа ВозвратТоваровОтПокупателя товар вернется на склад по завышенной стоимости, что исказит отчетность в будущих периодах.

Разберем два практических способа реализации этой задачи.

Способ 1. Использование отдельного регистра и специализированного отчета (Рекомендуемый)

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

  1. Добавление табличной части: В документ РеализацияТоваровУслуг добавляем новую табличную часть для ввода дополнительно понесенных расходов с указанием вида расхода и суммы.
  2. Создание регистра: Создаем оборотный регистр накопления (например, ДопРасходыПриРеализации) с измерениями ДокументПродажи, Номенклатура, Менеджер и ресурсом СуммаЗатрат. При проведении реализации формируются записи в данный регистр.
  3. Доработка отчета: Создаем внешний отчет или модифицируем отчет ВаловаяПрибыль. В схеме компоновки данных (СКД) связываем данные регистра ПродажиСебестоимость с новым регистром ДопРасходыПриРеализации по документу и номенклатуре. Расчет финансового результата выполняется по формуле:

Валовая прибыль = Выручка - Себестоимость партий - Дополнительные расходы

Данный вариант гарантирует, что перепроведение партий не сбросит введенные расходы, а складские остатки останутся корректными.

Способ 2. Модификация модуля партионного учета

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

  1. В документе РеализацияТоваровУслуг регистрируются суммы дополнительных расходов.
  2. В общем модуле УправлениеЗапасамиПартионныйУчет дорабатывается процедура списывания партий. В момент формирования записей для регистра ПродажиСебестоимость к рассчитанной себестоимости партии программно прибавляется сумма доп. расходов из табличной части документа.
  3. Регистр ПартииТоваровНаСкладах при этом не затрагивается, сохраняя реальную себестоимость поступления товара.

Рассмотрим пример алгоритма распределения доп. расходов пропорционально стоимости товаров при проведении по партиям:


// Пример распределения дополнительных расходов по строкам реализации
СуммаДопРасходов = ДокументСсылка.ДопРасходы.Итог("Сумма");
СуммаДокумента   = ДокументСсылка.Товары.Итог("Сумма");

Если СуммаДокумента > 0 И СуммаДопРасходов > 0 Тогда
    Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
        Доля = СтрокаТовара.Сумма / СуммаДокумента;
        ДопРасходНаСтроку = Окр(СуммаДопРасходов * Доля, 2);
        
        // Увеличение себестоимости в движении регистра ПродажиСебестоимость
        ДвижениеСебестоимость.Стоимость = ДвижениеСебестоимость.Стоимость + ДопРасходНаСтроку;
    КонецЦикла;
КонецЕсли;

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

← На главную