Срез последних

1. Gulf_Stream 05.06.13 18:22 Сейчас в теме
Почему срез последних в запросе возвращает две записи по одному измерению?
Мне всегда казалось что такой запрос должен возвращать одну запись.

Domovenock; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. kilo81 06.06.13 20:29 Сейчас в теме
(1) Gulf_Stream, до сегодняшнего дня мне тоже так казалось ))
2. Sevens 6 05.06.13 18:24 Сейчас в теме
Может Есть ещё измерения которые отличаются, просто вы их в запрос не выбрали.
Срез делается по всем измерениям.
SagittariusA; user712426; Raskad; ketr; nikolayvg; RocKeR_13; Gulf_Stream; +7 Ответить
4. 1cUserAndrew 63 05.06.13 19:17 Сейчас в теме
(2)
Может Есть ещё измерения которые отличаются, просто вы их в запрос не выбрали.

Скорее всего "Тип цен" )
user712426; RocKeR_13; +2 Ответить
3. Gulf_Stream 05.06.13 18:28 Сейчас в теме
Ок, кажется догнал, что означало "По каждой комбинации измерений будет найдена наиболее поздняя запись, но не более поздняя, чем указанная дата. "

Спасибо =)
6. RocKeR_13 1333 07.06.13 11:18 Сейчас в теме
Скорее всего "Тип цен" )

Именно так и есть: если у вас зарегистрировано несколько типов цен (например, закупочная, розничная и т.д.), то все он и выведет)
7. figulinvs 09.06.13 14:53 Сейчас в теме
Но в запросе не указан тип цен (следовательно детализировать он не должен).
Почему выводятся все-таки две записи?
8. HEKPOH 76 09.06.13 18:29 Сейчас в теме
(7) Это если бы было сгруппировать по номенклатуре, тогда бы не детализировал :) А так, все правильно запрос вывел
9. Gulf_Stream 09.06.13 19:03 Сейчас в теме
(7) На самом деле должен, согласно документации. Просто я думал, что СрезПоследних работает аналогично таблицам остатков и оборотов регистров накопления.

Вот что написано в документации про регистр сведений:
По каждой комбинации измерений будет найдена наиболее поздняя запись, но не более поздняя, чем указанная дата.


А вот что про регистр накопления:
Агрегация производится по измерениям указанным в запросе.
10. HEKPOH 76 09.06.13 19:10 Сейчас в теме
(9) чем отличаются фразы?
1. По каждой комбинации измерений
2. По каждой комбинации измерений, выбранных в запросе

И, кстати, вот что написано в синтакс-помощнике: "Записи подбираются для каждого сочетания из ВСЕХ Имеющихся значений измерений регистра."

Т.е. не из выбранных, а имеющихся
11. echo77 1892 09.06.13 20:45 Сейчас в теме
(9) Все верно, если вам нужен срез последних в разрезе "вашего" перечня измерений - виртуальная таблица СрезПоследних вам не подойдет
kabantus; +1 Ответить
12. Sevens 6 10.06.13 12:10 Сейчас в теме
(11)Если у вы изначально знаете по каким измерениям вам надо срез последних (надо понимать, что б получить 1 запись, надо указать все измерения) то срез последних всё же подойдет.
А если вы не знаете по каким измерениям вам надо срез(знаете только 1 измерение), будьте готовы получить надцать записей. Ведь программа не может за вас додумать что вам конкретно надо, а уже эти записи фильтруйте/группируйте как хотите.

Возьмём пример автора. Откуда программа знает по какому типу цен вам надо получить информацию? Если в условии ВТ дописать, ТипЦен =&Тип, ВТ отлично это скушает, и если измерений больше нет - выдаст вам 1 цену.
Merkalov; +1 Ответить
17. Gulf_Stream 10.06.13 19:21 Сейчас в теме
(12)Возьмём пример автора. Откуда программа знает по какому типу цен вам надо получить информацию? Если в условии ВТ дописать, ТипЦен =&Тип, ВТ отлично это скушает, и если измерений больше нет - выдаст вам 1 цену.

Автор ожидал от программы такой логики:
Программист указал в выборке всего одно измерение, значит остальные измерения его не интересуют, таким образом выдаём ему последнее значение по интересующему измерению, не зависимо от остальных измерений.

Теперь то я буду аккуратнее обращаться со срезом последних =)
TeMochkiN; Raskad; Merkalov; nekit_rdx; akocur; +5 Ответить
13. HEKPOH 76 10.06.13 12:39 Сейчас в теме
"надо понимать, что б получить 1 запись, надо указать все измерения" - в корне неверное утверждение!
14. Sevens 6 10.06.13 12:42 Сейчас в теме
(13) HEKPOH,
Согласен, тут стоит написать "Все используемые измерения"
Если вы не пользуетесь, например:"типом цен"(не заполняете в регистре) его можно не указывать.
Если что-то другое имелось ввиду, уточните, может чего не знаю.
15. HEKPOH 76 10.06.13 13:37 Сейчас в теме
(14) мысль следущая:
в результате будет столько записей, сколько в регистре встречается различных значений по любому измерению регистра (максимальное количество). Т.е. если по измерению1 2 различных значения, а по измерению2 5 различных значений, в итоге будет 5 строк
16. Sevens 6 10.06.13 13:49 Сейчас в теме
(15)Всё верно, вот только если четко задать эти измерения то получишь 1 строку :)

Допустим есть измерения Тип цен и Склад, и ресурс - цена.
Если ты четко укажешь какой тип цен и склад тебе нужен в срезе последних, то получишь 1 запись с этой ценой.
Если укажешь только тип, то получишь столько записей - сколько у тебя складов по данному типу и цены по каждому из них.
Если укажешь только склад - получишь столько записей - сколько у тебя было типов цен на этом складе и цены в соответствии с типом.
Если измерение склад не используется, то достаточно будет указать тип, что б получить 1 запись.
One_Assembler; Merkalov; +2 Ответить
18. anton-1981@yandex.ru 04.06.14 16:06 Сейчас в теме
Может кому-то пригодиться, шоб голову долго не ломать.
Имеем:
Регистр сведений "ПартииТоваров".
Измерения: "Товар", "Тип", "МестоХранения".
Ресурсы: "Количество", "Цена"
Нужно: Узнать, тупо, в каких количествах товар приходил последний раз (можно последний на какую-то дату), не важно куда и какого типа. Это же актуально и для остальных ресурсов.
ВЫБРАТЬ
	ПартииТоваровСрезПоследних.Товар КАК Товар1,
	МАКСИМУМ(ПартииТоваровСрезПоследних.Регистратор.Дата) КАК ПоследнийПриход
ПОМЕСТИТЬ
	тбПоследниеПоступления
ИЗ
	РегистрСведений.ПартииТоваров.СрезПоследних(&Дата) КАК ПартииТоваровСрезПоследних
СГРУППИРОВАТЬ ПО
	ПартииТоваровСрезПоследних.Товар
;
ВЫБРАТЬ
	ПартииТоваровСрезПоследних.Товар КАК Товар,
	ПартииТоваровСрезПоследних.Количество КАК Количество
ИЗ
	РегистрСведений.ПартииТоваров.СрезПоследних(&Дата) КАК ПартииТоваровСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ
	тбПоследниеПоступления КАК тбПоследниеПоступления
ПО
	тбПоследниеПоступления.Товар1 = ПартииТоваровСрезПоследних.Товар
ГДЕ
	ПартииТоваровСрезПоследних.Регистратор.Дата = тбПоследниеПоступления.ПоследнийПриход

УПОРЯДОЧИТЬ ПО
	Товар.Наименование
Показать
Dunda; LCLNN; nekit_rdx; HIVvich; akocur; user608739_serg999h; Kagero; DFinteX; +8 Ответить
19. sokir 2 27.09.16 14:36 Сейчас в теме
Хотел тему новую создавать, но гугл привел меня сюда. Тоже думал что СрезПоследних будет только по измерению в запросе.

Еще можно
ВЫБРАТЬ ПЕРВЫЕ 1
    ПартииТоваровСрезПоследних.Товар КАК Товар1,
    ПартииТоваровСрезПоследних.Количество КАК Количество
ПОМЕСТИТЬ
    тбПоследниеПоступления
ИЗ
    РегистрСведений.ПартииТоваров.СрезПоследних(&Дата) КАК ПартииТоваровСрезПоследних
УПОРЯДОЧИТЬ ПО ПартииТоваровСрезПоследних.Период УБЫВ
user640247; Merkalov; +2 Ответить
20. user640247 19.09.22 11:10 Сейчас в теме
(19) спасибо, пригодилось.
21. zoeh 31 28.09.22 04:10 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот