Есть запрос на скд:

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВЗаказ.Клиент,
    ВЗаказ.Канал,
    ВЗаказ.Номенклатура,
    ВЗаказ.ДатаНачалаСрочногоРезерва КАК ДатаНачалаСрочногоРезерва,
    ВЗаказ.ДатаКонцаСрочногоРезерва КАК ДатаКонцаСрочногоРезерва,
    ВЫРАЗИТЬ(ВЗаказ.ПервоначальноеЗначениеРезерва КАК ЧИСЛО(15, 2)) КАК ПервоначальноеЗнач,
    ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК ТекЗначение,
    ВЫРАЗИТЬ(ПродажиОбороты.КоличествоОборот / 3 КАК ЧИСЛО(15, 2)) КАК Среднее
    ИЗ
    ВЗаказ КАК ВЗаказ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&НаДату, ) КАК ТоварыВРезервеНаСкладахОстатки
    ПО ВЗаказ.Ссылка = ТоварыВРезервеНаСкладахОстатки.ДокументРезерва
    И ВЗаказ.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
    И ВЗаказ.СерияНоменклатуры = ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры
    И ВЗаказ.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&ДатаДока, МЕСЯЦ, -3), &ДатаДока, , ) КАК ПродажиОбороты
    ПО ВЗаказ.Номенклатура = ПродажиОбороты.Номенклатура
    ГДЕ
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0

    УПОРЯДОЧИТЬ ПО
    ДатаНачалаСрочногоРезерва,
    ДатаКонцаСрочногоРезерва
```

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

    ИНДЕКСИРОВАТЬ ПО
    Номенклатура
    ;

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    втЗаказ.Клиент,
    втЗаказ.Канал,
    втЗаказ.Ссылка,
    втЗаказ.Номенклатура,
    втЗаказ.ДатаКонцаСрочногоРезерва,
    втЗаказ.ДатаНачалаСрочногоРезерва,
    втЗаказ.ПервоначальноеЗначениеРезерва,
    втЗаказ.СерияНоменклатуры,
    втЗаказ.ХарактеристикаНоменклатуры
    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
    ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
    ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры,
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ТекЗначение,
    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
    ПОМЕСТИТЬ втЗаказыРезервы
    ИЗ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&НаДату, ) КАК ТоварыВРезервеНаСкладахОстатки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗаказ КАК втЗаказ
    ПО втЗаказ.Ссылка = Резервы.ДокументРезерва
    И втЗаказ.Номенклатура = Резервы.Номенклатура
    И втЗаказ.СерияНоменклатуры = Резервы.СерияНоменклатуры
    И втЗаказ.ХарактеристикаНоменклатуры = Резервы.ХарактеристикаНоменклатуры
    ГДЕ
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0
    ;

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    втЗаказыРезервы.Клиент,
    втЗаказыРезервы.Канал,
    втЗаказыРезервы.Ссылка,
    втЗаказыРезервы.Номенклатура,
    втЗаказыРезервы.ДатаНачалаСрочногоРезерва КАК ДатаНачалаСрочногоРезерва,
    втЗаказыРезервы.ДатаКонцаСрочногоРезерва КАК ДатаКонцаСрочногоРезерва,
    втЗаказыРезервы.ПервоначальноеЗначениеРезерва,
    ЕСТЬNULL(Резервы.ТекЗначение, 0) КАК ТекЗначение,
    ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК Среднее
    ИЗ
    втЗаказыРезервы КАК втЗаказыРезервы
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&ДатаДока, МЕСЯЦ, -3), &ДатаДока, , ) КАК ПродажиОбороты
    ПО втЗаказыРезервы.Номенклатура = ПродажиОбороты.Номенклатура
    И втЗаказыРезервы.СерияНоменклатуры = ПродажиОбороты.СерияНоменклатуры
    И втЗаказыРезервы.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
    ГДЕ
    ПродажиОбороты.КоличествоОборот > 0

    УПОРЯДОЧИТЬ ПО
    ДатаНачалаСрочногоРезерва,
    ДатаКонцаСрочногоРезерва
```
 Базы с Вашими метаданными у меня нет, поэтому проверить корректность запроса не могу.
---
РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&ДатаДока, МЕСЯЦ, -3) вот это не сработает в СКД. Используй фигурные скобки т.е. РегистрНакопления.Продажи.Обороты({(ДОБАВИТЬКДАТЕ(&ДатаДока, МЕСЯЦ, -3)},
---
добавил фигурные, вообще НачалоПериода сбрасывает
---
Сомневаюсь, что в этом вообще дело. Убрал в принципе добавитькдате. Всё равно ничего не выводит в поле "Среднее"
---
пробуй "есть по частям", для начала просто
```1c
    ПродажиОбороты.КоличествоОборот
```
, потом подели на 3, может там нулл прилетает или еще какой то "прикол"
---
null есть да. Но его не должно быть по идее.
---
я бы сделал еще одну таблицу (после ВЗаказ) в которую вычислил среднее по номенклатуре из ВЗаказ, в виртуальной таблице сразу условие Номенклатура В ( Выбрать Номенклатура ИЗ ВЗаказ)
---
имеете ввиду после взаказ взять регистр Продажи, оттуда количество и условие на виртуальную табл. Потом снова во временную и уже с остатками товары на складах выводить все ?
---
Нужно бить на части и смотреть в консоли что в вирт.таблицах содержится, так проще найти ошибку
---
Вы устанавливаете условие "ГДЕ ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0" на результирующую таблицу с двумя левыми соединениями. Теоретически, это может внести сумятицу. Если нужно отбирать положительные остатки именно в результирующей таблице, лучше сформируйте еще одну вирт. таб. как во втором запросе, только без условия, а потом уже выберите из нее положительные остатки. Если нужно отобрать положительные остатки из резерва на складах, а уже потом добавить эти записи в результирующую таблицу, то лучше выборку из регистра резерва с условием утащить во вложенный запрос.
---
Имеете ввиду где я связываю документ с регистром "ТоварыВРезервеНаСкладахОстатки" поместить во временную таблицу "Резервы" допустим. После создать запрос 3 и уже с регистром Продажи соединять вновь с временной таблицой "Резервы"?
---
Предлагаемые запросы:
1) Товары из внутренних заказов с отбором
2) Товары в резерве на складах с отбором
3) Соединение результата запроса 2 и оборотов "Продажи" с результатом запроса 1 левым способом, уже без отборов.
---
Что подразумевается под отборами?
---
Это просто привычка )) Имеются в виду условия, в первом запросе "ВЗ.Дата МЕЖДУ &ДатаНач И &ДатаКон И ВЗ.Проведен = ИСТИНА И ВЗ.ПометкаУдаления = ЛОЖЬ", во втором - "ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0"
---
Тогда правильно ли я понял?

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

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

    ИНДЕКСИРОВАТЬ ПО
    Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК ТекЗначение,
    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
    ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры,
    ТоварыВРезервеНаСкладахОстатки.ДокументРезерва
    ПОМЕСТИТЬ Резервы
    ИЗ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&НаДату, ) КАК ТоварыВРезервеНаСкладахОстатки
    ГДЕ
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВЗаказ.Клиент,
    ВЗаказ.Канал,
    ВЗаказ.Номенклатура,
    ВЗаказ.ДатаНачалаСрочногоРезерва КАК ДатаНачалаСрочногоРезерва,
    ВЗаказ.ДатаКонцаСрочногоРезерва КАК ДатаКонцаСрочногоРезерва,
    ВЗаказ.ПервоначальноеЗначениеРезерва КАК ПервоначальноеЗнач,
    Резервы.ТекЗначение
    ИЗ
    ВЗаказ КАК ВЗаказ
    ЛЕВОЕ СОЕДИНЕНИЕ Резервы КАК Резервы
    ПО ВЗаказ.Номенклатура = Резервы.Номенклатура
    И ВЗаказ.СерияНоменклатуры = Резервы.СерияНоменклатуры
    И ВЗаказ.Ссылка = Резервы.ДокументРезерва

    УПОРЯДОЧИТЬ ПО
    ДатаНачалаСрочногоРезерва,
    ДатаКонцаСрочногоРезерва
```
---
Вполне возможно, что по условиям соединения остатков нет. А проверку на ЕСТЬNULL нужно ставить в третьем запросе, а не во втором, поскольку при отсутствии строк в вирт. таб. Резервы даст именно NULL в третьем запросе.
---
Но мне не нужны нулевые позиции. То есть условие количествоостаток > 0 должно в третьем запросе тоже быть ? Смысл второй временной таблицы тогда..
---
Тогда соединяйте вторую таблицу с первой опять же внутренним способом
---
В общем вот итог :

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

    ИНДЕКСИРОВАТЬ ПО
    Номенклатура
    ;

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВЗаказ.Клиент,
    ВЗаказ.Канал,
    ВЗаказ.Ссылка,
    ВЗаказ.Номенклатура,
    ВЗаказ.ДатаНачалаСрочногоРезерва КАК ДатаНачалаСрочногоРезерва,
    ВЗаказ.ДатаКонцаСрочногоРезерва КАК ДатаКонцаСрочногоРезерва,
    ВЗаказ.ПервоначальноеЗначениеРезерва,
    ЕСТЬNULL(Резервы.ТекЗначение, 0) КАК ТекЗначение,
    ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК Среднее
    ИЗ
    ВЗаказ КАК ВЗаказ
    ЛЕВОЕ СОЕДИНЕНИЕ Резервы КАК Резервы
    ПО ВЗаказ.Ссылка = Резервы.ДокументРезерва
    И ВЗаказ.Номенклатура = Резервы.Номенклатура
    И ВЗаказ.СерияНоменклатуры = Резервы.СерияНоменклатуры
    И ВЗаказ.ХарактеристикаНоменклатуры = Резервы.ХарактеристикаНоменклатуры
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&ДатаДока, МЕСЯЦ, -3), &ДатаДока, , ) КАК ПродажиОбороты
    ПО ВЗаказ.Номенклатура = ПродажиОбороты.Номенклатура
    И ВЗаказ.СерияНоменклатуры = ПродажиОбороты.СерияНоменклатуры
    И ВЗаказ.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
    ГДЕ
    Резервы.ТекЗначение > 0
    И ПродажиОбороты.КоличествоОборот > 0

    УПОРЯДОЧИТЬ ПО
    ДатаНачалаСрочногоРезерва,
    ДатаКонцаСрочногоРезерва
```

Вроде всё выводит корректно. Одно смущает, что заказов мало выводит. Тобишь из-за ПродажиОбороты.КоличествоОборот > 0. Это корректно вообще ?
---
Одно смущает, что заказов мало выводит. Ну так никто не мешает Вам пройтись в консоли запросов по виртуальным таблицам и сравнить их "глазами". Вполне возможно, что всё корректно.
---
Сверил с типовым отчётом продажи. Там почему то количество больше у некоторых позиции..
---
Периоды для оборотов задаете корректно (начало дня - конец дня)?
---
Да. Вы посмотрели мой запрос из (28) ?может Вам что то там бросится в глаза,я не вижу ошибку.

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

    ИНДЕКСИРОВАТЬ ПО
    Номенклатура
    ;

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    втЗаказ.Клиент,
    втЗаказ.Канал,
    втЗаказ.Ссылка,
    втЗаказ.Номенклатура,
    втЗаказ.ДатаКонцаСрочногоРезерва,
    втЗаказ.ДатаНачалаСрочногоРезерва,
    втЗаказ.ПервоначальноеЗначениеРезерва,
    втЗаказ.СерияНоменклатуры,
    втЗаказ.ХарактеристикаНоменклатуры
    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
    ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
    ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры,
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ТекЗначение,
    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
    ПОМЕСТИТЬ втЗаказыРезервы
    ИЗ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&НаДату, ) КАК ТоварыВРезервеНаСкладахОстатки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗаказ КАК втЗаказ
    ПО втЗаказ.Ссылка = Резервы.ДокументРезерва
    И втЗаказ.Номенклатура = Резервы.Номенклатура
    И втЗаказ.СерияНоменклатуры = Резервы.СерияНоменклатуры
    И втЗаказ.ХарактеристикаНоменклатуры = Резервы.ХарактеристикаНоменклатуры
    ГДЕ
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0
    ;

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    втЗаказыРезервы.Клиент,
    втЗаказыРезервы.Канал,
    втЗаказыРезервы.Ссылка,
    втЗаказыРезервы.Номенклатура,
    втЗаказыРезервы.ДатаНачалаСрочногоРезерва КАК ДатаНачалаСрочногоРезерва,
    втЗаказыРезервы.ДатаКонцаСрочногоРезерва КАК ДатаКонцаСрочногоРезерва,
    втЗаказыРезервы.ПервоначальноеЗначениеРезерва,
    ЕСТЬNULL(Резервы.ТекЗначение, 0) КАК ТекЗначение,
    ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК Среднее
    ИЗ
    втЗаказыРезервы КАК втЗаказыРезервы
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&ДатаДока, МЕСЯЦ, -3), &ДатаДока, , ) КАК ПродажиОбороты
    ПО втЗаказыРезервы.Номенклатура = ПродажиОбороты.Номенклатура
    И втЗаказыРезервы.СерияНоменклатуры = ПродажиОбороты.СерияНоменклатуры
    И втЗаказыРезервы.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
    ГДЕ
    ПродажиОбороты.КоличествоОборот > 0

    УПОРЯДОЧИТЬ ПО
    ДатаНачалаСрочногоРезерва,
    ДатаКонцаСрочногоРезерва
```
 Базы с Вашими метаданными у меня нет, поэтому проверить корректность запроса не могу.
---
А по поводу округления в большую сторону,вы не знаете как ?

Допустим у меня ЕСТЬNULL(ПродажиОбороты.КоличествоОборот / 3, 0) КАК Среднее

КоличествоОборот = 11/3 = 3.6666666
Как округлить в запросе чтобы было 4 ?

Этот способ верен ? : Выразить(моеЧисло+0.4999999999 КАК ЧИСЛО(10,0))
---
Как округлить в запросе чтобы было 4 ? А не проще задать целый формат в полях через форматную строку?
---
а как там организовать округление вверх. Насколько помню там только 1,5 > 2 ; 1,4 > 1
---
Тоже не смог через форматную строку, оставил свой вариант.
---
верен
---
Появился вопрос. Почему во втором запросе мы делаем полное соединение? Сейчас понадобилось убрать оба условия Количество > 0 из двух последних запросов. Но данные не корректно отображаются,если убрать условие на количество. Если сделать во втором запросе левое соединение документа с регистром, то в графе кол-во из продаж странные числа появляются...
---
Почему во втором запросе мы делаем полное соединение? Пересмотрел запрос, полного соединения не нашел. Используется внутреннее соединение, чтобы в результат попали только те заказы, которые мы отобрали в первом запросе. А странности лучше всего изучить консолью запросов с просмотром временных таблиц.
---
Ошибся, полное да. Просто если я убираю в двух последних запросах условие Количество > 0. То происходит вакханалия какая то )
---
по запросу:
1. зачем в "ВЗаказ"
```1c
    Документ.ВнутреннийЗаказ.Товары КАК ВнутреннийЗаказТовары
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВнутреннийЗаказ КАК ВЗ
    ПО ВнутреннийЗаказТовары.Ссылка = ВЗ.Ссылка
```

это лишнее, в ВнутреннийЗаказТовары.Ссылка есть всё то же
---
Это достоверная информация?
---
это лишнее, в ВнутреннийЗаказТовары.Ссылка есть всё то же Разрешено и возможно обратиться в запросе к реквизиту как "ВнутреннийЗаказТовары.Ссылка.Заказчик", но при этом система при выполнения запроса все равно соединит таблицу документов с табличной частью, и это действие будет повторено многократно. Поэтому при явном связывании табличной части с документом экономятся ресурсы. При тяжелых запросах это очень ощутимо.
---
Напишите ваше сообщение
(37) не знал, т.е. если я делаю "ВнутреннийЗаказТовары.Ссылка.Дата" и "ВнутреннийЗаказТовары.Ссылка.Номер", то получается основной запрос к таблице и нему лепятся 2 запроса к документу по каждому полю? o.O
---
похоже что это неверно, будет только один join таблицы и документа https://forum.infostart.ru/forum9/topic69827/#message749789 зато код запроса в 1С короче и легче к восприятию.
---
В методических рекомендациях 1С указывается, что обращение к любому полю через ссылку приводит к полному считыванию объекта (включая все поля и все табличные части), что может существенно увеличить время считывания. При указании конкретных полей в запросе такой проблемы не наблюдается.