Добрый день всем!
Необходимо получить данные из регистра накопления с указанием ВидаДвижения и НаДату.
ВидДвижения есть только у обычного регистра и там "Период". Как период прировнять к НаДату ?
На Выходе необходимо получить значение измерения регистра НаДату.
---
Может так заработает?

```1c
    ИЗ

    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
    Внутреннее соединение
    (ВЫБРАТЬ
    МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксПериод,
    СостояниеТоваровНаСкладахСВХ.Номенклатура,
    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
    ИЗ
    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
    ГДЕ
    СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    И СостояниеТоваровНаСкладахСВХ.Период <&НаДату
    СГРУППИРОВАТЬ ПО
    СостояниеТоваровНаСкладахСВХ.Номенклатура,
    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
    ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
    И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
    И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
```

И период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
---
Вы уже составили примерный текст запроса?
Модно допустим присвоить синоним параметру период

"НаименованиеРегистраНакопления.Период как НаДату"

И вид вдижения.Приход
---
Отчёт на скд. ВидДвижения задал в условиях. Но необходимо получить последние записи "НаДату", не пойму как в случае с периодом это реализовать.

То есть к примеру из РегистраНакопления.Остатки, можно задать &НаДату в параметрах этой виртуальной таблицы. Мне вот так же надо, но регистр нак. обычный.
---
В таблице считайте
Сумма(НаименованиеРегистраНакопления.Ресурс)
ГДЕ
НаименованиеРегистраНакопления.Период <= &Период
И НаименованиеРегистраНакопления.ВидДвижения = &ВидДвижения
---
Будет выводить несколько записей. Мне необходимо значение измерения последнее на дату.
Возможно вытащить поле Период и сделать порядок по нему Убывание ?
Или как..
---
Вам в итоге надо несколько записей? По каждому измерению или как?
---
Если конкретнее. То есть документ с номенклатурой и серией.
И есть рег.накопления с измерениями номенклатура, серия и статус.
Мне необходимо вывести отчёт по данным документов + статус в строках.

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

```1c
    ВЫБРАТЬ

    ЗаявкаНаСклад.Ссылка КАК Документ,

    ЗаявкаНаСклад.Дата КАК Дата,

    ЗаявкаНаСклад.Номер,

    ЗаявкаНаСкладТовары.Номенклатура,

    ЗаявкаНаСкладТовары.СерияНоменклатуры,

    ЗаявкаНаСкладТовары.ЕдиницаИзмерения,

    ЗаявкаНаСкладТовары.Количество,

    ЗаявкаНаСкладТовары.ДатаПлановая,

    ЗаявкаНаСкладТовары.Готовность,

    ЗаявкаНаСкладТовары.ФлагПриоритет,

    ЗаявкаНаСклад.Организация,

    ЗаявкаНаСклад.Контрагент,

    ЗаявкаНаСклад.ДоговорКонтрагента,

    ЗаявкаНаСклад.Склад,

    ЗаявкаНаСклад.АвторЗаявки,

    ЗаявкаНаСклад.Исполнитель,

    ЗаявкаНаСкладТовары.НомерСтроки

    ПОМЕСТИТЬ ВТ_ЗаявкиНаСклад

    ИЗ

    Документ.лад_ЗаявкаНаСклад.Товары КАК ЗаявкаНаСкладТовары

    ЛЕВОЕ СОЕДИНЕНИЕ Документ.лад_ЗаявкаНаСклад КАК ЗаявкаНаСклад

    ПО ЗаявкаНаСкладТовары.Ссылка = ЗаявкаНаСклад.Ссылка

    ГДЕ

    (НЕ ЗаявкаНаСклад.ПометкаУдаления)

    И ЗаявкаНаСклад.Проведен = ИСТИНА

    И ЗаявкаНаСклад.Дата МЕЖДУ &ДатаНачала И &ДатаКонца

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    СостояниеТоваровНаСкладахСВХ.Статус,

    СостояниеТоваровНаСкладахСВХ.Период,

    СостояниеТоваровНаСкладахСВХ.Номенклатура,

    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры,

    СостояниеТоваровНаСкладахСВХ.Количество

    ПОМЕСТИТЬ ВТ_Статусы

    ИЗ

    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ

    ГДЕ

    СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

    И СостояниеТоваровНаСкладахСВХ.Период <= &НаДату

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    ВТ_ЗаявкиНаСклад.Документ,

    ВТ_ЗаявкиНаСклад.Дата,

    ВТ_ЗаявкиНаСклад.Номер,

    ВТ_ЗаявкиНаСклад.Номенклатура,

    ВТ_ЗаявкиНаСклад.СерияНоменклатуры,

    ВТ_ЗаявкиНаСклад.ЕдиницаИзмерения,

    ВТ_ЗаявкиНаСклад.Количество,

    ВТ_ЗаявкиНаСклад.ДатаПлановая,

    ВТ_ЗаявкиНаСклад.Готовность,

    ВТ_ЗаявкиНаСклад.ФлагПриоритет,

    ВТ_ЗаявкиНаСклад.Организация,

    ВТ_ЗаявкиНаСклад.Контрагент,

    ВТ_ЗаявкиНаСклад.ДоговорКонтрагента,

    ВТ_ЗаявкиНаСклад.Склад,

    ВТ_ЗаявкиНаСклад.АвторЗаявки,

    ВТ_ЗаявкиНаСклад.Исполнитель,

    ВТ_ЗаявкиНаСклад.НомерСтроки,

    ВТ_Статусы.Статус

    ИЗ

    ВТ_ЗаявкиНаСклад КАК ВТ_ЗаявкиНаСклад

    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Статусы КАК ВТ_Статусы

    ПО ВТ_ЗаявкиНаСклад.Номенклатура = ВТ_Статусы.Номенклатура

    И ВТ_ЗаявкиНаСклад.СерияНоменклатуры = ВТ_Статусы.СерияНоменклатуры
```
---
Если я првильно понял что вам нужно, во втором пакете

```1c
    ИЗ

    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
    Внутреннее соединение
    (ВЫБРАТЬ
    МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксСПериод,
    СостояниеТоваровНаСкладахСВХ.Номенклатура,
    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
    ИЗ
    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
    ГДЕ
    СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    СГРУППИРОВАТЬ ПО
    СостояниеТоваровНаСкладахСВХ.Номенклатура,
    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
    ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
    И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
    И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
```

Вроде так должно работать, но производительность не очень, надо как-то на временные таблицы переделать и ограничить кол-во
---
То есть во втором пакете Вы добавил этот же регистр и связали с ним же ?
Не совсем умею ещё читать без конструктора )
---
Да, но туда вывел максимум периода по измерениям, по которым будете присоединяться.
---
А мой запрос не измененным остаётся ?
И если этот Ваше кусок во вложеный запрос поместить и связать ?
---
Ну да
---
Всё равно выводит несколько записей :(
И статусы по периоду вообще перемешались.
Максимум не отрабатывает почему то..
МОжет всё-таки с порядком играться и полем период ?
Не знаю как правильнее.
---
Может так заработает?

```1c
    ИЗ

    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
    Внутреннее соединение
    (ВЫБРАТЬ
    МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксПериод,
    СостояниеТоваровНаСкладахСВХ.Номенклатура,
    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
    ИЗ
    РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
    ГДЕ
    СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    И СостояниеТоваровНаСкладахСВХ.Период <&НаДату
    СГРУППИРОВАТЬ ПО
    СостояниеТоваровНаСкладахСВХ.Номенклатура,
    СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
    ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
    И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
    И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
```

И период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
---
Да, такое может быть. В пределах секунды думаю.
 < &НаДату не помогло.
Взял просто Ваш запрос и указал параметры номенклатуры и серии.
Выводит четыре строки как и в регистре, но порядка по дате нету.
---
Во временной таблице ВТ_Статусы уже задвоены или задваиваются в 3 пакете при присоединении?
---
Попробовал просто сделать максимум(период) без внутреннего соединения во втором пакете и вывести выборку.
Вывелось как надо от последней даты к начальной! ( 4 позиции на разые периоды и разные статусы)
Но при соединении в 3 запросе идут дубли. То есть берутся эти разные 4 статуса почему то.
---
Внутреннее соединение надо чтобы в ВТ_Статусы попали только последние записи, надо смотреть где двоит и почему, без консоли мне так тоже трудно определить. Может количество надо выбросить из 2 пакета, оно все равно не нужно. Если статусы по периоду повторяются, то с ними ХЗ что делать.
---
А если в вкладке дополнитено сделать выборка записей первые 1 ?
---
не, не то. Смотрите что во 2 пакете попадает в ВТ_Статусы
---
Используйте виртуальную таблицу "Обороты". Дата окончания - Ваш параметр НаДату. и числовой ресурс с постфиксом "Приход" или "Расход".
Если вид движения задается в параметрах отчета (скажем строкой), то можно ресурс вычислять так:

```1c
    ВЫБОР
    КОГДА &ВидДвижения = "Приход"
    ТОГДА Обороты.СуммаПриход
    КОГДА &ВидДвижения = "Расход"
    ТОГДА Обороты.СуммаРасход
    ИНАЧЕ 0
    КОНЕЦ
```
---
Ну мне необходим только приход. И необходимо на выходе получение не Суммы,а значения измерения.

Возможно достаточно вытащить СуммаПриход ?
И в дополнительно указать первые 1 ?