Столнулся с такой ситуацией, что некоторым пользователям при расчете прибыли не нужна ни средняя, ни партионная себестоимость, а нужна актуальная цена закупа - ее и брать за себестоимость. В связи с этим переделал стандартный отчет Валовая прибыль следующим образом: программа вычисляет актуальную цену по документам Поступление товаров и Оприходование товаров и принимает ее в качестве себестоимости. остальной расчет идет стандартно. Также была добавлено колонка "Себестоимость за единицу" (включается как и все в настройках), по этой колонке, при расшифровке отчета по регистратору, можно отследить как менялась закупочная цена товара.
Важно: для формирования отчета необходимо заполнить регистр "Регламентированный производственный календарь", хотя бы значениями по умолчанию, с него берутся календарные даты.
Данный отчет работает независимо без доработок конфигурации.
Если ассортимент товаров большой, то просчет закупочных цен может занять продолжительное время. Чтобы это обойти пришлось дописать в конфигурацию отдельный регистр сведений для регистрации таких цен и соответственно есть второй вариант отчета, который ориентирован на данный регистр. Конфигурацию легко соединить через объединение или перенести функционал вручную.
Регистр сведений:
Измерения - Номенклатура и ХарактеристикаНоменклатуры;
Ресурсы - Цена.
Подписка на событие: Источник - ПоступлениеТоваровУслуг, ОприходованиеТоваров. Событие - ОбработкаПроведения; Обработчик: ОбщМодуль.ЦеныЗакупОбработкаПроведения;
и сама процедура в общем модуле
Товары=Источник.Товары.выгрузить(); Товары.свернуть("Номенклатура,ХарактеристикаНоменклатуры","Количество,Сумма"); Движение=источник.Движения.ЦеныНоменклатурыЗакуп; для Каждого стр из Товары Цикл если не Стр.Количество=0 и не Стр.Сумма=0 Тогда Рег=Движение.добавить(); рег.Период=НачалоДня(Источник.Дата); Рег.Номенклатура=Стр.Номенклатура; Рег.ХарактеристикаНоменклатуры=Стр.ХарактеристикаНоменклатуры; Рег.Цена=стр.Сумма/Стр.Количество; КонецЕсли; КонецЦикла; Движение.Записывать=истина;