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