Запрос возвращает одни данные, СКД с этим запросом другие. Корень ошибки в этом запросе. Суть его - считаем среднее количество открытых и заполненных ставок штатного расписания за период, а также на первый и последний рабочий день периода. Далее все еще раз будет сгруппировано и просуммировано по позициям штатки.

```1c
    ВЫБРАТЬ
    ВТРабочиеДни.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
    СУММА(ВТРабочиеДни.СтавокОткрыто) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) КАК СтавокОткрыто,
    СУММА(ВТРабочиеДни.СтавокЗанято) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) КАК СтавокЗанято,
    СУММА(ВТРабочиеДни.СтавокИспытательныйСрок) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) КАК СтавокИспытательныйСрок,
    0 КАК СтавокОткрытоНачало,
    0 КАК СтавокЗанятоНачало,
    0 КАК СтавокОткрытоКонец,
    0 КАК СтавокЗанятоКонец
    ПОМЕСТИТЬ ВТВсеДанные
    ИЗ
    ВТРабочиеДни КАК ВТРабочиеДни

    СГРУППИРОВАТЬ ПО
    ВТРабочиеДни.ПозицияШтатногоРасписания

    ОБЪЕДИНИТЬ ВСЕ

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

    ОБЪЕДИНИТЬ ВСЕ

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

СКД добавляет в него условия ИМЕЮЩИЕ и ГДЕ.

```1c
    ВЫБРАТЬ
    ВТРабочиеДни.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
    СУММА(ВТРабочиеДни.СтавокОткрыто) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) КАК СтавокОткрыто,
    СУММА(ВТРабочиеДни.СтавокЗанято) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) КАК СтавокЗанято,
    СУММА(ВТРабочиеДни.СтавокИспытательныйСрок) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) КАК СтавокИспытательныйСрок,
    0 КАК СтавокОткрытоНачало,
    0 КАК СтавокЗанятоНачало,
    0 КАК СтавокОткрытоКонец,
    0 КАК СтавокЗанятоКонец
    ПОМЕСТИТЬ ВТВсеДанные
    ИЗ
    ВТРабочиеДни КАК ВТРабочиеДни

    СГРУППИРОВАТЬ ПО
    ВТРабочиеДни.ПозицияШтатногоРасписания

    ИМЕЮЩИЕ
    (СУММА(ВТРабочиеДни.СтавокОткрыто) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) <> &П3
    ИЛИ 0 <> &П3
    ИЛИ 0 <> &П3
    ИЛИ СУММА(ВТРабочиеДни.СтавокЗанято) / КОЛИЧЕСТВО(ВТРабочиеДни.Дата) <> &П3)

    ОБЪЕДИНИТЬ ВСЕ

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

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВТДетализация.ПозицияШтатногоРасписания,
    0,
    0,
    0,
    0,
    0,
    ВТДетализация.СтавокОткрыто,
    ВТДетализация.СтавокЗанято
    ИЗ
    ВТДетализация КАК ВТДетализация
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТГраницыПериода КАК ВТГраницыПериода
    ПО (ВТГраницыПериода.МаксимальнаяДата = ВТДетализация.Дата)
    ГДЕ
    (0 <> &П3
    ИЛИ 0 <> &П3
    ИЛИ ВТДетализация.СтавокОткрыто <> &П3
    ИЛИ 0 <> &П3)
```

Параметр П3 = 0.

Как отучить или хотя бы понять зачем СКД так себя ведет?
---
Отучить - убрать галку "автозаполнение" и на закладке "компоновка данных" - "условия" конструктора запросов указать явно поля на которые можно налагать условия в каждом запросе пакета.
---
Отучить - убрать галку "автозаполнение" и на закладке "компоновка данных" - "условия" конструктора запросов указать явно поля на которые можно налагать условия в каждом запросе пакета.
---
СКД при автозаполнении добавляет везде , куда может , отборы по полям из глобального отбора с таким же представлением. При этом отборы на уровне детальных записей в результирующий запрос не передаются(т.е уже после компоновки), но работают порой кривовато.
---
СКД пытается интеллектуально оптимизировать запрос исходя из настроек, сделанных пользователем. Вернее даже хуже - сначала пытается по запросу определить доступные пользователю настройки.
Как уже сказали, так СКД себя ведет в режиме автозаполнения настроек.
Есть возможность указывать ручные настройки в фигурных скобках (раздел справки "Расширение языка запросов для системы компоновки данных"). Есть параметрический помощник их указания в конструкторе запросов на специальной закладке.
Ручные настройки можно комбинировать с автоматическими. Желательно попробовать выкрутиться именно так, потому что при отключенном автозаполнении настроек вам придется описывать все доступные пользователю поля и отборы и как они будут применяться (хотя в особо заковыристых отчетах я именно так и делал). Чего не указано явно - того пользователь и не сможет сделать.
Немного о принципах автозаполнения настроек есть у Хрусталевой (ну или в соответствующей главе проф-разработки).
ЗЫ. Самый частый и неочевидный сбой работы автонастроек - это неявная подстановка параметров периода в виртуальные таблицы, перекрывающая параметры запроса.
---
Пока решил проблему переносом источника данных из запроса в объект. А за информацию спасибо, буду изучать.
---
В таких случаях я использую вложенные запросы вместо пакетов.
---
Вложенные запросы - не лучшая практика в контексте производительности, т.к. оптимизатор СУБД не сможет построить оптимальный план выполнения вложенного запроса. Тем более, если результат такого запроса нужно использовать неоднократно, например в параметрах виртуальных таблиц.
---
Да, но почему то в типовых конфигурациях их используют повсеместно) Наверняка потому что это самый простой способ.
---
Ещё СКД ставит условия в запросе исключительно на те поля, которые выводятся в отчете и на которые пользователь поставил отбор. Например, если во временную таблицу поместить данные с именем поля "Организация123", а в результирующем запросе переименовать это поле просто в "Организация", то когда пользователь в отчете установит отбор по полю "Организация", СКД добавит условие в результирующий запрос, а временную таблицу не тронет. Этим можно пользоваться чтобы запретить СКД устанавливать условия по определенным полям таблиц.