Доброго времени суток. Не могу разобраться с итогами по СКД. Делаю запрос по остаткам партий, но движения по некоторым регистраторам мне выводить не нужно, но остатки на начало и конец даты все равно нужно видеть.

Собственно, я создал вложенный запрос где выбрал только нужные мне движения. Дальше ПартииТоваровОстаткиИОбороты левым соединением с моим вложенным запросом. В ресурсы СКД вывел все суммами. Но итоги в СКД не показывают мне Остаток в разрезе партии правильно, вместо того что бы показать начальный остаток программа суммирует все остатки в разрезе регистратора.

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ПартииТоваровОстаткиИОбороты.Номенклатура,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 0
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ОЕ
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 2
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод1
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 3
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод2
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 5
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ОЕ + " / " + ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод1
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 6
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ОЕ + " / " + ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод2
    ИНАЧЕ ПартииТоваровОстаткиИОбороты.Номенклатура.Код
    КОНЕЦ КАК КодАртикул,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Склады)
    ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Ремзона)
    КОНЕЦ КАК СкладыРемзона,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ПартииТоваровОстаткиИОбороты.Склад
    ИНАЧЕ "Рем.зона"
    КОНЕЦ КАК СкладРемзона,
    ПартииТоваровОстаткиИОбороты.Склад КАК Склад,
    ПартииТоваровОстаткиИОбороты.Партия КАК Партия,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Регистратор.Организация = ПартииТоваровОстаткиИОбороты.Партия.Организация
    И ПартииТоваровОстаткиИОбороты.Регистратор.Управленческий = ЛОЖЬ
    ТОГДА Движение.КоличествоПриход
    ИНАЧЕ 0
    КОНЕЦ КАК КоличествоПриход,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Регистратор.Организация = ПартииТоваровОстаткиИОбороты.Партия.Организация
    И ПартииТоваровОстаткиИОбороты.Регистратор.Управленческий = ЛОЖЬ
    ТОГДА Движение.КоличествоРасход
    ИНАЧЕ 0
    КОНЕЦ КАК КоличествоРасход,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Регистратор.Организация = ПартииТоваровОстаткиИОбороты.Партия.Организация
    И ПартииТоваровОстаткиИОбороты.Регистратор.Управленческий = ЛОЖЬ
    ТОГДА Движение.СтоимостьУпрПриход
    ИНАЧЕ 0
    КОНЕЦ КАК СтоимостьУпрПриход,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Регистратор.Организация = ПартииТоваровОстаткиИОбороты.Партия.Организация
    И ПартииТоваровОстаткиИОбороты.Регистратор.Управленческий = ЛОЖЬ
    ТОГДА Движение.СтоимостьУпрРасход
    ИНАЧЕ 0
    КОНЕЦ КАК СтоимостьУпрРасход,
    Движение.СуммаНДСУпрНачальныйОстаток КАК СуммаНДСУпрНачальныйОстаток,
    Движение.СуммаНДСУпрКонечныйОстаток КАК СуммаНДСУпрКонечныйОстаток,
    Движение.СуммаНДСУпрПриход КАК СуммаНДСУпрПриход,
    Движение.СуммаНДСУпрРасход КАК СуммаНДСУпрРасход,
    ПартииТоваровОстаткиИОбороты.Партия.НомерГТД КАК НомерГТД,
    ПартииТоваровОстаткиИОбороты.Партия.Поставщик КАК Поставщик,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Регистратор.Организация = ПартииТоваровОстаткиИОбороты.Партия.Организация
    И ПартииТоваровОстаткиИОбороты.Регистратор.Управленческий = ЛОЖЬ
    ТОГДА ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
    ТОГДА NULL
    ИНАЧЕ ПартииТоваровОстаткиИОбороты.Регистратор
    КОНЕЦ
    ИНАЧЕ NULL
    КОНЕЦ КАК Регистратор,
    ПартииТоваровОстаткиИОбороты.ПериодСекунда,
    Движение.КоличествоОборот КАК КоличествоОборот,
    Движение.СтоимостьУпрОборот КАК СтоимостьУпрОборот,
    Движение.СуммаНДСУпрОборот КАК СуммаНДСУпрОборот,
    Движение.КомиссияУпрНачальныйОстаток,
    Движение.КомиссияУпрПриход,
    Движение.КомиссияУпрРасход,
    Движение.КомиссияУпрКонечныйОстаток,
    Движение.КомиссияУпрОборот,
    ПартииТоваровОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрКонечныйОстаток,
    ПартииТоваровОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрНачальныйОстаток
    {ВЫБРАТЬ
    КоличествоПриход,
    КоличествоРасход,
    СтоимостьУпрПриход,
    СтоимостьУпрРасход,
    СуммаНДСУпрНачальныйОстаток,
    СуммаНДСУпрКонечныйОстаток,
    СуммаНДСУпрПриход,
    СуммаНДСУпрРасход,
    КоличествоОборот,
    СтоимостьУпрОборот,
    СуммаНДСУпрОборот,
    СкладРемзона.*,
    Регистратор.*,
    Склад.*,
    Партия.*}
    ИЗ
    РегистрНакопления.ПартииТоваров.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ДвиженияИГраницыПериода, ) КАК ПартииТоваровОстаткиИОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ПартииТоваровОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 0
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ОЕ
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 2
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод1
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 3
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод2
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 5
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ОЕ + " / " + ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод1
    КОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ВидНоменклатуры.ВыводитьВКод = 6
    ТОГДА ПартииТоваровОстаткиИОбороты.Номенклатура.ОЕ + " / " + ПартииТоваровОстаткиИОбороты.Номенклатура.ДопКод2
    ИНАЧЕ ПартииТоваровОстаткиИОбороты.Номенклатура.Код
    КОНЕЦ КАК КодАртикул,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Склады)
    ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Ремзона)
    КОНЕЦ КАК СкладыРемзона,
    ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ПартииТоваровОстаткиИОбороты.Склад
    ИНАЧЕ "Рем.зона"
    КОНЕЦ КАК СкладРемзона,
    ПартииТоваровОстаткиИОбороты.Склад КАК Склад,
    ПартииТоваровОстаткиИОбороты.Партия КАК Партия,
    ПартииТоваровОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    ПартииТоваровОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрПриход КАК СтоимостьУпрПриход,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрРасход КАК СтоимостьУпрРасход,
    ПартииТоваровОстаткиИОбороты.СуммаНДСУпрНачальныйОстаток КАК СуммаНДСУпрНачальныйОстаток,
    ПартииТоваровОстаткиИОбороты.СуммаНДСУпрКонечныйОстаток КАК СуммаНДСУпрКонечныйОстаток,
    ПартииТоваровОстаткиИОбороты.СуммаНДСУпрПриход КАК СуммаНДСУпрПриход,
    ПартииТоваровОстаткиИОбороты.СуммаНДСУпрРасход КАК СуммаНДСУпрРасход,
    ПартииТоваровОстаткиИОбороты.Партия.НомерГТД КАК НомерГТД,
    ПартииТоваровОстаткиИОбороты.Партия.Поставщик КАК Поставщик,
    ПартииТоваровОстаткиИОбороты.Регистратор КАК Регистратор,
    ПартииТоваровОстаткиИОбороты.КоличествоОборот КАК КоличествоОборот,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрОборот КАК СтоимостьУпрОборот,
    ПартииТоваровОстаткиИОбороты.СуммаНДСУпрОборот КАК СуммаНДСУпрОборот,
    ПартииТоваровОстаткиИОбороты.КомиссияУпрНачальныйОстаток КАК КомиссияУпрНачальныйОстаток,
    ПартииТоваровОстаткиИОбороты.КомиссияУпрПриход КАК КомиссияУпрПриход,
    ПартииТоваровОстаткиИОбороты.КомиссияУпрРасход КАК КомиссияУпрРасход,
    ПартииТоваровОстаткиИОбороты.КомиссияУпрКонечныйОстаток КАК КомиссияУпрКонечныйОстаток,
    ПартииТоваровОстаткиИОбороты.КомиссияУпрОборот КАК КомиссияУпрОборот,
    ПартииТоваровОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ПартииТоваровОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрНачальныйОстаток КАК СтоимостьУпрНачальныйОстаток,
    ПартииТоваровОстаткиИОбороты.СтоимостьУпрКонечныйОстаток КАК СтоимостьУпрКонечныйОстаток
    {ВЫБРАТЬ
    КоличествоПриход,
    КоличествоРасход,
    СтоимостьУпрПриход,
    СтоимостьУпрРасход,
    СуммаНДСУпрНачальныйОстаток,
    СуммаНДСУпрКонечныйОстаток,
    СуммаНДСУпрПриход,
    СуммаНДСУпрРасход,
    КоличествоОборот,
    СтоимостьУпрОборот,
    СуммаНДСУпрОборот,
    СкладРемзона.*,
    Регистратор.*,
    Склад.*,
    Партия.*}
    ИЗ
    РегистрНакопления.ПартииТоваров.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, Движения, ) КАК ПартииТоваровОстаткиИОбороты
    ГДЕ
    ПартииТоваровОстаткиИОбороты.Регистратор.ВидОперации <> &ВидОперации
    И ПартииТоваровОстаткиИОбороты.Регистратор.Управленческий = ЛОЖЬ
    И ПартииТоваровОстаткиИОбороты.Партия.ДокПоставка.Управленческий = ЛОЖЬ
    {ГДЕ
    ПартииТоваровОстаткиИОбороты.Номенклатура.*,
    ПартииТоваровОстаткиИОбороты.Склад.*,
    ПартииТоваровОстаткиИОбороты.Партия.*,
    ПартииТоваровОстаткиИОбороты.Партия.НомерГТД.* КАК НомерГТД,
    ПартииТоваровОстаткиИОбороты.Партия.Поставщик.* КАК Поставщик,
    ПартииТоваровОстаткиИОбороты.Партия.ДокПоставка.* КАК ДокументПоставка,
    (ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Склады)
    ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Ремзона)
    КОНЕЦ).* КАК СкладыРемзона,
    (ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ПартииТоваровОстаткиИОбороты.Склад
    ИНАЧЕ "Рем.зона"
    КОНЕЦ).* КАК СкладРемзона,
    ПартииТоваровОстаткиИОбороты.Регистратор.*}) КАК Движение
    ПО ПартииТоваровОстаткиИОбороты.Номенклатура = Движение.Номенклатура
    И ПартииТоваровОстаткиИОбороты.Склад = Движение.Склад
    И ПартииТоваровОстаткиИОбороты.Партия = Движение.Партия
    И ПартииТоваровОстаткиИОбороты.Регистратор = Движение.Регистратор
    {ГДЕ
    ПартииТоваровОстаткиИОбороты.Номенклатура.*,
    ПартииТоваровОстаткиИОбороты.Склад.*,
    ПартииТоваровОстаткиИОбороты.Партия.*,
    ПартииТоваровОстаткиИОбороты.Партия.НомерГТД.* КАК НомерГТД,
    ПартииТоваровОстаткиИОбороты.Партия.Поставщик.* КАК Поставщик,
    ПартииТоваровОстаткиИОбороты.Партия.ДокПоставка.* КАК ДокументПоставка,
    (ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Склады)
    ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СкладыРемзона.Ремзона)
    КОНЕЦ).* КАК СкладыРемзона,
    (ВЫБОР
    КОГДА ПартииТоваровОстаткиИОбороты.Склад ССЫЛКА Справочник.Склады
    ТОГДА ПартииТоваровОстаткиИОбороты.Склад
    ИНАЧЕ "Рем.зона"
    КОНЕЦ).* КАК СкладРемзона,
    ПартииТоваровОстаткиИОбороты.Регистратор.*}
```
---
Проверьте роли полей остатков на закладке "Наборы данных". У нужных полей должны быть установлены роли начального и конечного остатка. При этом они всегда должны быть парой (судя по запросу таких проблем нет).

Также убедитесь, что настроены роли измерений у полей на той же закладке. Это те поля, в разрезе которых и рассчитываются остатки. Обычно платформа сама правильно расставляет роли, но бывают ситуации, когда ей необходимо помочь. Например, указать, что "КодАртикул" также является измерением, но при этом у него есть родитель - измерение "Номенклатура".

Еще я вижу, что Вы используете группировку по регистратору. В данном случае поле регистратора является не измерением, а полем периода. Этот факт также должен быть отражен в ролях на закладке "Наборы данных". Более того. Регистратор - это ссылка, а значит самостоятельно быть периодом быть не может, поэтому в запросе дополнительно должно быть выбрано поле типа дата. Зачастую при указанной периодичности "Авто" таким полем выступает "ПериодСекунда". У обоих полей - регистратор и период - в ролях необходимо отразить, что это поля периода, оба не являются дополнительными, порядок у регистратора - 1, у поля секунды - 2.
---
Проверьте роли полей остатков на закладке "Наборы данных". У нужных полей должны быть установлены роли начального и конечного остатка. При этом они всегда должны быть парой (судя по запросу таких проблем нет).

Также убедитесь, что настроены роли измерений у полей на той же закладке. Это те поля, в разрезе которых и рассчитываются остатки. Обычно платформа сама правильно расставляет роли, но бывают ситуации, когда ей необходимо помочь. Например, указать, что "КодАртикул" также является измерением, но при этом у него есть родитель - измерение "Номенклатура".

Еще я вижу, что Вы используете группировку по регистратору. В данном случае поле регистратора является не измерением, а полем периода. Этот факт также должен быть отражен в ролях на закладке "Наборы данных". Более того. Регистратор - это ссылка, а значит самостоятельно быть периодом быть не может, поэтому в запросе дополнительно должно быть выбрано поле типа дата. Зачастую при указанной периодичности "Авто" таким полем выступает "ПериодСекунда". У обоих полей - регистратор и период - в ролях необходимо отразить, что это поля периода, оба не являются дополнительными, порядок у регистратора - 1, у поля секунды - 2.
---
Спасибо большое, помогло с итогами. Регистратор поставил как период и заработало.
Но теперь немного странно остатки считает по некоторым позициям.
Вот первый вариант который не правильный, там начальный остаток показывает минусовый. Хотя при разбивке по регистраторам начальный остаток должен быть нулевым. На втором скриншоте все нормально работает.
---
Не могу пока сказать точно. На всякий случай переспрошу, Вы выполнили мою рекомендацию из последнего абзаца? Она очень важна.
---
Да, я проверил все поля на вкладке "Наборы данных" и проставил где необходимо роль измерения. Так же у Регистратора указал роль Период секунда.
---
Так же у Регистратора указал роль Период секундаИзвините, не понял, что именно Вы сделали. Необходимо было помимо регистратора добавить еще одно поле в запрос типа "Дата".
---
Оформил следующем образом.
Поле с периодам у меня уже было, добавил поле с регистратором как период.
---
Дайте им разные номера: регистратору - 1, периоду - 2.
---
Правильный подход в такой "непростой" ситуации - сделать отдельно запрос по остаткам и отдельно по движениям.

Вот есть такой курс http://learn.programstore.ru/video_kurs_skd

там в одном из дней есть отчеты - ОСВ и карточка счета. Вот как раз в карточке счета рассматривается такой вариант