Поправить формулу в отчёте продаж 1с

Марат11 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
25.01.2018
  • Это отчёт менеджера по продажам
  • он работает всё ок
  • единственное что он берёт курс евро сегодняшнего дня
  • а не в документе поступления товара
  • когда мы его покупали.
Сама формула отчёта:

//******************************************* 

// Процедура генерации запроса Сформировать. 

Функция НайтиПоследПост(ном, регистратор) 

рег = СоздатьОбъект("Регистр.ПартииНаличие"); 

Рег.УстановитьЗначениеФильтра("Номенклатура", ном, 1); 

Кол=0; 

сум=0; 

ПослЦена =0; 

Рег.ВыбратьДвижения(); 

Пока Рег.ПолучитьДвижение() = 1 Цикл 

Если рег.Приход =1 тогда 

Кол = рег.Количество; 

сум = рег.СуммаРуб; 

регистратор = рег.ТекущийДокумент(); 

КонецЕсли; 

КонецЦикла; 

Если сум

ПослЦена = сум/кол; 

КонецЕсли; 

// ПослЦена= Формат(ПослЦена, "Ч015.2") ; 

возврат ПослЦена; 

КонецФункции 

// 

Процедура Сформировать() 

Перем Запрос, ТекстЗапроса, Таб; 

//Создание объекта типа Запрос 

// Подготовка к заполнению выходных форм данными запроса 

Таб = СоздатьОбъект("Таблица"); 

Таб.ИсходнаяТаблица("Сформировать"); 

// Заполнение полей "Заголовок" 

Таб.ВывестиСекцию("Заголовок"); 

Состояние("Заполнение выходной таблицы..."); 

ИтогСумма=0; 

ИтогМ=0; 

док= СоздатьОбъект("Документ.Реализация"); 

Док.выбратьДокументы(ВыбНачПериода,ВыбКонПериода); 

Пока док.ПолучитьДокумент()=1 Цикл 

Если СокрЛП( ВыбПользователь)

Если док.Автор

Продолжить; 

КонецЕсли; 

КонецЕсли; 

Если СокрЛП(ВыбПроект)

Если док.Проект

Продолжить; 

КонецЕсли; 

КонецЕсли; 

Если док.проведен()=0 Тогда 

Продолжить; 

КонецЕсли; 

док.выбратьстроки(); 

Пока док.получитьСтроку()=1 Цикл 

Если СокрЛП(ГруппаНом)

Если Док.Номенклатура.ПринадлежитГруппе(ГруппаНом)=0 Тогда 

продолжить; 

КонецЕсли; 

КонецЕсли; 

регистратор=""; 

поступилоПо = НайтиПоследПост(Док.Номенклатура,регистратор); 

Состояние("Заполнение выходной таблицы..."+Док.Номенклатура); 

Если Док.Количество

ценаПр = Док.сумма / Док.Количество; 

Иначе 

ценаПр =0; 

КонецЕсли; 

ДоляМ = ((ценаПр-(поступилоПо*множитльСебестоимость) ) * ПроцентОТМаржи/100)*Док.Количество; 

ПечДоляМ = Формат(ДоляМ, "Ч015.2") ; 

ПечпоступилоПо = Формат(поступилоПо, "Ч015.2") ; 

Таб.ВывестиСекцию("строка"); 

ИтогСумма = ИтогСумма +Док.сумма; 

ИтогМ = ИтогМ + ДоляМ; 

КонецЦикла; 

КонецЦикла; 

// Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); 

// Заполнение полей "Итого" 

Таб.ВывестиСекцию("Итого"); 

// Вывод заполненной формы 

Таб.ТолькоПросмотр(1); 

Таб.Показать("Сформировать", ""); 

КонецПроцедуры 

Процедура ПриОткрытии() 

ПроцентОТМаржи = 10; 

множитльСебестоимость = 1.25; 

Если глПользователь.наименование="Артур" Тогда 

ИначеЕсли глПользователь.наименование="Шах" Тогда 

Иначе 

// ВыбПользователь = глПользователь.текущийЭлемент(); 

// Форма.ВыбПользователь.Доступность(0); 

КонецЕсли;