Столкнулся тут с такой бедой:

Есть такой запрос

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

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

423,06 191,95 578,19 0 0,69 1,26 2,3 0
423,06 191,95 424,56 190,45 0,69 0,84 1,53 0
153,63 0 153,63 0 0,35 0,42 0,77 0

Убираем период и цифры становяться верными

576,69 191,95 578,19 190,45 1,04 1,26 2,3 0
423,06 191,95 424,56 190,45 0,69 0,84 1,53 0
153,63 0 153,63 0 0,35 0,42 0,77 0
---
А если в СКД во вкладке наборы данных в колонке Роль установить "Без роли"?
---
Можно было бы так сделать если бы это было СКД. Это текст обычного запроса. Который выполняется как обычный запрос в коде.
---
А почему вы не используете виртуальную таблицу ВзаиморасчетыПоУслугам .Обороты ?
---
Я немного слукавил. Там есть еще условие по реквизиту данного регистра. Установить это условие для таблицы обротов нельзя.
---
Мало того работать ваша схема будет в разы медленнее!
Ибо отбор по вашему механизму сначала выберет абсолютно все записи из регистра , а потом начнет проверять ваше условие.
С виртуальной таблицей сразу вы получаете нужные данные.

И потому для применения вашего механизма нужны какие-то очень серьезные причины, которых тут совершенно не видно
---
Необходимо найти период когда была произведена последняя оплата. Причина только в этом. Для меня она серьезная. Этих данных в виртуальной таблице оборотов нет. Абсолютно все записи регистра выбираются в том случае если мне вздумается в условие ГДЕ засунуть слово ИЛИ. А так там достаточная индексация чтобы пробежаться только по записям лицевого счета. Тут я снова вас ввел в заблуждение. Есть еще условие

И ВзаиморасчетыПоЛицевымСчетамОбороты.Строение В(&Строения)
И ВзаиморасчетыПоЛицевымСчетамОбороты.Квартира В(&Квартиры)
И ВзаиморасчетыПоЛицевымСчетамОбороты.ЛицевойСчет В(&Лицевыесчета)
---
Извините - нахрена сплошные заблуждения???
Вы либо напишите все , либо ничего не спрашивайте а ваяйте сами

 Посмотрите (10)
---
Проверил. (12).
---
Так вы пытаетесь зачем то пытаетесь оптимизировать мой запрос. Я спрашивал про роль "Период" у периода в конструкции ИТОГИ ПО. Насколько это быстро или медленно совершенно не важно. Да и запрос этот не на одну страницу. Поэтому смысла выкладывать его со всеми условиями не вижу. Суть не поменяется. Вопрос в том почему наличие либо отсутвие поля Период из данной временной таблицы приводит к разному расчету ИТОГОВ. Только в этом.
---
Почему это нельзя?
....Обороты(&датаС, &ДатаПО,.....
---
ВидЗаписиРегистраВзаиморасчетов - реквизит. Внес изменение в текст запроса.
---
Почему бы вам не использовать такой запрос ?

           ВЫБРАТЬ РАЗРЕШЕННЫЕ
               ВзаиморасчетыПоЛицевымСчетамОбороты.ЛицевойСчет КАК ЛицевойСчет,
               МАКСИМУМ(ВзаиморасчетыПоЛицевымСчетамОбороты.Период) КАК Период
           ПОМЕСТИТЬ ВтДатаПоследнейОплаты
           ИЗ
               РегистрНакопления.ВзаиморасчетыПоУслугам.Обороты(&НачалоПериода, &КОнецПериода, Регистратор, ) КАК ВзаиморасчетыПоЛицевымСчетамОбороты
           ГДЕ ВзаиморасчетыПоЛицевымСчетамОбороты.ВидЗаписиРегистраВзаиморасчетов = ЗНАЧЕНИЕ(Перечисление.ВидЗаписиРегистраВзаиморасчетов.Оплачено);
СГРУППИРОВАТЬ ПО
ВзаиморасчетыПоЛицевымСчетамОбороты.ЛицевойСчет КАК ЛицевойСчет,
---
Проблема у том что нет у меня известного НачалоПериода от которого надо плясать. И "ВзаиморасчетыПоЛицевымСчетамОбороты.ВидЗаписиРегистраВзаиморасчетов = ЗНАЧЕНИЕ(Перечисление.ВидЗаписиРегистраВзаиморасчетов.Оплачено)" не сработает. ВидЗаписиРегистраВзаиморасчетов - реквизит регистра. Не ресурс. Недоступен для таблицы оборотов.
---
Тогда просто переименуйте Период в НаДату, и думаю будет вам щастя
МАКСИМУМ(ВзаиморасчетыПоЛицевымСчетамОбороты.Период) КАК НаДату
---
а то я не пробовал)))) и НаДату. И выразить. И вложенный запрос рисовал. Толку 0.
---
Нет пожалуй лучшеп попробуйте включить свою дату в группировку
ПО
                Строение,
            Квартира,
               ЛицевойСчет,
ДатаПоследнейОплаты
---
Не помогло.
---
Осталось предложить протереть монитор чистой тряпочкой, и почистить клавиатуру... )))))
Больше предложений нету!
---
Сам вчера только если с бубном не танцевал)))) Рад что хоть нашел корень проблемы))))
---
Вообщем разобрался. В запросе который собирает Итоги должны быть все поля которые являются измерениями регистра накопления, в случае если они сами или их реквизиты участвуют в конструкции ПО.
---
Если ставить вопрос об оптимизации разумнее всего шарашить это все в отдельный регистр сведений и получать срезом последних. Ну или перенести ВидЗаписиРегистраВзаиморасчетов из реквизитов в ресурс хотя бы. Но вопрос в другом. В роли "Период" периода для ИТОГИ ПО