Всем добрый день!
Делаю отчет по заказам с сайта для анализа валово прибыли по курсу!
Так вот есть регистр сведений ЦеныНоменклатурыКонтрагентов где вносится цена номенклатуры. Но есть две организации, которые вводят эти цены с одним типом цен и одним типом валюты.
И в запросе когда делаю срезпоследних по регистру, на одну номенклатуру получается два значения от одной организации и от второй, но даты разные! Нужно выбрать именно по последней дате не зависимо какая организация вносила цены!
Если запрос сделать отдельно по регистру, то у меня полоучается, а если вместе с продажами, то в итоге получается задвоенная номенклатура, так как две цены на нее.
ВЫБРАТЬ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта,
ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена,
ПОМЕСТИТЬ ЦеныНоменклатурыКонтрагентов
ИЗ
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
ГДЕ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта = &Валюта
И ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.ТипЦеныНоменклатуры = &ТипЦеныНоменклатуры
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СтоимостьОборот КАК Стоимость,
ЦеныНоменклатурыКонтрагентов.Цена
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты
ПОЛНОЕ СОЕДИНЕНИЕ ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
ПО ЦеныНоменклатурыКонтрагентов.Валюта = КурсыВалютСрезПоследних.Валюта
ПО ПродажиОбороты.Номенклатура = ЦеныНоменклатурыКонтрагентов.Номенклатура
ГДЕ
ПродажиОбороты.Регистратор.Контрагент = &Контрагент
Как отобрать одно значение с регистра?
"Управление производственным предприятием для Украины", редакция 1.3 (1.3.54.1)
1С:Предприятие 8.3 (8.3.10.2252)
Спасибо, разобрался!
Кому интересно, код ниже!
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СтоимостьОборот
ПОМЕСТИТЬ Продажи
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты
ГДЕ
ПродажиОбороты.Контрагент = &Контрагент
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период,
Продажи.КоличествоОборот,
Продажи.СтоимостьОборот,
ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта
ПОМЕСТИТЬ ДатыПоследнихЦен
ИЗ
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, Валюта = &Валюта) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Продажи КАК Продажи
ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = Продажи.Номенклатура
СГРУППИРОВАТЬ ПО
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
Продажи.КоличествоОборот,
Продажи.СтоимостьОборот,
ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура,
ДатыПоследнихЦен.КоличествоОборот КАК Количество,
ДатыПоследнихЦен.СтоимостьОборот КАК Стоимость,
ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена,
КурсыВалютСрезПоследних.Курс,
ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена * КурсыВалютСрезПоследних.Курс * ДатыПоследнихЦен.КоличествоОборот КАК СебестоимостьВГрнПоКурсу,
ДатыПоследнихЦен.СтоимостьОборот - ЦеныНоменфклатурыКонтрагентовСрезПоследних.Цена * КурсыВалютСрезПоследних.Курс * ДатыПоследнихЦен.КоличествоОборот КАК ВаловаяПрибыль,
ДатыПоследнихЦен.Валюта
ИЗ
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&КонецПериода, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыПоследнихЦен КАК ДатыПоследнихЦен
ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Период = ДатыПоследнихЦен.Период
И ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = ДатыПоследнихЦен.Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта = КурсыВалютСрезПоследних.Валюта