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

Материал из База знаний 5S AUTO
Перейти к навигации Перейти к поиску
 
(не показано 9 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
ВЫБРАТЬ
 
ВЫБРАТЬ
    Покупатели.Покупатель.Код КАК Код,
+
  Покупатели.Покупатель.Код КАК Код,
    Покупатели.Покупатель,
+
  Покупатели.Покупатель,
    ВЫРАЗИТЬ(Покупатели.СуммаОплат КАК ЧИСЛО(10)) КАК СуммаОплат
+
  ВЫРАЗИТЬ(Покупатели.СуммаОплат КАК ЧИСЛО(10)) КАК СуммаОплат
 
 
 
ПОМЕСТИТЬ ВремПокупатели
 
ПОМЕСТИТЬ ВремПокупатели
 
 
ИЗ
 
ИЗ
( ВЫБРАТЬ<br/>
+
  (ВЫБРАТЬ
 
+
    Общая.Покупатель,
    Общая.Покупатель,
+
    СУММА(Общая.Сумма) КАК СуммаОплат
    СУММА(Общая.Сумма) КАК СуммаОплат
+
  ИЗ
 
+
    (ВЫБРАТЬ
ИЗ
+
        РегНакПродажиОбороты.Покупатель,
    ( ВЫБРАТЬ
+
        РегНакПродажиОбороты.ДокументПродажи,
 
+
        СУММА(РегНакПродажиОбороты.СуммаОборот) КАК Сумма
        РегНакПродажиОбороты.Покупатель,
+
      ИЗ
        РегНакПродажиОбороты.ДокументПродажи,
+
        РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, ЗАПИСЬ, ) КАК РегНакПродажиОбороты
        СУММА(РегНакПродажиОбороты.СуммаОборот) КАК Сумма
+
      ГДЕ
 
+
        РегНакПродажиОбороты.Покупатель.ФормаСобственности=ЗНАЧЕНИЕ(Перечисление.ФормыСобственности.ЧастноеЛицо)
    ИЗ
+
        И РегНакПродажиОбороты.Покупатель<>ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
 
+
        И (РегНакПродажиОбороты.ДокументПродажи.ПодразделениеКомпании=&Подразделение
        РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, ЗАПИСЬ, ) КАК РегНакПродажиОбороты
+
          ИЛИ &Подразделение=ЗНАЧЕНИЕ(Справочник.ПодразделенияКомпании.ПустаяСсылка))
 
+
      СГРУППИРОВАТЬ ПО
    ГДЕ
+
        РегНакПродажиОбороты.Покупатель,
РегНакПродажиОбороты.Покупатель.ФормаСобственности=ЗНАЧЕНИЕ(Перечисление.ФормыСобственности.ЧастноеЛицо)
+
        РегНакПродажиОбороты.ДокументПродажи
 
+
  ) КАК Общая
И РегНакПродажиОбороты.Покупатель<>ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
+
  СГРУППИРОВАТЬ ПО
 
+
      Общая.Покупатель
    СГРУППИРОВАТЬ ПО
+
  ИМЕЮЩИЕ
 
+
      СУММА(Общая.Сумма)>=&МинимальнаяСумма
        РегНакПродажиОбороты.Покупатель,
+
  ) КАК Покупатели
 
+
  ЛЕВОЕ СОЕДИНЕНИЕ
        РегНакПродажиОбороты.ДокументПродажи
+
  Документ.ЗаявкаНаРемонт КАК ДокЗаявкаНаРемонт
 
+
  ПО(Покупатели.Покупатель=ДокЗаявкаНаРемонт.Контрагент
    ) КАК Общая
+
      И ДокЗаявкаНаРемонт.Дата>&КонецПериода)
 
+
  ЛЕВОЕ СОЕДИНЕНИЕ
СГРУППИРОВАТЬ ПО
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
    Общая.Покупатель
+
  ПО((Покупатели.Покупатель=ДокЗаказНаряд.Контрагент
ИМЕЮЩИЕ
+
      ИЛИ Покупатели.Покупатель=ДокЗаказНаряд.Заказчик)
    СУММА(Общая.Сумма)>=&МинимальнаяСумма
+
      И ДокЗаказНаряд.Дата>&КонецПериода)
) КАК Покупатели
+
  ЛЕВОЕ СОЕДИНЕНИЕ
 
+
  Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ПО(Покупатели.Покупатель=ДокЗаказПокупателя.Контрагент
 
+
      И ДокЗаказПокупателя.Дата>&КонецПериода)
Документ.ЗаявкаНаРемонт КАК ДокЗаявкаНаРемонт
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ПО(Покупатели.Покупатель=ДокЗаявкаНаРемонт.Контрагент
+
  Документ.РеализацияТоваров КАК ДокРеализацияТоваров
  И ДокЗаявкаНаРемонт.Дата>&КонецПериода)
+
  ПО(Покупатели.Покупатель=ДокРеализацияТоваров.Контрагент
 
+
      И ДокРеализацияТоваров.Дата>&КонецПериода)
ЛЕВОЕ СОЕДИНЕНИЕ
 
 
 
Документ.ЗаказНаряд КАК ДокЗаказНаряд
 
ПО((Покупатели.Покупатель=ДокЗаказНаряд.Контрагент
 
    ИЛИ Покупатели.Покупатель=ДокЗаказНаряд.Заказчик)
 
  И ДокЗаказНаряд.Дата>&КонецПериода)
 
 
 
ЛЕВОЕ СОЕДИНЕНИЕ
 
 
 
Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
 
ПО(Покупатели.Покупатель=ДокЗаказПокупателя.Контрагент
 
  И ДокЗаказПокупателя.Дата>&КонецПериода)
 
 
 
ЛЕВОЕ СОЕДИНЕНИЕ
 
 
 
Документ.РеализацияТоваров КАК ДокРеализацияТоваров
 
ПО(Покупатели.Покупатель=ДокРеализацияТоваров.Контрагент
 
  И ДокРеализацияТоваров.Дата>&КонецПериода)
 
 
 
 
ГДЕ
 
ГДЕ
 
+
  ДокЗаявкаНаРемонт.Ссылка IS NULL
ДокЗаявкаНаРемонт.Ссылка IS NULL
+
  И ДокЗаказНаряд.Ссылка IS NULL
И ДокЗаказНаряд.Ссылка IS NULL
+
  И ДокЗаказПокупателя.Ссылка IS NULL
И ДокЗаказПокупателя.Ссылка IS NULL
+
  И ДокРеализацияТоваров.Ссылка IS NULL;
И ДокРеализацияТоваров.Ссылка IS NULL
 
;
 
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
    ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
    РегСвКИ.Вид,
+
  РегСвКИ.Вид,
    РегСвКИ.Представление
+
  РегСвКИ.Представление
 
ПОМЕСТИТЬ ВремКИ
 
ПОМЕСТИТЬ ВремКИ
 
ИЗ
 
ИЗ
    ВремПокупатели
+
  ВремПокупатели
    СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
    РегистрСведений.КонтактнаяИнформация КАК РегСвКИ
+
  РегистрСведений.КонтактнаяИнформация КАК РегСвКИ
    ПО( ВремПокупатели.Покупатель=РегСвКИ.Объект
+
  ПО( ВремПокупатели.Покупатель=РегСвКИ.Объект
        И РегСвКИ.Тип=ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) )
+
      И РегСвКИ.Тип=ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон) )
 
ГДЕ
 
ГДЕ
    ПОДСТРОКА(РегСвКИ.Представление, 10, 1)<>""
+
  ПОДСТРОКА(РегСвКИ.Представление, 10, 1)<>"";
;
 
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
Строка 103: Строка 79:
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
 
     КИ1.Покупатель,
 
     КИ1.Покупатель,
     КИ1.Вид
+
     КИ1.Вид;
;
 
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
Строка 119: Строка 94:
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
 
     ВремКИ.Покупатель,
 
     ВремКИ.Покупатель,
     ВремКИНомер.ПорядковыйНомер
+
     ВремКИНомер.ПорядковыйНомер;
;
 
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
Строка 141: Строка 115:
 
     ВремНомераТелефона КАК НомераТелефона3
 
     ВремНомераТелефона КАК НомераТелефона3
 
     ПО(ВремПокупатели.Покупатель=НомераТелефона3.Покупатель
 
     ПО(ВремПокупатели.Покупатель=НомераТелефона3.Покупатель
       И НомераТелефона3.ПорядковыйНомер=3)
+
       И НомераТелефона3.ПорядковыйНомер=3);
;
 
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
+
  МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
 
 
 
ПОМЕСТИТЬ ВремДатаПоследнегоЗаказНаряда
 
ПОМЕСТИТЬ ВремДатаПоследнегоЗаказНаряда
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
Документ.ЗаказНаряд КАК ДокЗаказНаряд
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
+
  ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
    ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
+
      ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
+
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
 
СГРУППИРОВАТЬ ПО
 
СГРУППИРОВАТЬ ПО
ВремПокупатели.Покупатель
+
  ВремПокупатели.Покупатель;
;
 
  
 
ВЫБРАТЬ
 
ВЫБРАТЬ
ВремПокупатели.Покупатель,
+
  ВремПокупатели.Покупатель,
МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
+
  МАКСИМУМ(ДокЗаказНаряд.Дата) КАК Дата
 
 
 
ПОМЕСТИТЬ ВремДатаПредыдущегоЗаказНаряда
 
ПОМЕСТИТЬ ВремДатаПредыдущегоЗаказНаряда
 
ИЗ
 
ИЗ
ВремПокупатели
+
  ВремПокупатели
СОЕДИНЕНИЕ
+
  СОЕДИНЕНИЕ
Документ.ЗаказНаряд КАК ДокЗаказНаряд
+
  Документ.ЗаказНаряд КАК ДокЗаказНаряд
ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
+
  ПО((ВремПокупатели.Покупатель=ДокЗаказНаряд.Заказчик
    ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
+
      ИЛИ ВремПокупатели.Покупатель=ДокЗаказНаряд.Контрагент)
    И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
+
      И ДокЗаказНаряд.ПометкаУдаления=ЛОЖЬ)
ЛЕВОЕ СОЕДИНЕНИЕ
+
  ЛЕВОЕ СОЕДИНЕНИЕ
ВремДатаПоследнегоЗаказНаряда
+
  ВремДатаПоследнегоЗаказНаряда
ПО(ВремПокупатели.Покупатель=ВремДатаПоследнегоЗаказНаряда.Покупатель
+
  ПО(ВремПокупатели.Покупатель=ВремДатаПоследнегоЗаказНаряда.Покупатель
  И ДокЗаказНаряд.Дата=ВремДатаПоследнегоЗаказНаряда.Дата)
+
      И ДокЗаказНаряд.Дата=ВремДатаПоследнегоЗаказНаряда.Дата)
 
ГДЕ
 
ГДЕ
ВремДатаПоследнегоЗаказНаряда.Покупатель 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))

Текущая версия на 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))