Добрый день! Столкнулась с такой проблемой -
необходимо выводить информацию по остаткам и оборотам в разрезе регистратора, причём учитывать нулевые поля (учитывая отсутствие оборотов, отсутствие остатка на начало или на конце периода)
чисто схематически идея выглядит как на скрине

сам код:

```1c
    ВЫБРАТЬ
    ОстатокНачало.ТоварТоварЭталонРаруса.Наименование КАК НаименованиеПрепарата,
    СУММА(ЕСТЬNULL(ОстатокНачало.КоличествоОстаток, 0)) КАК КоличествоНачальныйОстаток,
    СУММА(ЕСТЬNULL(ОстатокКонец.КоличествоОстаток, 0)) КАК КоличествоКонечныйОстаток,
    СУММА(ЕСТЬNULL(Обороты.КоличествоОборот, 0)) КАК КоличествоОборот,
    СУММА(ЕСТЬNULL(Обороты.КоличествоПриход, 0)) КАК КоличествоПриход,
    СУММА(ЕСТЬNULL(Обороты.КоличествоРасход, 0)) КАК КоличествоРасход
    ИЗ
    (ВЫБРАТЬ
    ПрепаратыНаСкладахОбороты.Товар.Товар.ЭталонРаруса КАК ТоварТоварЭталонРаруса,
    СУММА(ПрепаратыНаСкладахОбороты.КоличествоОборот) КАК КоличествоОборот,
    СУММА(ПрепаратыНаСкладахОбороты.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ПрепаратыНаСкладахОбороты.КоличествоРасход) КАК КоличествоРасход
    ИЗ
    РегистрНакопления.ПрепаратыНаСкладах.Обороты(&НачПериода, &КонПериода, Авто, ) КАК ПрепаратыНаСкладахОбороты
    ГДЕ
    ПрепаратыНаСкладахОбороты.МХ В(&МХ)
    И (ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПриемныйАкт
    ИЛИ ВЫБОР
    КОГДА ПрепаратыНаСкладахОбороты.Регистратор.ОтражатьВЖурнале = ИСТИНА
    ТОГДА ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.НакладнаяНаПеремещение
    КОНЕЦ
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходнаяНакладная
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.АктУничтоженияТоваров
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ВозвратнаяНакладнаяПоставщику
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.АктСписанияТоваров)

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

    СГРУППИРОВАТЬ ПО
    ПрепаратыНаСкладахОстатки.Товар.Товар.ЭталонРаруса) КАК ОстатокНачало
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ПрепаратыНаСкладахОстатки.Товар.Товар.ЭталонРаруса КАК ТоварТоварЭталонРаруса,
    СУММА(ПрепаратыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток
    ИЗ
    РегистрНакопления.ПрепаратыНаСкладах.Остатки(&КонПериода, ) КАК ПрепаратыНаСкладахОстатки
    ГДЕ
    ПрепаратыНаСкладахОстатки.МХ В(&МХ)

    СГРУППИРОВАТЬ ПО
    ПрепаратыНаСкладахОстатки.Товар.Товар.ЭталонРаруса) КАК ОстатокКонец
    ПО ОстатокНачало.ТоварТоварЭталонРаруса = ОстатокКонец.ТоварТоварЭталонРаруса
    ПО Обороты.ТоварТоварЭталонРаруса = ОстатокНачало.ТоварТоварЭталонРаруса

    СГРУППИРОВАТЬ ПО
    ОстатокНачало.ТоварТоварЭталонРаруса,
    ОстатокНачало.ТоварТоварЭталонРаруса.Наименование
```

всё выводится идеально, кроме одного момента: если на начало периода товара не было на остатке, но где-нибудь в середине вобранного периода было поступление, то в результате запроса данный товар не выводится

Подозреваю что проблема кроется в соединении этих трёх таблиц (неправильно построены связи)
но как правильно построить - увы не получается додумать
можете помочь?
---
Гораздо проще было использовать Временные таблицы...

Как раз в соответствии с вашими Таб1 ,2 и 3

А потом из них уже выбрать все нужное в результирующую Таб 4
Так и отлаживать запрос проще и он понятнее становится в разы всем, даже создателю... ;-)
---
Ключевое слово безошибочного многопараметрического подбора - ОБЪЕДИНИТЬ. Каждый кусок собираем отдельно и объединяем.
В данном случае не очень понятно чем виртуалка ОстаткиИОбороты не угодила.
---
Автор скорее всего не понял ваше высказывание....
И то что вы имели ввиду, что гораздо быстрее будет работать ОБЪЕДИНИТЬ ВСЕ , чем отбор с параметрами ИЛИ

Вот это нужно разбить на отдельный запросик и все их ОБЪЕДИНИТЬ

```1c
    ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПриемныйАкт
    ИЛИ ВЫБОР
    КОГДА ПрепаратыНаСкладахОбороты.Регистратор.ОтражатьВЖурнале = ИСТИНА
    ТОГДА ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.НакладнаяНаПеремещение
    КОНЕЦ
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.РасходнаяНакладная
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.АктУничтоженияТоваров
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ВозвратнаяНакладнаяПоставщику
    ИЛИ ПрепаратыНаСкладахОбороты.Регистратор ССЫЛКА Документ.АктСписанияТоваров)
```
---
Изначально всё было именно через ОстаткиИОбороты - но тут возникла заковырка в том, что если добавить условие в разрезе регистратор - остатки считаются неверно, поэтому разделила остатки и обороты
---
Ну так и используйте раздельно для 3 временных таблиц 2 по остаткам , одну по оборотам.
И потом выбирайте уже из этих таблиц - все у вас будет красиво , как на ваших картинках
---
Да, тоже с таким сталкивался. У вас фактически три запроса - два по остаткам, один по движениям. Разделите их, а потом объединением слейте.
---
Гораздо проще было использовать Временные таблицы...

Как раз в соответствии с вашими Таб1 ,2 и 3

А потом из них уже выбрать все нужное в результирующую Таб 4
Так и отлаживать запрос проще и он понятнее становится в разы всем, даже создателю... ;-)
---
Так и сделала в итоге, наконец-то всё получилось. Спасибо!
---
сначала думаю нужно будет выбрать все товары Товар.ЭталонРаруса из справочника Товары и соединять с РегистрНакопления.ПрепаратыНаСкладах