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

1С:Предприятие :: 1С:Предприятие 8 общая

Получить последнюю цену закупки

Получить последнюю цену закупки
Я
   LastUnion
 
15.02.18 - 04:25
Здравствуйте, помогите пожалуйста решить такую задачку: есть регистр сведений ЦеныНоменклатурыПоставщиков, мне нужно получить последние цены на все товары. Я делаю так:

ВЫБРАТЬ 
    ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК ЦенаЗакупки,
    ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
ПОМЕСТИТЬ ЦЕНЫЗАКУПКИ
ИЗ
    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
;



Проблема в том, что строк в результате выполнения запроса с одним товаром может быть несколько, связано это с тем, как я понял, что в регистре отличаются значения измерений(таких как "Поставщик" и т.д.) В итоге я получаю что-то типа такого:

НазваниеТовара 100р.
НазваниеТовара 100р.
НазваниеТовара 120р.


Как сделать так, чтобы выбиралась только последняя цена на текущий момент, без учета остальных измерений?
 
 
   shadow_sw
 
1 - 15.02.18 - 04:27
На какую дату выборка? если выбирать из СрезПоследних без указания даты - ты и получаешь все что есть
   LastUnion
 
2 - 15.02.18 - 04:32
На текущую дату, подставлял и текущую как параметр вирутальной таблицы, но результат не меняется
   LastUnion
 
3 - 15.02.18 - 04:33
он сейчас выбирает последние цены по всем поставщикам, период тут не при чем
   LastUnion
 
4 - 15.02.18 - 04:33
А мне нужно просто последнюю цену закупки без учета поставщиков
   shadow_sw
 
5 - 15.02.18 - 04:36
ВЫБРАТЬ 
    ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК ЦенаЗакупки, 
    ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
ИЗ
    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(&НаДату, ) КАК ЦеныНоменклатурыПоставщиковСрезПоследних

&НаДату = ТекущаяДата()
   shadow_sw
 
6 - 15.02.18 - 04:36
(3) сам с собой разговариваешь?:)
   LastUnion
 
7 - 15.02.18 - 04:38
(5) Сейчас, попробую ещё раз, секунду (6) Новенький здесь, только узнал, что можно ссылаться на сообщения других)
   LastUnion
 
8 - 15.02.18 - 04:43
(5) Все осталось как было...

В регистре получается лежит что-то типа такого:

Номенклатура     Цена          Поставщик            Дата
Номенклатура1    100            ООО"Поставщик1"    01.01.2018
Номенклатура1    100            ООО"Поставщик2"    06.01.2018  
Номенклатура1    100            ООО"Поставщик1"    08.01.2018
Номенклатура1    120            ООО"Поставщик2"    10.01.2018

В итоге я получаю
Номенклатура1    100  
Номенклатура1    120

Потому что поставщики разные....


А мне нужно получить последнюю закупочную цену:

Номенклатура1    120
   Mankubus
 
9 - 15.02.18 - 05:48
(8) изучай временные таблицы и выражение МАКСИМУМ
   Mankubus
 
10 - 15.02.18 - 05:50
1. Получаешь все цены с периодом и номенклатурой 
2. Выбираешь максимальный период по каждой номенклатуре
3. Соединяет 1 и 2, выбирая только цены с максимальным периодом
 
 Рекламное место пустует
   LastUnion
 
11 - 15.02.18 - 05:59
(10) Сейчас попробую
   LastUnion
 
12 - 15.02.18 - 06:05
(10) Сделал так как вы говорили? Ничего не изменилось


Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                   |    ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура,
                   |    ЦеныНоменклатурыПоставщиковСрезПоследних.Период КАК Период,
                   |    ЦеныНоменклатурыПоставщиковСрезПоследних.Цена
                   |ПОМЕСТИТЬ ВСЕЦЕНЫ
                   |ИЗ
                   |    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(, ) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ
                   |    ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура,
                   |    МАКСИМУМ(ЦеныНоменклатурыПоставщиковСрезПоследних.Период) КАК Период
                   |ПОМЕСТИТЬ ЦЕНЫСМАКСПЕРИОДОМ
                   |ИЗ
                   |    РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних КАК ЦеныНоменклатурыПоставщиковСрезПоследних
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ
                   |    ВСЕЦЕНЫ.Номенклатура,
                   |    ВСЕЦЕНЫ.Цена
                   |ИЗ
                   |    ВСЕЦЕНЫ КАК ВСЕЦЕНЫ
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦЕНЫСМАКСПЕРИОДОМ КАК ЦЕНЫСМАКСПЕРИОДОМ
                   |        ПО ВСЕЦЕНЫ.Номенклатура = ЦЕНЫСМАКСПЕРИОДОМ.Номенклатура";
   VladZ
 
13 - 15.02.18 - 06:09
(12) Читай внимательно!!! "Получаешь все цены". Все!!! А не срез последних.
   chelentano
 
14 - 15.02.18 - 06:39
(12) В таком случае надо работать с физической таблицей, а не с виртуальной
   catena
 
15 - 15.02.18 - 07:13
(13)Интересно, и чем будет отличаться выборка всех цен по максимальному периоду от выборки цен из среза последних?
   catena
 
16 - 15.02.18 - 07:14
+(15)опять же по маскимальному периоду
   chelentano
 
17 - 15.02.18 - 07:52
(15) Срез последних выдает записи по всем измерениям. Надо только одну.
   catena
 
18 - 15.02.18 - 07:59
(17)Покажите мне вариант записей регистра, которые дадут разный результат в выборках:

Выбрать максимум(период), измерение1 из регистрсведений
Сгруппировать по измерение1


Выбрать максимум(период), измерение1 из регистрсведений.срезпоследних
Сгруппировать по измерение1
   chelentano
 
19 - 15.02.18 - 08:13
(18) Извиняюсь. Не так понял :)
   НЕА123
 
20 - 15.02.18 - 08:14
(12)
добавь


И ВСЕЦЕНЫ.Период = ЦЕНЫСМАКСПЕРИОДОМ.Период

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