Имя: Пароль:
1C
1С v8
Помогите с творением (запрос) перемудрил я что то
0 BigShmax
 
28.03.14
16:04
Задача  вывести  контрагент - его контактные данные и далее контактных лиц с контактными данными. все это за период из заказов покупателей

в консоли сляпал отчет, вроде работает.  во первых : чую с отчетом что то перемудрил. во вторых : не могу заставить работать его в СКД  ругается.  даже если ставлю просто выводить одно поле Контрагент  - говорит поле Контрагент не найдено.


Запрос

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

СГРУППИРОВАТЬ ПО
    ЗаказыПокупателей.ДоговорКонтрагента.Владелец
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагент.ДоговорКонтрагентаВладелец,
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление
ПОМЕСТИТЬ КонтДанныеКонтрагента
ИЗ
    Контрагент КАК Контрагент
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагент.ДоговорКонтрагентаВладелец = КонтактнаяИнформация.Объект
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтДанныеКонтрагента.Объект,
    ВЫРАЗИТЬ(КонтДанныеКонтрагента.Представление КАК СТРОКА(25)) КАК Телефон,
    ВЫРАЗИТЬ("" КАК СТРОКА(25)) КАК ЭлПочта,
    ВЫРАЗИТЬ("" КАК СТРОКА(100)) КАК Адрес,
    NULL КАК КонтактноеЛицо
ПОМЕСТИТЬ СуммаЗапросовКонтДанныхКонртагентов
ИЗ
    КонтДанныеКонтрагента КАК КонтДанныеКонтрагента
ГДЕ
    КонтДанныеКонтрагента.Тип = &ТипТелефон

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    КонтДанныеКонтрагента.Объект,
    ВЫРАЗИТЬ("" КАК СТРОКА(25)),
    ВЫРАЗИТЬ(КонтДанныеКонтрагента.Представление КАК СТРОКА(25)),
    ВЫРАЗИТЬ("" КАК СТРОКА(100)),
    NULL
ИЗ
    КонтДанныеКонтрагента КАК КонтДанныеКонтрагента
ГДЕ
    КонтДанныеКонтрагента.Тип = &ТипЭлПочта

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    КонтДанныеКонтрагента.Объект,
    ВЫРАЗИТЬ("" КАК СТРОКА(25)),
    ВЫРАЗИТЬ("" КАК СТРОКА(25)),
    ВЫРАЗИТЬ(КонтДанныеКонтрагента.Представление КАК СТРОКА(100)),
    NULL
ИЗ
    КонтДанныеКонтрагента КАК КонтДанныеКонтрагента
ГДЕ
    КонтДанныеКонтрагента.Тип = &ТипАдрес
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СуммаЗапросовКонтДанныхКонртагентов.Объект КАК Контрагент,
    МАКСИМУМ(СуммаЗапросовКонтДанныхКонртагентов.Телефон) КАК Телефон,
    МАКСИМУМ(СуммаЗапросовКонтДанныхКонртагентов.ЭлПочта) КАК ЭлПочта,
    МАКСИМУМ(СуммаЗапросовКонтДанныхКонртагентов.Адрес) КАК Адрес,
    СуммаЗапросовКонтДанныхКонртагентов.КонтактноеЛицо
ПОМЕСТИТЬ КонтактныеДанныеКонтрагентаРезультат
ИЗ
    СуммаЗапросовКонтДанныхКонртагентов КАК СуммаЗапросовКонтДанныхКонртагентов

СГРУППИРОВАТЬ ПО
    СуммаЗапросовКонтДанныхКонртагентов.Объект,
    СуммаЗапросовКонтДанныхКонртагентов.КонтактноеЛицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтактныеЛицаКонтрагентов.Ссылка,
    КонтактныеЛицаКонтрагентов.Должность,
    Контрагент.ДоговорКонтрагентаВладелец,
    КонтактныеЛицаКонтрагентов.Владелец
ПОМЕСТИТЬ КонтактныеЛица
ИЗ
    Контрагент КАК Контрагент
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
        ПО Контрагент.ДоговорКонтрагентаВладелец = КонтактныеЛицаКонтрагентов.Владелец
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление КАК Представление,
    КонтактныеЛица.Ссылка,
    КонтактныеЛица.Владелец КАК Контрагент
ПОМЕСТИТЬ КонтДанныеКонтактныхЛицКонтрагента
ИЗ
    КонтактныеЛица КАК КонтактныеЛица
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО КонтактныеЛица.Ссылка = КонтактнаяИнформация.Объект
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтДанныеКонтактныхЛицКонтрагента.Объект,
    ВЫРАЗИТЬ(КонтДанныеКонтактныхЛицКонтрагента.Представление КАК СТРОКА(25)) КАК Телефон,
    ВЫРАЗИТЬ("" КАК СТРОКА(25)) КАК ЭлПочта,
    ВЫРАЗИТЬ("" КАК СТРОКА(100)) КАК Адрес,
    КонтДанныеКонтактныхЛицКонтрагента.Контрагент
ПОМЕСТИТЬ КонтДанныеКонтактныхЛицКонтрагентаСумма
ИЗ
    КонтДанныеКонтактныхЛицКонтрагента КАК КонтДанныеКонтактныхЛицКонтрагента
ГДЕ
    КонтДанныеКонтактныхЛицКонтрагента.Тип = &ТипТелефон

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    КонтДанныеКонтактныхЛицКонтрагента.Объект,
    ВЫРАЗИТЬ("" КАК СТРОКА(25)),
    ВЫРАЗИТЬ(КонтДанныеКонтактныхЛицКонтрагента.Представление КАК СТРОКА(25)),
    ВЫРАЗИТЬ("" КАК СТРОКА(100)),
    КонтДанныеКонтактныхЛицКонтрагента.Контрагент
ИЗ
    КонтДанныеКонтактныхЛицКонтрагента КАК КонтДанныеКонтактныхЛицКонтрагента
ГДЕ
    КонтДанныеКонтактныхЛицКонтрагента.Тип = &ТипЭлПочта

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    КонтДанныеКонтактныхЛицКонтрагента.Объект,
    ВЫРАЗИТЬ("" КАК СТРОКА(25)),
    ВЫРАЗИТЬ("" КАК СТРОКА(25)),
    ВЫРАЗИТЬ(КонтДанныеКонтактныхЛицКонтрагента.Представление КАК СТРОКА(100)),
    КонтДанныеКонтактныхЛицКонтрагента.Контрагент
ИЗ
    КонтДанныеКонтактныхЛицКонтрагента КАК КонтДанныеКонтактныхЛицКонтрагента
ГДЕ
    КонтДанныеКонтактныхЛицКонтрагента.Тип = &ТипАдрес
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КонтДанныеКонтактныхЛицКонтрагентаСумма.Объект КАК КонтактноеЛицо,
    МАКСИМУМ(КонтДанныеКонтактныхЛицКонтрагентаСумма.Телефон) КАК Телефон,
    МАКСИМУМ(КонтДанныеКонтактныхЛицКонтрагентаСумма.ЭлПочта) КАК ЭлПочта,
    МАКСИМУМ(КонтДанныеКонтактныхЛицКонтрагентаСумма.Адрес) КАК Адрес,
    КонтДанныеКонтактныхЛицКонтрагентаСумма.Контрагент
ПОМЕСТИТЬ КонтДанныеКонтактныхЛицКонтрагентаРезультат
ИЗ
    КонтДанныеКонтактныхЛицКонтрагентаСумма КАК КонтДанныеКонтактныхЛицКонтрагентаСумма

СГРУППИРОВАТЬ ПО
    КонтДанныеКонтактныхЛицКонтрагентаСумма.Объект,
    КонтДанныеКонтактныхЛицКонтрагентаСумма.Контрагент
1 Зойч
 
28.03.14
16:17
в последнем запросе делаешь много соединений вида
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагент.ДоговорКонтрагентаВладелец = КонтактнаяИнформация.Объект
И КонтактнаяИнформация.Тип = &Тип1
И КонтактнаяИнформация.Тип = &Вид1
2 BigShmax
 
28.03.14
17:31
а почему СКД  не ест запрос?
3 DmitriyDI
 
28.03.14
17:38
(2) мне кажется запрос очень трудно так на вскидку прочитать
4 BigShmax
 
28.03.14
17:44
так пусть читает последний  и компанует :-)
5 BigShmax
 
28.03.14
17:44
можно вложенных накорячить конечно. мож лучше переварит
6 a_alenkin
 
28.03.14
17:50
ВЫБРАТЬ
    ЗаказыПокупателей.ДоговорКонтрагента.Владелец
ПОМЕСТИТЬ Контрагент

а чо - в заказе покупателя нет реквизита контрагента?
7 BigShmax
 
28.03.14
18:06
(6) есть, заменю. не увидел разницы кол-во обращений через точку одинаково
8 BigShmax
 
28.03.14
18:08
инфостартовские мани закончились :-(   есть там пара - тройка  таких решений.  не  использовать так хоть посмотреть бы как. в идеале  конечно получить результат самомтяотельно - ПАМАГИТЕ.
9 МихаилМ
 
28.03.14
19:44
(8)
купите мани. на ифс была ветка с предложением продать мани