Это не просто запрос. Это поэзия, в натуре!

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

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