Есть отчет "Оплата за период" и в нем какой то запрос дикий запрос, найдутся ли у вас совет как понять логику запроса, сам не особо опытен и в констукторе часть его не открывается
```1c
    ТекстВрмТбл = "
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,
    | ВзаиморасчетыСКонтрагентамиОбороты.Период,
    | ВзаиморасчетыСКонтрагентамиОбороты.Сделка,
    | ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    | ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход
    |ПОМЕСТИТЬ
    | ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон
    |ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &ДатаКон, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыСКонтрагентамиОбороты
    |ГДЕ НЕ ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    |;
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВзаиморасчетыСКонтрагентамиОбороты.Регистратор,
    | ВзаиморасчетыСКонтрагентамиОбороты.Период,
    | ВзаиморасчетыСКонтрагентамиОбороты.Сделка,
    | ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    | ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход
    |ПОМЕСТИТЬ
    | ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач
    |ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &ДатаНач, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыСКонтрагентамиОбороты
    |ГДЕ НЕ ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    |;
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВзаиморасчетыПоДок.Регистратор,
    | ВзаиморасчетыПоДок.Период,
    | ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом,
    | ВзаиморасчетыПоДок.ДоговорКонтрагента,
    | ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
    |ПОМЕСТИТЬ
    | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДату­Кон
    |ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &ДатаКон, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыПоДок
    |ГДЕ ВзаиморасчетыПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    |;
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВзаиморасчетыПоДок.Регистратор,
    | ВзаиморасчетыПоДок.Период,
    | ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом,
    | ВзаиморасчетыПоДок.ДоговорКонтрагента,
    | ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
    |ПОМЕСТИТЬ
    | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДату­Нач
    |ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, &ДатаНач, Регистратор, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыПоДок
    |ГДЕ ВзаиморасчетыПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    |;";

    ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуКон = "
    |ВЫБРАТЬ
    // собственно, этот запрос и отвечает за то, чтобы для всех договоров,
    // по которым есть начальное или конечное сальдо,
    // извлечь "крайнего" регистратора.
    | ВзаиморасчетыОиО.ДоговорКонтрагента,
    | ВзаиморасчетыОиО.Сделка,
    | ВзаиморасчетыОиО.Период,
    | МИНИМУМ(ВзаиморасчетыОиО.Регистратор) КАК ПервыйРегистратор
    |ИЗ
    | ( ВЫБРАТЬ ВзаиморасчетыОиО.Регистратор
    | , ВзаиморасчетыОиО.ДоговорКонтрагента
    | , ВзаиморасчетыОиО.Сделка
    | , ВзаиморасчетыОиО.Период
    | ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО
    | ОБЪЕДИНИТЬ
    | ВЫБРАТЬ ВзаиморасчетыПоДок.Регистратор
    | , ВзаиморасчетыПоДок.ДоговорКонтрагента
    | , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
    | , ВзаиморасчетыПоДок.Период
    | ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДату­Кон КАК ВзаиморасчетыПоДок
    | ) КАК ВзаиморасчетыОиО
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    | (
    | ВЫБРАТЬ
    | ДоговорКонтрагента,
    | Сделка,
    | МИНИМУМ(ПериодКон) КАК Период,
    | СуммаВалОстаток
    | ИЗ
    | (ВЫБРАТЬ
    // этот запрос выбирает Договоры-сделки, Регистраторы и их периоды,
    // которые являются оплаченными на ДатаНач или на ДатаКон
    // Критерий того, что регистратор является оплаченным:
    // Сумма движений регистра "приход" после него больше,
    // чем конечное сальдо по тому же набору измерений,
    // или равно ему.
    // Вышележащий запрос обеспечивает извлечение первого такого регистратора
    // и его период
    | ВзаиморасчетыОиО.ДоговорКонтрагента КАК ДоговорКонтрагента,
    | ВзаиморасчетыОиО.Сделка КАК Сделка,
    | МИНИМУМ(ВзаиморасчетыОиО.Период) КАК ПериодКон,
    | ВзаиморасчетыО.СуммаВалОстаток
    | ИЗ
    | ( ВЫБРАТЬ ВзаиморасчетыОиО.Регистратор
    | , ВзаиморасчетыОиО.ДоговорКонтрагента
    | , ВзаиморасчетыОиО.Сделка
    | , ВзаиморасчетыОиО.Период
    | ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО
    | ОБЪЕДИНИТЬ
    | ВЫБРАТЬ ВзаиморасчетыПоДок.Регистратор
    | , ВзаиморасчетыПоДок.ДоговорКонтрагента
    | , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
    | , ВзаиморасчетыПоДок.Период
    | ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДату­Кон КАК ВзаиморасчетыПоДок
    | ) КАК ВзаиморасчетыОиО
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    | (ВЫБРАТЬ
    //этот подзапрос извлекает все договоры-сделки, по которым есть задолжнность
    //контрагента на ДатаНач или ДатаКон
    //Здесь работает во внутреннем соединении как фильтр, заодно извлекает конечное сальдо
    //Его псевдоним - ВзаиморасчетыО
    | ВзаиморасчетыОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
    | ВзаиморасчетыОстатки.Сделка КАК Сделка,
    | ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВалОстаток
    | ИЗ
    | ( ВЫБРАТЬ ВзаиморасчетыОстатки.ДоговорКонтрагента
    | , ВзаиморасчетыОстатки.Сделка
    | , ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток
    | ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКонОст, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыОстатки
    | ГДЕ НЕ ВзаиморасчетыОстатки.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    | ОБЪЕДИНИТЬ
    | ВЫБРАТЬ ВзаиморасчетыОстаткиПоДок.ДоговорКонтрагента
    | , ВзаиморасчетыОстаткиПоДок.ДокументРасчетовСКонтрагентом
    | , ВзаиморасчетыОстаткиПоДок.СуммаВзаиморасчетовОстаток
    | ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&ДатаКонОст, {ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель}) КАК ВзаиморасчетыОстаткиПоДок
    | ГДЕ ВзаиморасчетыОстаткиПоДок.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом
    | ) КАК ВзаиморасчетыОстатки
    | ГДЕ
    | (ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток > 0)) КАК ВзаиморасчетыО
    | ПО ВзаиморасчетыО.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
    | И ВзаиморасчетыО.Сделка = ВзаиморасчетыОиО.Сделка
    | // теперь остались только те договоры-сделки, по которым сальдо на
    | // конец периода положительно
    | ЛЕВОЕ СОЕДИНЕНИЕ
    //Это левое соединение "подтягивает" к периодам из вышележащего запроса
    //регистраторов, которые на оси времени лежат позже,
    //а заодно достает их движения "приход".
    //Движения "приход" в дальнейшем пригодятся для того, чтобы
    //отобрать только те периоды вышележащего запроса, приход после которых
    //больше, чем конечное сальдо по регистратору-сделке из ВзаиморасчетыО
    //все делается именно так из-за того, что возможно существование регистраторов
    //с одинаковым Периодом.
    | ( ВЫБРАТЬ ВзаиморасчетыОиО2.Регистратор
    | , ВзаиморасчетыОиО2.Период
    | , ВзаиморасчетыОиО2.Сделка
    | , ВзаиморасчетыОиО2.ДоговорКонтрагента
    | , ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
    | ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО2
    | ОБЪЕДИНИТЬ
    | ВЫБРАТЬ ВзаиморасчетыПоДок.Регистратор
    | , ВзаиморасчетыПоДок.Период
    | , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
    | , ВзаиморасчетыПоДок.ДоговорКонтрагента
    | , ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
    | ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДату­Кон КАК ВзаиморасчетыПоДок
    | ) КАК ВзаиморасчетыОиО2
    | ПО ВзаиморасчетыОиО.ДоговорКонтрагента = ВзаиморасчетыОиО2.ДоговорКонтрагента
    | И ВзаиморасчетыОиО.Сделка = ВзаиморасчетыОиО2.Сделка
    | И (ВзаиморасчетыОиО.Период < ВзаиморасчетыОиО2.Период
    | ИЛИ ВзаиморасчетыОиО.Период = ВзаиморасчетыОиО2.Период И ВзаиморасчетыОиО.Регистратор < ВзаиморасчетыОиО2.Регистратор)
    | СГРУППИРОВАТЬ ПО
    | ВзаиморасчетыОиО.ДоговорКонтрагента,
    | ВзаиморасчетыОиО.Сделка,
    | ВзаиморасчетыОиО.Регистратор,
    | ВзаиморасчетыО.СуммаВалОстаток
    | ИМЕЮЩИЕ
    | СУММА(ВЫБОР
    | КОГДА (ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход) ЕСТЬ NULL
    | ТОГДА 0
    | ИНАЧЕ ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
    | КОНЕЦ) < ВзаиморасчетыО.СуммаВалОстаток
    | ) КАК ПервыеПериодыПромежуточный
    | СГРУППИРОВАТЬ ПО
    | ДоговорКонтрагента,
    | Сделка,
    | СуммаВалОстаток
    | ) КАК ПервыеПериоды
    | ПО ПервыеПериоды.Период = ВзаиморасчетыОиО.Период
    | И ПервыеПериоды.Сделка = ВзаиморасчетыОиО.Сделка
    | И ПервыеПериоды.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
    | ЛЕВОЕ СОЕДИНЕНИЕ
    | ( ВЫБРАТЬ ВзаиморасчетыОиО2.Регистратор
    | , ВзаиморасчетыОиО2.ДоговорКонтрагента
    | , ВзаиморасчетыОиО2.Сделка
    | , ВзаиморасчетыОиО2.Период
    | , ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
    | ИЗ ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон КАК ВзаиморасчетыОиО2
    | ОБЪЕДИНИТЬ
    | ВЫБРАТЬ ВзаиморасчетыПоДок.Регистратор
    | , ВзаиморасчетыПоДок.ДоговорКонтрагента
    | , ВзаиморасчетыПоДок.ДокументРасчетовСКонтрагентом
    | , ВзаиморасчетыПоДок.Период
    | , ВзаиморасчетыПоДок.СуммаВзаиморасчетовПриход
    | ИЗ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДату­Кон КАК ВзаиморасчетыПоДок
    | ) КАК ВзаиморасчетыОиО2
    | ПО ВзаиморасчетыОиО2.Сделка = ВзаиморасчетыОиО.Сделка
    | И ВзаиморасчетыОиО2.ДоговорКонтрагента = ВзаиморасчетыОиО.ДоговорКонтрагента
    | И (//ВзаиморасчетыОиО.Период < ВзаиморасчетыОиО2.Период ИЛИ
    | ВзаиморасчетыОиО.Период = ВзаиморасчетыОиО2.Период И ВзаиморасчетыОиО.Регистратор < ВзаиморасчетыОиО2.Регистратор)

    |СГРУППИРОВАТЬ ПО
    | ВзаиморасчетыОиО.ДоговорКонтрагента,
    | ВзаиморасчетыОиО.Сделка,
    | ВзаиморасчетыОиО.Период,
    | ПервыеПериоды.СуммаВалОстаток
    | ИМЕЮЩИЕ
    |СУММА(ВЫБОР
    | КОГДА (ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход) ЕСТЬ NULL
    | ТОГДА 0
    | ИНАЧЕ ВзаиморасчетыОиО2.СуммаВзаиморасчетовПриход
    | КОНЕЦ) < ПервыеПериоды.СуммаВалОстаток
    |";

    ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач = СтрЗаменить(ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуКон, "ВзаиморасчетыСКонтрагентамиОборотыНаДатуКон", "ВзаиморасчетыСКонтрагентамиОборотыНаДатуНач");
    ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач = СтрЗаменить(ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач, "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДат­уКон", "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОборотыНаДат­уНач");
    ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач = СтрЗаменить(ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач, "&ДатаКонОст", "&ДатаНачОст");

    ТекстЗапроса = ТекстВрмТбл + "
    |
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот КАК СуммаПродажи,
    | ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот КАК КоличествоОборот,
    | ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницДляОтчетовОборот,
    | ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Себестоимость,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Маржа,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК ЧистаяМаржа,
    | 0 КАК СуммаЗатрат,
    | РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяСебестоимость,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяПрибыль,
    | ПродажиСДатамиЦенИДатамиКурсов.Регистратор КАК ДокументРеализации,
    | ПродажиСДатамиЦенИДатамиКурсов.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | ПродажиСДатамиЦенИДатамиКурсов.Подразделение КАК Подразделение,
    | ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя КАК ЗаказПокупателя,
    | ПродажиСДатамиЦенИДатамиКурсов.ДоговорВзаиморасчетовПокупателя КАК ДоговорВзаиморасчетовПокупателя,
    | ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя.Ответственный КАК Ответственный,
    | ПродажиСДатамиЦенИДатамиКурсов.Номенклатура КАК Номенклатура,
    | ПродажиСДатамиЦенИДатамиКурсов.Контрагент КАК Покупатель
    |{ВЫБРАТЬ
    | СуммаПродажи,
    | КоличествоОборот,
    | КоличествоЕдиницДляОтчетовОборот,
    | Себестоимость,
    | Маржа,
    | ЧистаяМаржа,
    | СуммаЗатрат,
    | ПлановаяСебестоимость,
    | ПлановаяПрибыль,
    | ДокументРеализации.*,
    | ХарактеристикаНоменклатуры.*,
    | ЗаказПокупателя.*,
    | Ответственный.*,
    | ДоговорВзаиморасчетовПокупателя.*,
    | Покупатель.*,
    | Подразделение.*,
    | Номенклатура.*,
    | ПродажиСДатамиЦенИДатамиКурсов.ДокументПродажи.*}
    |ИЗ (
    |ВЫБРАТЬ
    | ПродажиОбороты.СтоимостьОборот*ДопКоэффициент КАК СуммаПродажиОборот,
    | (ВЫБОР КОГДА (ПродажиСебестоимостьОбороты.СтоимостьОборот) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьОбороты.СтоимостьОборот КОНЕЦ + ВЫБОР КОГДА (ПродажиСебестоимостьКорректировка.Стоимость) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьКорректировка.Стоимость КОНЕЦ)*ДопКоэффициент КАК СебестоимостьОборот,
    | ПродажиОбороты.КоличествоОборот*ДопКоэффициент КАК КоличествоОборот,
    | ПродажиОбороты.Регистратор,
    | ПродажиОбороты.Номенклатура,
    | ПродажиОбороты.ХарактеристикаНоменклатуры,
    | ПродажиОбороты.ДоговорКонтрагента КАК ДоговорВзаиморасчетовПокупателя,
    | ПродажиОбороты.Контрагент,
    | ПродажиОбороты.ЗаказПокупателя,
    | ПродажиОбороты.Подразделение,
    | ПродажиОбороты.ДокументПродажи,
    | СписокРегистраторов.ДатаКурсаВалютыУпрУчета,
    | МАКСИМУМ(РСЦеныКомпании.Период) КАК ДатаЦены,
    | МАКСИМУМ(РСКурсыВалют.Период) КАК ДатаКурсаВалютыЦены
    |ИЗ
    | РегистрНакопления.Продажи.Обороты(, &ДатаКон, Регистратор,
    | {Номенклатура.*, ХарактеристикаНоменклатуры.*, ЗаказПокупателя.*, Подразделение.*, ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель, ДокументПродажи.*}
    | ) КАК ПродажиОбороты

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

    | ЛЕВОЕ СОЕДИНЕНИЕ ("+ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуКон+") КАК НеоплаченныеНаДатуКон
    | ПО НеоплаченныеНаДатуКон.ДоговорКонтрагента = ОсновнаяТаблица.ДоговорКонтрагента
    | И НеоплаченныеНаДатуКон.Сделка = ОсновнаяТаблица.Сделка

    | ЛЕВОЕ СОЕДИНЕНИЕ ("+ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач+") КАК НеоплаченныеНаДатуНач
    | ПО НеоплаченныеНаДатуНач.ДоговорКонтрагента = ОсновнаяТаблица.ДоговорКонтрагента
    | И НеоплаченныеНаДатуНач.Сделка = ОсновнаяТаблица.Сделка

    | ГДЕ
    | ВЫБОР //документ не был оплаченным на ДатаНач
    | КОГДА НеоплаченныеНаДатуКон.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
    | ОсновнаяТаблица.Период < НеоплаченныеНаДатуКон.Период
    | ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуКон.Период
    | И ОсновнаяТаблица.Регистратор<НеоплаченныеНаДатуКон.ПервыйРегистратор
    | ИНАЧЕ
    | ОсновнаяТаблица.Период <= &КонДата
    | КОНЕЦ
    | И
    | ВЫБОР //и стал оплаченным на ДатаКон
    | КОГДА НеоплаченныеНаДатуНач.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
    | ОсновнаяТаблица.Период > НеоплаченныеНаДатуНач.Период
    | ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуНач.Период
    | И ОсновнаяТаблица.Регистратор>=НеоплаченныеНаДатуНач.ПервыйРегистратор
    | ИНАЧЕ
    | ОсновнаяТаблица.Период >= &НачДата
    | КОНЕЦ
    | ИЛИ
    | ВЫБОР //документ был оплаченным на ДатаНач, т.е. находился левее границы
    | КОГДА НеоплаченныеНаДатуНач.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
    | ОсновнаяТаблица.Период < НеоплаченныеНаДатуНач.Период
    | ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуНач.Период
    | И ОсновнаяТаблица.Регистратор<НеоплаченныеНаДатуНач.ПервыйРегистратор
    | ИНАЧЕ
    | ОсновнаяТаблица.Период < &НачДата
    | КОНЕЦ
    | И
    | ВЫБОР //и стал НЕоплаченным на ДатаКон, т.е находится правее границы
    | КОГДА НеоплаченныеНаДатуКон.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
    | ОсновнаяТаблица.Период > НеоплаченныеНаДатуКон.Период
    | ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуКон.Период
    | И ОсновнаяТаблица.Регистратор>=НеоплаченныеНаДатуКон.ПервыйРегистратор
    | ИНАЧЕ
    | Ложь //этот вариант предполагает, что появились неоплаченные документы
    | КОНЕЦ
    | СГРУППИРОВАТЬ ПО
    | ОсновнаяТаблица.Регистратор,
    | ОсновнаяТаблица.Сделка
    | ) КАК СписокРегистраторов
    | ПО ПродажиОбороты.Регистратор = СписокРегистраторов.Регистратор
    | И ВЫБОР КОГДА ПродажиОбороты.ДоговорКонтрагента.ВедениеВзаиморасчетов = ЗНАЧЕНИЕ(Перечисление.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам)
    | ТОГДА ПродажиОбороты.ЗаказПокупателя = СписокРегистраторов.Сделка
    | ИНАЧЕ ИСТИНА
    | КОНЕЦ
    // Себестоимость продаж, списываемая сразу
    | ЛЕВОЕ СОЕДИНЕНИЕ
    | (ВЫБРАТЬ СУММА(СтоимостьОборот) КАК СтоимостьОборот, Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Регистратор
    | ИЗ РегистрНакопления.ПродажиСебестоимость.Обороты(,&ДатаКон,Регистратор) КАК ПродажиСебестоимость
    | СГРУППИРОВАТЬ ПО Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Регистратор) ПродажиСебестоимостьОбороты
    | ПО ПродажиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор
    | И ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура
    | И ПродажиОбороты.ХарактеристикаНоменклатуры = ПродажиСебестоимостьОбороты.ХарактеристикаНоменклатуры
    | И ПродажиОбороты.ЗаказПокупателя = ПродажиСебестоимостьОбороты.ЗаказПокупателя
    // Себестоимость продаж, списываемая при корректировке
    | ЛЕВОЕ СОЕДИНЕНИЕ
    | (ВЫБРАТЬ СУММА(Стоимость) КАК Стоимость, Номенклатура, ДокументДвижения, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение
    | ИЗ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
    |// ГДЕ ПродажиСебестоимость.ДокументДвижения <> Неопределено
    | СГРУППИРОВАТЬ ПО Номенклатура, ДокументДвижения, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение
    | ) ПродажиСебестоимостьКорректировка
    | ПО ПродажиСебестоимостьКорректировка.Номенклатура = ПродажиОбороты.Номенклатура
    | И ПродажиСебестоимостьКорректировка.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
    | И ПродажиСебестоимостьКорректировка.ДокументДвижения = ПродажиОбороты.Регистратор
    | И ПродажиСебестоимостьКорректировка.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя
    | И ПродажиСебестоимостьКорректировка.Подразделение = ПродажиОбороты.Подразделение
    // ...
    // Цены для плановой себестоимости
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК РСЦеныКомпании
    | ПО РСЦеныКомпании.ТипЦен = &ТипЦенПлановойСебестоимости
    | И ПродажиОбороты.Номенклатура = РСЦеныКомпании.Номенклатура
    | И ПродажиОбороты.ХарактеристикаНоменклатуры = РСЦеныКомпании.ХарактеристикаНоменклатуры
    | И РСЦеныКомпании.Период<=ПродажиОбороты.Период
    // Курсы валют для плановой себестоимости
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКурсыВалют
    | ПО РСКурсыВалют.Валюта = РСЦеныКомпании.Валюта
    | И РСКурсыВалют.Период<=РСЦеныКомпании.Период
    |СГРУППИРОВАТЬ ПО
    | ПродажиОбороты.СтоимостьОборот*ДопКоэффициент,
    | (ВЫБОР КОГДА (ПродажиСебестоимостьОбороты.СтоимостьОборот) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьОбороты.СтоимостьОборот КОНЕЦ + ВЫБОР КОГДА (ПродажиСебестоимостьКорректировка.Стоимость) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьКорректировка.Стоимость КОНЕЦ)*ДопКоэффициент,
    | ПродажиОбороты.КоличествоОборот*ДопКоэффициент,
    | ПродажиОбороты.Регистратор,
    | ПродажиОбороты.Номенклатура,
    | ПродажиОбороты.ХарактеристикаНоменклатуры,
    | ПродажиОбороты.Контрагент,
    | ПродажиОбороты.ДоговорКонтрагента,
    | ПродажиОбороты.ЗаказПокупателя,
    | ПродажиОбороты.Подразделение,
    | ПродажиОбороты.ДокументПродажи,
    | СписокРегистраторов.ДатаКурсаВалютыУпрУчета
    |) КАК ПродажиСДатамиЦенИДатамиКурсов
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК РСЦеныКомпании
    | ПО РСЦеныКомпании.ТипЦен = &ТипЦенПлановойСебестоимости
    | И РСЦеныКомпании.Период = ПродажиСДатамиЦенИДатамиКурсов.ДатаЦены
    | И РСЦеныКомпании.Номенклатура = ПродажиСДатамиЦенИДатамиКурсов.Номенклатура
    | И РСЦеныКомпании.ХарактеристикаНоменклатуры = ПродажиСДатамиЦенИДатамиКурсов.ХарактеристикаНоменклатуры
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКурсыВалютыУпрУчета
    | ПО РСКурсыВалютыУпрУчета.Период = ПродажиСДатамиЦенИДатамиКурсов.ДатаКурсаВалютыУпрУчета
    | И РСКурсыВалютыУпрУчета.Валюта = &ВалютаУпрУчета
    |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКурсыВалютыЦен
    | ПО РСКурсыВалютыЦен.Валюта = РСЦеныКОмпании.Валюта
    | И РСКурсыВалютыЦен.Период = ПродажиСДатамиЦенИДатамиКурсов.ДатаКурсаВалютыЦены
    |{ГДЕ
    | ПродажиСДатамиЦенИДатамиКурсов.Подразделение.* КАК Подразделение,
    | ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя.Ответственный.* КАК Ответственный,
    | ПродажиСДатамиЦенИДатамиКурсов.ДоговорВзаиморасчетовПокупателя.Владелец.* КАК Покупатель,
    | ПродажиСДатамиЦенИДатамиКурсов.ДоговорВзаиморасчетовПокупателя.* КАК ДоговорВзаиморасчетовПокупателя,
    | ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя.* КАК ЗаказПокупателя,
    | ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.* КАК Номенклатура,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот КАК СуммаПродажи,
    | ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот КАК КоличествоОборот,
    | ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницДляОтчетовОборот,
    | ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Себестоимость,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Маржа,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК ЧистаяМаржа,
    | 0 КАК СуммаЗатрат,
    | РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяСебестоимость,
    | ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяПрибыль

    | //СВОЙСТВА
    | //КАТЕГОРИИ
    |}
    |ОБЪЕДИНИТЬ ВСЕ
    |ВЫБРАТЬ
    | 0 КАК СуммаПродажи,
    | 0 КАК КоличествоОборот,
    | 0 КАК КоличествоЕдиницДляОтчетовОборот,
    | 0 КАК Себестоимость,
    | 0 КАК МАРЖА,
    | -ЗатратыОбороты.СуммаОборот КАК ЧистаяМаржа,
    | ЗатратыОбороты.СуммаОборот КАК СуммаЗатрат,
    | 0 КАК ПлановаяСебестоимость,
    | 0 КАК ПлановаяПрибыль,
    | ЗатратыОбороты.Регистратор КАК ДокументРеализации,
    | NULL КАК ХарактеристикаНоменклатуры,
    | ЗатратыОбороты.Подразделение КАК Подразделение,
    | ЗатратыОбороты.Заказ КАК ЗаказПокупателя,
    | ЗатратыОбороты.Заказ.ДоговорКонтрагента КАК ДоговорВзаиморасчетовПокупателя,
    | ЗатратыОбороты.Заказ.Ответственный КАК Ответственный,
    | ЗатратыОбороты.СтатьяЗатрат КАК Номенклатура,
    | ЗатратыОбороты.Заказ.Контрагент КАК Покупатель
    |{ВЫБРАТЬ
    | СуммаПродажи,
    | КоличествоОборот,
    | КоличествоЕдиницДляОтчетовОборот,
    | Себестоимость,
    | Маржа,
    | ЧистаяМаржа,
    | СуммаЗатрат,
    | ПлановаяСебестоимость,
    | ПлановаяПрибыль,
    | ДокументРеализации.*,
    | ХарактеристикаНоменклатуры.*,
    | Покупатель.*,
    | ЗаказПокупателя.*,
    | ДоговорВзаиморасчетовПокупателя,
    | Ответственный.*,
    | Подразделение.*,
    | Номенклатура.*}
    |ИЗ РегистрНакопления.Затраты.Обороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность}, Заказ <> НЕОПРЕДЕЛЕНО) КАК ЗатратыОбороты
    |{ГДЕ
    | ЗатратыОбороты.Подразделение.* КАК Подразделение,
    | ЗатратыОбороты.Заказ.Ответственный.* КАК Ответственный,
    | ЗатратыОбороты.Заказ.Контрагент.* КАК Покупатель,
    | ЗатратыОбороты.Заказ.ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя,
    | ЗатратыОбороты.Заказ.* КАК ЗаказПокупателя,
    | ЗатратыОбороты.СтатьяЗатрат КАК Номенклатура,
    | 0 КАК СуммаПродажи,
    | 0 КАК КоличествоОборот,
    | 0 КАК КоличествоЕдиницДляОтчетовОборот,
    | 0 КАК Себестоимость,
    | 0 КАК МАРЖА,
    | -ЗатратыОбороты.СуммаОборот КАК ЧистаяМаржа,
    | ЗатратыОбороты.СуммаОборот КАК СуммаЗатрат,
    | 0 КАК ПлановаяСебестоимость,
    | 0 КАК ПлановаяПрибыль
    | //СВОЙСТВА
    | //КАТЕГОРИИ
    |}
    |{УПОРЯДОЧИТЬ ПО
    | ЗаказПокупателя.*,
    | Подразделение.*,
    | Покупатель.*,
    | Ответственный.*,
    | Номенклатура.*,
    | СуммаПродажи,
    | КоличествоОборот,
    | КоличествоЕдиницДляОтчетовОборот,
    | Себестоимость,
    | Маржа,
    | ЧистаяМаржа,
    | СуммаЗатрат,
    | ПлановаяСебестоимость,
    | ПлановаяПрибыль
    | //СВОЙСТВА
    |}
    |ИТОГИ
    | СУММА(СуммаПродажи),
    | СУММА(КоличествоОборот),
    | СУММА(КоличествоЕдиницДляОтчетовОборот),
    | СУММА(Себестоимость),
    | СУММА(Маржа),
    | СУММА(ЧистаяМаржа),
    | СУММА(СуммаЗатрат),
    | СУММА(ПлановаяСебестоимость),
    | СУММА(ПлановаяПрибыль)
    |
    |ПО ОБЩИЕ
    |
    |{ИТОГИ ПО
    | ЗаказПокупателя.*,
    | Подразделение.*,
    | Покупатель.*,
    | Ответственный.*,
    | Номенклатура.*
    | //СВОЙСТВА
    |}
    |";
```
---
1. Так как запрос динамически меняется, ставите в отладчике точку остановки после текста запроса на операторе: Запрос.Выполнить() или Запрос.ВыполнитьПакет().
2. Смотрите значение переменной в отладчике Запрос.Текст и значения переменных Запрос.Параметры если таковые есть. Можете скопировать этот текст в Консоль запросов.
3. В консоли запросов управляемого приложения можете выполнить текст запроса со всеми промежуточными таблицами и посмотреть в них данные. Также в консоли запросов можно менять запрос или устанавливать дополнительные параметры и смотреть что будет получаться.
4. Советую в запросе наложить фильтр по договору иначе Вы утонете в данных и таблицах если в базе много контрагентов, договоров и документов.
5. Вообще советую при анализе запроса держать в голове для чего Вы этот анализ хотите сделать, какую задачу решить, как правильно заметил выше пользователь "TokarevV. А" пытаться анализировать такой запрос бесцельно - это потеря времени.
---
Не полностью в конструктор попадает потому что текст динамически подменяется в зависимости от условий.
Надо брать и "читать" или сделать свой по проще
---
понять логику можно умом. других вариантов нет. в конфигураторе ставишь точку останова после формирования всего текста запроса, копируешь, сохр. в файл, а дальше его в конструктор запроса и разбираться
---
вы хоть знаете сколько там строк и на какой у вас "непонятка" :) ?
---
Пишите конкретную потребность, у вас ведь не самоцель понять логику?
---
Очередной ленивец ,который работать не хочет.
По-теме: в запросе данные выгружаются в виртуальные таблицы, из которых потом данные повторно используются. Набор данных там небольшой, но много раз повторяется, поэтому - записывайте на листок и структурируйте. Позже, если поймете, сможете эти все "двадцать квадриллионов" строк держать в голове, как шаблон.
и ещё, для понимания всего этого, нужно знать архитектуру конфигурации и бизнес-процессы. Но вы же на всё готовы?
---
1. Так как запрос динамически меняется, ставите в отладчике точку остановки после текста запроса на операторе: Запрос.Выполнить() или Запрос.ВыполнитьПакет().
2. Смотрите значение переменной в отладчике Запрос.Текст и значения переменных Запрос.Параметры если таковые есть. Можете скопировать этот текст в Консоль запросов.
3. В консоли запросов управляемого приложения можете выполнить текст запроса со всеми промежуточными таблицами и посмотреть в них данные. Также в консоли запросов можно менять запрос или устанавливать дополнительные параметры и смотреть что будет получаться.
4. Советую в запросе наложить фильтр по договору иначе Вы утонете в данных и таблицах если в базе много контрагентов, договоров и документов.
5. Вообще советую при анализе запроса держать в голове для чего Вы этот анализ хотите сделать, какую задачу решить, как правильно заметил выше пользователь "TokarevV. А" пытаться анализировать такой запрос бесцельно - это потеря времени.
---
Добавлю.
К п1. в отладчике может быть не весь текст запроса, а только первые несколько тысяч символов. Один раз мне пришлось подписывать код сохранения текста запроса в текстовый файл: в блокноте увидел весь запрос.

Так как там куча временных таблиц: если нет МенеджерВременныхТаблиц - укажите. Можно будет посмотреть их в отладчике.

За п 5 - однозначно плюс.
---
Начни с "тренировки на кошечках". Тем, кто "сам не силен в 1С" до таких запросов как отсюда и до японской матери.