Выборка клиентов, которые не заезжали в полсднее время: различия между версиями

Материал из База знаний 5S AUTO
Перейти к навигации Перейти к поиску
 
Строка 118: Строка 118:
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
+
  МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
 
ПОМЕСТИТЬ ВремДатаПоследнегоЗаказНаряда
 
ПОМЕСТИТЬ ВремДатаПоследнегоЗаказНаряда
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
Документ.ЗаказНаряд КАК ДокЗаказНаряд
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
+
  ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
    ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
+
      ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
+
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремПокупатели.Покупатель;
+
  ВремПокупатели.Покупатель;
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
+
  МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
 
ПОМЕСТИТЬ ВремДатаПредыдущегоЗаказНаряда
 
ПОМЕСТИТЬ ВремДатаПредыдущегоЗаказНаряда
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
Документ.ЗаказНаряд КАК ДокЗаказНаряд
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
+
  ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
    ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
+
      ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
+
      И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ВремДатаПоследнегоЗаказНаряда
+
  ВремДатаПоследнегоЗаказНаряда
ПО(ВремПокупатели.Покупатель=ВремДатаПоследнегоЗаказНаряда.Покупатель
+
  ПО(ВремПокупатели.Покупатель=ВремДатаПоследнегоЗаказНаряда.Покупатель
  И ДокЗаказНаряд.Дата=ВремДатаПоследнегоЗаказНаряда.Дата)
+
      И ДокЗаказНаряд.Дата=ВремДатаПоследнегоЗаказНаряда.Дата)
 
ГДЕ
 
ГДЕ
ВремДатаПоследнегоЗаказНаряда.Покупатель IS NULL
+
  ВремДатаПоследнегоЗаказНаряда.Покупатель IS NULL
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремПокупатели.Покупатель;
+
  ВремПокупатели.Покупатель;
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремДатаПоследнегоЗаказНаряда.Покупатель,
+
  ВремДатаПоследнегоЗаказНаряда.Покупатель,
МАКСИМУМ(ДокЗаказНаряд.Ссылка) КАК ЗаказНаряд
+
  МАКСИМУМ(ДокЗаказНаряд.Ссылка) КАК ЗаказНаряд
 
ПОМЕСТИТЬ ВремПоследнийЗаказНаряд  
 
ПОМЕСТИТЬ ВремПоследнийЗаказНаряд  
 
ИЗ
 
ИЗ
ВремДатаПоследнегоЗаказНаряда
+
  ВремДатаПоследнегоЗаказНаряда
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
Документ.ЗаказНаряд КАК ДокЗаказНаряд
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
ПО((ВремДатаПоследнегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Заказчик
+
  ПО((ВремДатаПоследнегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Заказчик
    ИЛИ ВремДатаПоследнегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Контрагент)
+
      ИЛИ ВремДатаПоследнегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Контрагент)
    И ВремДатаПоследнегоЗаказНаряда.Дата=ДокЗаказНаряд.Дата)
+
      И ВремДатаПоследнегоЗаказНаряда.Дата=ДокЗаказНаряд.Дата)
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремДатаПоследнегоЗаказНаряда.Покупатель;
+
  ВремДатаПоследнегоЗаказНаряда.Покупатель;
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремДатаПредыдущегоЗаказНаряда.Покупатель,
+
  ВремДатаПредыдущегоЗаказНаряда.Покупатель,
МАКСИМУМ(ДокЗаказНаряд.Ссылка) КАК ЗаказНаряд
+
  МАКСИМУМ(ДокЗаказНаряд.Ссылка) КАК ЗаказНаряд
 
ПОМЕСТИТЬ ВремПрерыдущийЗаказНаряд
 
ПОМЕСТИТЬ ВремПрерыдущийЗаказНаряд
 
ИЗ
 
ИЗ
ВремДатаПредыдущегоЗаказНаряда
+
  ВремДатаПредыдущегоЗаказНаряда
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
Документ.ЗаказНаряд КАК ДокЗаказНаряд
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
ПО((ВремДатаПредыдущегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Заказчик
+
  ПО((ВремДатаПредыдущегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Заказчик
    ИЛИ ВремДатаПредыдущегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Контрагент)
+
      ИЛИ ВремДатаПредыдущегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Контрагент)
    И ВремДатаПредыдущегоЗаказНаряда.Дата=ДокЗаказНаряд.Дата)
+
    И ВремДатаПредыдущегоЗаказНаряда.Дата=ДокЗаказНаряд.Дата)
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремДатаПредыдущегоЗаказНаряда.Покупатель;
+
  ВремДатаПредыдущегоЗаказНаряда.Покупатель;
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
МАКСИМУМ(РегСвАвтомобилиСрезПоследних.Автомобиль) КАК Автомобиль
+
  МАКСИМУМ(РегСвАвтомобилиСрезПоследних.Автомобиль) КАК Автомобиль
 
ПОМЕСТИТЬ ВремАвтомобили
 
ПОМЕСТИТЬ ВремАвтомобили
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
РегистрСведений.Автомобили.СрезПоследних(, ВидЗначения=ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин)) КАК РегСвАвтомобилиСрезПоследних
+
  РегистрСведений.Автомобили.СрезПоследних(, ВидЗначения=ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин)) КАК РегСвАвтомобилиСрезПоследних
ПО(ВремПокупатели.Покупатель=РегСвАвтомобилиСрезПоследних.Значение)
+
  ПО(ВремПокупатели.Покупатель=РегСвАвтомобилиСрезПоследних.Значение)
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремПокупатели.Покупатель;
+
  ВремПокупатели.Покупатель;
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
СУММА(ISNULL(РегСвБонусыСтандартныеОбороты.КоличествоОборот, 0)) КАК Стандартные,
+
  СУММА(ISNULL(РегСвБонусыСтандартныеОбороты.КоличествоОборот, 0)) КАК Стандартные,
СУММА(ISNULL(РегСвБонусыПремиумОбороты.КоличествоОборот, 0)) КАК Премиум
+
  СУММА(ISNULL(РегСвБонусыПремиумОбороты.КоличествоОборот, 0)) КАК Премиум
 
ПОМЕСТИТЬ ВремБонусы
 
ПОМЕСТИТЬ ВремБонусы
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
РегистрСведений._5с_ВладельцыБонусныхСчетов КАК РегСвВладельцыБонусныхСчетов
+
  РегистрСведений._5с_ВладельцыБонусныхСчетов КАК РегСвВладельцыБонусныхСчетов
ПО(ВремПокупатели.Покупатель=РегСвВладельцыБонусныхСчетов.Контрагент)
+
  ПО(ВремПокупатели.Покупатель=РегСвВладельцыБонусныхСчетов.Контрагент)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
Справочник._5с_ТипыБонусов КАК СпрТипыБонусовСтандартные
+
  Справочник._5с_ТипыБонусов КАК СпрТипыБонусовСтандартные
ПО(СпрТипыБонусовСтандартные.Код="000000001")
+
  ПО(СпрТипыБонусовСтандартные.Код="000000001")
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
Справочник._5с_ТипыБонусов КАК СпрТипыБонусовПремиум
+
  Справочник._5с_ТипыБонусов КАК СпрТипыБонусовПремиум
ПО(СпрТипыБонусовПремиум.Код="000000002")
+
  ПО(СпрТипыБонусовПремиум.Код="000000002")
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления._5с_Бонусы.Обороты() КАК РегСвБонусыСтандартныеОбороты
+
  РегистрНакопления._5с_Бонусы.Обороты() КАК РегСвБонусыСтандартныеОбороты
ПО(РегСвВладельцыБонусныхСчетов.БонусныйСчет=РегСвБонусыСтандартныеОбороты.БонусныйСчет
+
  ПО(РегСвВладельцыБонусныхСчетов.БонусныйСчет=РегСвБонусыСтандартныеОбороты.БонусныйСчет
  И СпрТипыБонусовСтандартные.Ссылка=РегСвБонусыСтандартныеОбороты.ТипБонуса)
+
    И СпрТипыБонусовСтандартные.Ссылка=РегСвБонусыСтандартныеОбороты.ТипБонуса)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления._5с_Бонусы.Обороты() КАК РегСвБонусыПремиумОбороты
+
  РегистрНакопления._5с_Бонусы.Обороты() КАК РегСвБонусыПремиумОбороты
ПО(РегСвВладельцыБонусныхСчетов.БонусныйСчет=РегСвБонусыПремиумОбороты.БонусныйСчет
+
  ПО(РегСвВладельцыБонусныхСчетов.БонусныйСчет=РегСвБонусыПремиумОбороты.БонусныйСчет
  И СпрТипыБонусовПремиум.Ссылка=РегСвБонусыПремиумОбороты.ТипБонуса)
+
    И СпрТипыБонусовПремиум.Ссылка=РегСвБонусыПремиумОбороты.ТипБонуса)
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремПокупатели.Покупатель;
+
  ВремПокупатели.Покупатель;
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
ВремПокупатели.Покупатель.Наименование КАК ФИО,
+
  ВремПокупатели.Покупатель.Наименование КАК ФИО,
ISNULL(ВремТелефоны.НомераТелефона, "") КАК НомерТелефона,
+
  ISNULL(ВремТелефоны.НомераТелефона, "") КАК НомерТелефона,
ISNULL(ВремАвтомобили.Автомобиль.Модель.Родитель.Наименование, "")+" / "+ ISNULL(ВремАвтомобили.Автомобиль.Модель.Наименование, "") КАК МаркаМодель,
+
  ISNULL(ВремАвтомобили.Автомобиль.Модель.Родитель.Наименование, "")+" / "+ ISNULL(ВремАвтомобили.Автомобиль.Модель.Наименование, "") КАК МаркаМодель,
ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Дата, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаКрайнегоЗаказНаряда,
+
  ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Дата, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаКрайнегоЗаказНаряда,
ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Номер, "") КАК НомерКрайнегоЗаказНаряда,
+
  ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Номер, "") КАК НомерКрайнегоЗаказНаряда,
ISNULL(ВремБонусы.Стандартные, 0) КАК КоличествоСтандартныхБонусов,
+
  ISNULL(ВремБонусы.Стандартные, 0) КАК КоличествоСтандартныхБонусов,
ISNULL(ВремБонусы.Премиум, 0) КАК КоличествоПремиумБонусов
+
  ISNULL(ВремБонусы.Премиум, 0) КАК КоличествоПремиумБонусов
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ВремТелефоны
+
  ВремТелефоны
ПО(ВремПокупатели.Покупатель=ВремТелефоны.Покупатель)
+
  ПО(ВремПокупатели.Покупатель=ВремТелефоны.Покупатель)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ВремАвтомобили
+
  ВремАвтомобили
ПО(ВремПокупатели.Покупатель=ВремАвтомобили.Покупатель)
+
  ПО(ВремПокупатели.Покупатель=ВремАвтомобили.Покупатель)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ВремПоследнийЗаказНаряд
+
  ВремПоследнийЗаказНаряд
ПО(ВремПокупатели.Покупатель=ВремПоследнийЗаказНаряд.Покупатель)
+
  ПО(ВремПокупатели.Покупатель=ВремПоследнийЗаказНаряд.Покупатель)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ВремБонусы
+
  ВремБонусы
ПО(ВремПокупатели.Покупатель=ВремБонусы.Покупатель)
+
  ПО(ВремПокупатели.Покупатель=ВремБонусы.Покупатель)
 
УПОРЯДОЧИТЬ ПО
 
УПОРЯДОЧИТЬ ПО
ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Дата, ДАТАВРЕМЯ(1, 1, 1))
+
  ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Дата, ДАТАВРЕМЯ(1, 1, 1))

Текущая версия на 15:49, 9 июля 2019

ВЫБРАТЬ

 Покупатели.Покупатель.Код КАК Код,
 Покупатели.Покупатель,
 ВЫРАЗИТЬ(Покупатели.СуммаОплат КАК ЧИСЛО(10)) КАК СуммаОплат

ПОМЕСТИТЬ ВремПокупатели ИЗ

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

ГДЕ

  ДокЗаявкаНаРемонт.Ссылка IS NULL
  И ДокЗаказНаряд.Ссылка IS NULL
  И ДокЗаказПокупателя.Ссылка IS NULL
  И ДокРеализацияТоваров.Ссылка IS NULL;

ВЫБРАТЬ

 ВремПокупатели.Покупатель,
 РегСвКИ.Вид,
 РегСвКИ.Представление

ПОМЕСТИТЬ ВремКИ ИЗ

 ВремПокупатели
 СОЕДИНЕНИЕ
 РегистрСведений.КонтактнаяИнформация КАК РегСвКИ
 ПО( ВремПокупатели.Покупатель=РегСвКИ.Объект
     И РегСвКИ.Тип=ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) )

ГДЕ

 ПОДСТРОКА(РегСвКИ.Представление, 10, 1)<>"";

ВЫБРАТЬ

   КИ1.Покупатель,
   КИ1.Вид,
   КОЛИЧЕСТВО(*) КАК ПорядковыйНомер

ПОМЕСТИТЬ ВремКИНомер ИЗ

   ВремКИ КАК КИ1
   СОЕДИНЕНИЕ
   ВремКИ КАК КИ2
   ПО( КИ1.Покупатель=КИ2.ПОкупатель
       И КИ1.Вид>=КИ2.Вид )

СГРУППИРОВАТЬ ПО

   КИ1.Покупатель,
   КИ1.Вид;

ВЫБРАТЬ

   ВремКИ.Покупатель,
   ВремКИНомер.ПорядковыйНомер,
   МАКСИМУМ(ВремКИ.Представление) КАК Представление

ПОМЕСТИТЬ ВремНомераТелефона ИЗ

   ВремКИ
   СОЕДИНЕНИЕ
   ВремКИНомер
   ПО( ВремКИ.Покупатель=ВремКИНомер.Покупатель
       И ВремКИ.Вид=ВремКИНомер.Вид )

СГРУППИРОВАТЬ ПО

   ВремКИ.Покупатель,
   ВремКИНомер.ПорядковыйНомер;

ВЫБРАТЬ

   ВремПокупатели.Код,
   ВремПокупатели.Покупатель,
   ISNULL(НомераТелефона1.Представление, "")+", "+ISNULL(НомераТелефона2.Представление, "")+", "+ISNULL(НомераТелефона3.Представление, "") КАК НомераТелефона,
   ВремПокупатели.СуммаОплат

ПОМЕСТИТЬ ВремТелефоны ИЗ

   ВремПокупатели
   ЛЕВОЕ СОЕДИНЕНИЕ
   ВремНомераТелефона КАК НомераТелефона1
   ПО(ВремПокупатели.Покупатель=НомераТелефона1.Покупатель
      И НомераТелефона1.ПорядковыйНомер=1)
   ЛЕВОЕ СОЕДИНЕНИЕ
   ВремНомераТелефона КАК НомераТелефона2
   ПО(ВремПокупатели.Покупатель=НомераТелефона2.Покупатель
      И НомераТелефона2.ПорядковыйНомер=2)
   ЛЕВОЕ СОЕДИНЕНИЕ
   ВремНомераТелефона КАК НомераТелефона3
   ПО(ВремПокупатели.Покупатель=НомераТелефона3.Покупатель
      И НомераТелефона3.ПорядковыйНомер=3);

ВЫБРАТЬ

 ВремПокупатели.Покупатель,
 МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата

ПОМЕСТИТЬ ВремДатаПоследнегоЗаказНаряда ИЗ

 ВремПокупатели
 СОЕДИНЕНИЕ
 Документ.ЗаказНаряд КАК ДокЗаказНаряд
 ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
     ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)

СГРУППИРОВАТЬ ПО

 ВремПокупатели.Покупатель;

ВЫБРАТЬ

 ВремПокупатели.Покупатель,
 МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата

ПОМЕСТИТЬ ВремДатаПредыдущегоЗаказНаряда ИЗ

 ВремПокупатели
 СОЕДИНЕНИЕ
 Документ.ЗаказНаряд КАК ДокЗаказНаряд
 ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
     ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
     И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
  ЛЕВОЕ СОЕДИНЕНИЕ
  ВремДатаПоследнегоЗаказНаряда
  ПО(ВремПокупатели.Покупатель=ВремДатаПоследнегоЗаказНаряда.Покупатель
     И ДокЗаказНаряд.Дата=ВремДатаПоследнегоЗаказНаряда.Дата)

ГДЕ

  ВремДатаПоследнегоЗаказНаряда.Покупатель IS NULL	

СГРУППИРОВАТЬ ПО

  ВремПокупатели.Покупатель;

ВЫБРАТЬ

  ВремДатаПоследнегоЗаказНаряда.Покупатель,
  МАКСИМУМ(ДокЗаказНаряд.Ссылка) КАК ЗаказНаряд

ПОМЕСТИТЬ ВремПоследнийЗаказНаряд ИЗ

  ВремДатаПоследнегоЗаказНаряда
  СОЕДИНЕНИЕ
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
  ПО((ВремДатаПоследнегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Заказчик
      ИЛИ ВремДатаПоследнегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Контрагент)
     И ВремДатаПоследнегоЗаказНаряда.Дата=ДокЗаказНаряд.Дата)

СГРУППИРОВАТЬ ПО

  ВремДатаПоследнегоЗаказНаряда.Покупатель;

ВЫБРАТЬ

  ВремДатаПредыдущегоЗаказНаряда.Покупатель,
  МАКСИМУМ(ДокЗаказНаряд.Ссылка) КАК ЗаказНаряд

ПОМЕСТИТЬ ВремПрерыдущийЗаказНаряд ИЗ

 ВремДатаПредыдущегоЗаказНаряда
 СОЕДИНЕНИЕ
 Документ.ЗаказНаряд КАК ДокЗаказНаряд
 ПО((ВремДатаПредыдущегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Заказчик
     ИЛИ ВремДатаПредыдущегоЗаказНаряда.Покупатель=ДокЗаказНаряд.Контрагент)
    И ВремДатаПредыдущегоЗаказНаряда.Дата=ДокЗаказНаряд.Дата)

СГРУППИРОВАТЬ ПО

 ВремДатаПредыдущегоЗаказНаряда.Покупатель;

ВЫБРАТЬ

 ВремПокупатели.Покупатель,
 МАКСИМУМ(РегСвАвтомобилиСрезПоследних.Автомобиль) КАК Автомобиль

ПОМЕСТИТЬ ВремАвтомобили ИЗ

 ВремПокупатели
 СОЕДИНЕНИЕ
 РегистрСведений.Автомобили.СрезПоследних(, ВидЗначения=ЗНАЧЕНИЕ(Перечисление.ДополнительнаяИнформацияАвтомобилей.Хозяин)) КАК РегСвАвтомобилиСрезПоследних
 ПО(ВремПокупатели.Покупатель=РегСвАвтомобилиСрезПоследних.Значение)

СГРУППИРОВАТЬ ПО

 ВремПокупатели.Покупатель;

ВЫБРАТЬ

 ВремПокупатели.Покупатель,
 СУММА(ISNULL(РегСвБонусыСтандартныеОбороты.КоличествоОборот, 0)) КАК Стандартные,
 СУММА(ISNULL(РегСвБонусыПремиумОбороты.КоличествоОборот, 0)) КАК Премиум

ПОМЕСТИТЬ ВремБонусы ИЗ

 ВремПокупатели
 СОЕДИНЕНИЕ	
 РегистрСведений._5с_ВладельцыБонусныхСчетов КАК РегСвВладельцыБонусныхСчетов
 ПО(ВремПокупатели.Покупатель=РегСвВладельцыБонусныхСчетов.Контрагент)
 ЛЕВОЕ СОЕДИНЕНИЕ
 Справочник._5с_ТипыБонусов КАК СпрТипыБонусовСтандартные
 ПО(СпрТипыБонусовСтандартные.Код="000000001")
 ЛЕВОЕ СОЕДИНЕНИЕ
 Справочник._5с_ТипыБонусов КАК СпрТипыБонусовПремиум
 ПО(СпрТипыБонусовПремиум.Код="000000002")
 ЛЕВОЕ СОЕДИНЕНИЕ
 РегистрНакопления._5с_Бонусы.Обороты() КАК РегСвБонусыСтандартныеОбороты
 ПО(РегСвВладельцыБонусныхСчетов.БонусныйСчет=РегСвБонусыСтандартныеОбороты.БонусныйСчет
    И СпрТипыБонусовСтандартные.Ссылка=РегСвБонусыСтандартныеОбороты.ТипБонуса)
 ЛЕВОЕ СОЕДИНЕНИЕ
 РегистрНакопления._5с_Бонусы.Обороты() КАК РегСвБонусыПремиумОбороты
 ПО(РегСвВладельцыБонусныхСчетов.БонусныйСчет=РегСвБонусыПремиумОбороты.БонусныйСчет
    И СпрТипыБонусовПремиум.Ссылка=РегСвБонусыПремиумОбороты.ТипБонуса)

СГРУППИРОВАТЬ ПО

 ВремПокупатели.Покупатель;

ВЫБРАТЬ

 ВремПокупатели.Покупатель,
 ВремПокупатели.Покупатель.Наименование КАК ФИО,
 ISNULL(ВремТелефоны.НомераТелефона, "") КАК НомерТелефона,
 ISNULL(ВремАвтомобили.Автомобиль.Модель.Родитель.Наименование, "")+" / "+ ISNULL(ВремАвтомобили.Автомобиль.Модель.Наименование, "") КАК МаркаМодель,
 ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Дата, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаКрайнегоЗаказНаряда,
 ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Номер, "") КАК НомерКрайнегоЗаказНаряда,
 ISNULL(ВремБонусы.Стандартные, 0) КАК КоличествоСтандартныхБонусов,
 ISNULL(ВремБонусы.Премиум, 0) КАК КоличествоПремиумБонусов

ИЗ

 ВремПокупатели
 ЛЕВОЕ СОЕДИНЕНИЕ
 ВремТелефоны
 ПО(ВремПокупатели.Покупатель=ВремТелефоны.Покупатель)	
 ЛЕВОЕ СОЕДИНЕНИЕ
 ВремАвтомобили
 ПО(ВремПокупатели.Покупатель=ВремАвтомобили.Покупатель)
 ЛЕВОЕ СОЕДИНЕНИЕ
 ВремПоследнийЗаказНаряд
 ПО(ВремПокупатели.Покупатель=ВремПоследнийЗаказНаряд.Покупатель)
 ЛЕВОЕ СОЕДИНЕНИЕ
 ВремБонусы
 ПО(ВремПокупатели.Покупатель=ВремБонусы.Покупатель)

УПОРЯДОЧИТЬ ПО

 ISNULL(ВремПоследнийЗаказНаряд.ЗаказНаряд.Дата, ДАТАВРЕМЯ(1, 1, 1))