Имя: Пароль:
1C
1С v8
Выбор контактной информации запросом
0 Kalina
 
08.06.17
13:34
Здравствуйте, вот такой запрос
ТекстЗапроса = "ВЫБРАТЬ
                       |    ВложеныйЗапрос.Контрагент КАК Контрагент1,
                       |    ВложеныйЗапрос.КоличествоОборот КАК Количество,
                       |    ВложеныйЗапрос.СтоимостьОборот КАК Стоимость,
                       |    ВложеныйЗапрос.Адрес КАК Адрес1,
                       |    ВложеныйЗапрос.Почта КАК Почта1,
                       |    ВложеныйЗапрос.Телефон КАК Телефон1
                       |ИЗ
                       |    (ВЫБРАТЬ
                       |    ПродажиОбороты.Контрагент КАК Контрагент,
                       |    ПродажиОбороты.Номенклатура,
                       |    ПродажиОбороты.КоличествоОборот,
                       |    ПродажиОбороты.СтоимостьОборот,
                       |        ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(50)) КАК Адрес,
                       |        0 КАК Почта,
                       |        0 КАК Телефон
                       |    ИЗ
                       |    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Период, ) КАК ПродажиОбороты
                       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                       |        ПО ПродажиОбороты.Контрагент = КонтактнаяИнформация.Объект.Ссылка
                       |    ГДЕ
                       |        КонтактнаяИнформация.Тип = &ТипКААдрес
                       |        И КонтактнаяИнформация.Вид = &ВидКААдрес
                       |        И ПродажиОбороты.Номенклатура В ИЕРАРХИИ(&Номенклатура)
                       |        И ПродажиОбороты.КоличествоОборот >= &КоличествоОборот
                       |    
                       |    ОБЪЕДИНИТЬ
                       |    
                       |    ВЫБРАТЬ
                       |    ПродажиОбороты.Контрагент КАК Контрагент,
                       |    ПродажиОбороты.Номенклатура,
                       |    ПродажиОбороты.КоличествоОборот,
                       |    ПродажиОбороты.СтоимостьОборот,
                       |        0 КАК Адрес,
                       |        ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(30)) КАК Почта,
                       |        0 КАК Телефон
                       |    ИЗ
                       |    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Период, ) КАК ПродажиОбороты
                       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                       |        ПО ПродажиОбороты.Контрагент = КонтактнаяИнформация.Объект.Ссылка
                       |    ГДЕ
                       |        КонтактнаяИнформация.Тип = &ТипКАПочта
                       |        И КонтактнаяИнформация.Вид = &ВидКАПочта
                       |        И ПродажиОбороты.Номенклатура В ИЕРАРХИИ(&Номенклатура)
                       |        И ПродажиОбороты.КоличествоОборот >= &КоличествоОборот
                       |                
                       |    ОБЪЕДИНИТЬ
                       |    
                       |    ВЫБРАТЬ
                       |    ПродажиОбороты.Контрагент КАК Контрагент,
                       |    ПродажиОбороты.Номенклатура,
                       |    ПродажиОбороты.КоличествоОборот,
                       |    ПродажиОбороты.СтоимостьОборот,
                       |        0 КАК Адрес,
                       |        0 КАК Почта,
                       |        ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(10)) КАК Телефон
                       |    ИЗ
                       |    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Период, ) КАК ПродажиОбороты
                       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                       |        ПО ПродажиОбороты.Контрагент = КонтактнаяИнформация.Объект.Ссылка
                       |    ГДЕ
                       |        КонтактнаяИнформация.Тип = &ТипКАТелефон
                       |        И КонтактнаяИнформация.Вид = &ВидКАТелефон
                       |        И ПродажиОбороты.Номенклатура В ИЕРАРХИИ(&Номенклатура)
                       |        И ПродажиОбороты.КоличествоОборот >= &КоличествоОборот) КАК ВложеныйЗапрос
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    ВложеныйЗапрос.Контрагент,
                       |    ВложеныйЗапрос.КоличествоОборот,
                       |    ВложеныйЗапрос.СтоимостьОборот,
                       |    ВложеныйЗапрос.Адрес,
                       |    ВложеныйЗапрос.Почта,
                       |    ВложеныйЗапрос.Телефон
                       |
                       |УПОРЯДОЧИТЬ ПО
                       |    Контрагент1
                       |ИТОГИ
                       |    СУММА(Количество),
                       |    СУММА(Стоимость)
                       |ПО
                       |    Контрагент1 ИЕРАРХИЯ
                       |АВТОУПОРЯДОЧИВАНИЕ";
для каждого вида контактной информации создается отдельная строка
мне нужно чтобы эти поля Адрес, Почта, Телефон выводились в одной строке.
Буду признателен за подробный разжеваный ответ :)
1 Лефмихалыч
 
08.06.17
13:35
объединить все
2 Лефмихалыч
 
08.06.17
13:36
(1) - отставить!
Если нужны отдельные колонки, то делай соединение, а не объединение
3 Kalina
 
08.06.17
13:38
(2) а что с чем соединять ?
4 Лефмихалыч
 
08.06.17
13:40
(3) то, к чему нужно пристегнуть конатктную информацию, с контактной информацией.
Табличную часть надо будет присоединить столько раз, сколько должно быть колонок. В условиях соединения каждый раз ставишь разные отборы на вид КИ.
5 Kalina
 
08.06.17
13:44
(4) может схемку, аль чертеж
не пойму как несколько раз соединять :(
6 Лефмихалыч
 
08.06.17
13:47
(5) да пожалуйста!

ВЫБРАТЬ
Спр.Ссылка,
Телефон.Представление как Телефон,
Электропочта.Представление как Электропочта
ИЗ Справочник.Контрагенты как Спр
Левое Соединение Справочник.Контрагенты.КонтактнаяИнформация как телефон
ПО Телефон.Ссылка = Спр.Ссылка и Телефон.Вид =&ВидКИ_Телефон
Левое Соединение Справочник.Контрагенты.КонтактнаяИнформация как Электропочта
ПО Электропочта.Ссылка = Спр.Ссылка и Телефон.Вид =&ВидКИ_Электропочта



легче стало?
7 Лефмихалыч
 
08.06.17
13:48
несколько раз соединить - точно так же, как один раз, только - несколько
8 Kalina
 
08.06.17
14:15
(6) гораздо, гораздо легче,
спасибо друг, даже не подозревал что можно так извратиться, сейчас еще группировку попробую доработать, что-то ругается на строковые поля
9 Лефмихалыч
 
08.06.17
14:16
(8) на здоровье.
группировка по неограниченным строкам не возможна
10 Kalina
 
08.06.17
17:32
(9) абсолютно согласен, но если очень хочется , или очень надо, то вот что получилось
                       |    ВЫРАЗИТЬ(Адрес.Представление КАК СТРОКА(100)) КАК Адрес1,
                       |    ВЫРАЗИТЬ(Почта.Представление КАК СТРОКА(30)) КАК Почта1,
                       |    ВЫРАЗИТЬ(Телефон.Представление КАК СТРОКА(20)) КАК Телефон1
Спасибо, очень выручил :)
11 Лефмихалыч
 
08.06.17
17:36
(10) вообще-то я имел в виду "перестань группировать по строкам, это тупо и отвратительно"
12 Kalina
 
08.06.17
17:41
(11) Да они мне не нужны вовсе, просто когда группирую по Контрагенту, автоматом добавляет все поля
                       |СГРУППИРОВАТЬ ПО
                       |    ВложеныйЗапрос.Контрагент,
                       |    ВложеныйЗапрос.КоличествоОборот,
                       |    ВложеныйЗапрос.СтоимостьОборот,
                       |    ВложеныйЗапрос.Адрес,
                       |    ВложеныйЗапрос.Почта,
                       |    ВложеныйЗапрос.Телефон

не знаю почему так, но сие есть
13 D_E_S_131
 
08.06.17
17:46
По идее, если не выбирать из оборотов Номенклатуру, а только Контрагентов, то уже суммы придут сгруппированными.
14 Лефмихалыч
 
08.06.17
17:48
(12) удали группировки вообще