Всем Доброе утро, появилась проблема в выборе из регистра.СрезПоследних. Почему-то выводятся записи, которые не являются последними по дате. В выборке появляется не только одна последняя запись, а их некоторое количество, что очень странно ¯\_(ツ)_/¯ .
Как правильно написать запрос в динамическом списке так, что бы выбиралась только одна запись с максимальным/последним периодом (с последней датой проведения документа, если так будет проще понять)?
---
Всем спасибо за предоставленное время и внимание, решение нашлось само собой!) Нужно было наложить ещё одно условие на запрос к таблице
---
СрезПоследних формируется по ВСЕМ комбинациям ИЗМЕРЕНИЙ, поэтому ничего странного, если у регистра больше одного измерения.
---
Но, регистр.СрезПоследних должен же по сути выдавать последнюю проведённую запись, а не внутри какого то диапазона, а в моём случае, какие то записи дублируются с минимальными различиями в данных (таких как дата проведения)
---
записи не дублируются, просто не все измерения выводите на форму, но в запросе они получаются все.
---
А как именно вывести последнюю запись в динамическом списке? Что бы она была одна, а не их некоторое количество
---
решать, что конкретно оставить из измерений, и какие данные агрегировать.
Т.е. на том же примере с ценами:

```1c
    ВЫБРАТЬ
    ЦеныНоменклатуры.Период КАК Период,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена,
    ...
```
---
Он и выдает по ВСЕМ комбинациям ИЗМЕРЕНИЙ. Пока вы это не поймете, вы будете удивляться результату.
Только вы определяете для себя, что для ВАС является единственная запись - напишите запрос под ваши требования.

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЦеныНоменклатуры.Период КАК Период,
    ЦеныНоменклатуры.Регистратор КАК Регистратор,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    ЦеныНоменклатуры.Характеристика КАК Характеристика,
    ЦеныНоменклатуры.ВидЦены КАК ВидЦены,
    ЦеныНоменклатуры.Цена КАК Цена,
    ЦеныНоменклатуры.Упаковка КАК Упаковка,
    ЦеныНоменклатуры.Валюта КАК Валюта,
    ЦеныНоменклатуры.Формула КАК Формула,
    ЦеныНоменклатуры.МаркетинговоеМероприятие КАК МаркетинговоеМероприятие
    ИЗ
    ВТ_Периоды КАК ВТ_Периоды
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ВТ_Периоды.Период = ЦеныНоменклатуры.Период
    И ВТ_Периоды.Номенклатура = ЦеныНоменклатуры.Номенклатура
```
---
что выдаст такой запрос, если одной датой будет установлены цены по разным видам цен?
---
я же не просто так указал: "если отсеять только по дате"
---
я тоже не просто так задаю вопрос, как и ТС, по всей видимости
---
ответ был только на это: "Почему-то выводятся записи, которые не являются последними по дате. "
---
пойдем на второй круг: нужны ограничения на измерения, по одной дате - не ограничить в общем случае
---
я как бы в курсе.
---
в таком случае зачем предлагать заведомо нерабочий вариант в (5)?
---
не притворяйся, что не понял. Ответ уже был.
---
Как будто, ваша реализация правдива и должна работать. И в правду, один из вариантов, как можно решить проблему, это сортировать по периоду и получить самую позднюю/последнюю дату, но всё равно, по какой-то неведанной причине такое не сработало, и всё равно остались повторяющиеся записи, в которых различие только в данных регистра.
---
это разные ключи по всем измерениям на одну и туже дату.
---
1. Условие нужно писать не в "ГДЕ", а в параметрах виртуальной таблицы.
2. Одна запись у вас будет только если в условии указаны все измерения, и период если он есть. Иначе записей будет не одна.

И для конкретизации обсуждения хотелось бы видеть сам запрос.
---
Выложите запрос, который сейчас выполняется.
---
К сожалению, нет возможности поделиться запросом с Вами, поэтому и ищу возможности и идеи, как можно это было бы сделать со стороны запроса, создав условие выборки одного из множества одинаковых записей.
---
Что бы была понятна общая картина, которую я пытаюсь решить.
Есть мобильные программы, версии которых я контролирую. После обновления, в регистре сведения я провожу документ где фиксирую новую версию.
Теперь же мне нужно получить общим списком каждую программу и показать текущую и последнюю версии программ, что бы пользователь мог видеть, что нужно обновлять, а что нет. Из-за чего-то, при выведении данного запроса, некоторые продукты дублируются с разницей в версиях.
Я так думаю, решить это можно, взяв последнюю по периоду, или сделать выборку по максимальному периоду и взять первую строку, но, как это сделать в пределах динамического списка, не очень понятно. Надеюсь картина стала более ясной:)
Спасибо за Ваше терпение, внимание и помощь!
---
структура регистра какая?
---
Всем спасибо за предоставленное время и внимание, решение нашлось само собой!) Нужно было наложить ещё одно условие на запрос к таблице
---
Текущая версия где хранится?
По хорошему у тебя должно быть два регистра.

РС.Обновления:
   Измерения: Программа, ГдеУстановлена
   Ресурсы: ВерсияПрограммы.

РС.ПоследниеВерсии:
   Измерения: Программа.
   Ресурсы: ВерсияПрограммы.

Тогда просто берешь срез последних у обоих регистров и соединяешь по Программа.

Проектируйте правильно исходя из того что хотите получить в итоге.