В прикрепленном архиве две ert-шки.
1 - "Сводный расчет маржинальной прибыли по контрагентам" (МаржПрибыльПоКонтрагентам.ert)
2 - "Расчет маржинальной прибыли по контрагенту" (МаржПрибыльПоКонтрагенту.ert).
В первом есть возможность выбрать перечень контрагентов, по которым нужно вывести данные.
Если кликнуть на конкретную позицию, то откроется вложенный (второй отчет), в котором выведутся данные по этому конкретному контрагенту в разрезе по номенклатуре. Вложенный может работать и самостоятельно.
Во втором отчете можно выводить реестр отгрузочных документов по указанному контрагенту.
Отчеты работают с Бухгалтерией 7.7 с небольшими оговорками.
1) В конфигурации необходимо создать дополнительный план счетов (например, с названием Вспомогательный) с одним счетом ПР - Сумма продаж без НДС. Количественный. Субконто 1 - Номенклатура, Субконто 2 - МестаХранения, Субконто 3 - Контрагенты. Можно создать этот счет и в основном плане счетов, но тогда возникнут проблемы при обновлении.
2) В модуле документа РасходнаяНакладная вставить цикл, формирующий проводки по каждой строке:
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Операция.НоваяПроводка();
Операция.ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);
Операция.Дебет.Счет = СчетПоКоду("ПР",ПланыСчетов.Вспомогательный);
Операция.Дебет.Субконто(1, Товар);
Операция.Дебет.Субконто(3, Контрагент);
Операция.Дебет.Субконто(2, МестоХранения);
Операция.Кредит.Счет = СчетПоКоду("ПР",ПланыСчетов.Вспомогательный);
Операция.Кредит.Субконто(1, Товар);
Операция.Кредит.Субконто(3, Контрагент);
Операция.Кредит.Субконто(2, МестоХранения);
Операция.Количество = Количество;
Операция.Сумма = Всего-НДС;
Операция.СодержаниеПроводки = "Сумма продажи без НДС";
КонецЦикла;
Дебет и Кредит дублируются для того, чтобы на счете не копились остатки.
Приделать проводки к операциям документов за прошлые периоды можно и без проведения документов (например, получив операцию документа и записав в неё новую проводку).