Вход | Регистрация

1С:Предприятие ::

Метки: 

Получить последнюю цену номенклатуры контрагента

Я
   Lancer666
 
05.01.13 - 01:58
Здравствуйте, уважаемые специалисты. Проблема такая: необходимо получить последнюю цену, также дату и контрагента закупа номенклатуры (конфигурация УПП). Эта информация хранится в регистре ЦеныНоменклатурыКонтрагентов. Я одним вложенным запросом получил Срез последних из этого регистра, сделал группировку по номенклатуре, а период получил максимальный. Потом соединил тот же регистр срез последних с подзапросом по номенклатуре и периоду (запрос привожу ниже). Всё было бы хорошо, но если одна и таже номенклатура имеет напривет два поступления от 30.11.12 23.59.59 от разных контрагентов и соответственно 2 записи с этим периодом в регистре, то в результате номенклатура задваивается, подскажите как этого можно избежать, учитывая, что если есть два поступления одним максимальным периодом, взять можно любой из них..
Мой запрос:
ВЫБРАТЬ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Период КАК Период, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Номенклатура, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена КАК Цена, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.Владелец КАК Контрагент 
ИЗ 
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ТекДата, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних 
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Номенклатура, 
МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период 
ИЗ 
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ТекДата, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних 

СГРУППИРОВАТЬ ПО 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура) КАК МаксПериод 
ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Период = МаксПериод.Период 
И ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = МаксПериод.Номенклатура
 
 
   1C-band
 
1 - 05.01.13 - 02:13
   Lancer666
 
2 - 05.01.13 - 02:41
Спасибо, но если честно, не очень понял, как мне  может помочь эта статья.
   Нуф-Нуф
 
3 - 05.01.13 - 04:11
Сгруппируй с максимумом по контрагенту, будь мужиком, блеать!
   Lancer666
 
4 - 06.01.13 - 01:55
Всем спасибо за помощь. Решил вопрос с помощью следующего запроса:
ВЫБРАТЬ 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Период КАК Период, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Номенклатура, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена КАК Цена, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.Владелец КАК Контрагент 
ИЗ 
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ДатаСреза, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних 
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Номенклатура, 
МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен) КАК ТипЦен 
ИЗ 
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ДатаСреза, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних 
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период, 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Номенклатура 
ИЗ 
РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ДатаСреза, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних 

СГРУППИРОВАТЬ ПО 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура) КАК ГруппировкаНоменклатура 
ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Период = ГруппировкаНоменклатура.Период 
И ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = ГруппировкаНоменклатура.Номенклатура 

СГРУППИРОВАТЬ ПО 
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура) КАК МаксПериод 
ПО ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура = МаксПериод.Номенклатура 
И ЦеныНоменклатурыКонтрагентовСрезПоследних.Период = МаксПериод.Период 
И ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен = МаксПериод.ТипЦен
   Рэйв
 
5 - 06.01.13 - 02:00
Я бы сказал жестче.

Пригласи специалиста блеать!
   Lancer666
 
6 - 06.01.13 - 02:31
Ну а что не так? Задача решена полностью. Для каждой номенклатуры найдена дата последней установленной цены с указанием контрагента и периода. В случае если на максимальный период выпадает не одна запись, то отбирается случайная запись (по максимальному контрагенту). Что не так то?
   IOL
 
7 - 06.01.13 - 02:33
К ста, очень хорошие примеры в КЗ, для понимания, первый запрос: нужно выбрать разрез и максимумы, второй запрос, присоединить к максимум(период, дата), то, что есть. Все пристрастно обрежется.
   IOL
 
8 - 06.01.13 - 02:34
(6) Если из периодического регистра, то да, а если из набора, к примеру, накладных - фиаско


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует