Имя: Пароль:
1C
 
Запрос к РС КонтактнаяИнформация.
,
0 vse_serjezno
 
16.02.15
10:27
Утро доброе.

Есть РС КонтактнаяИнформация.
С измерениями:
Объект - контрагент, Тип - тип конт.инфы(например Адрес эл.почты) и Значение - непосредственно инфа контрагента.
Т.е. по 1 контрагенту может быть несколько записей в РС, каждая с отдельным Типом.

Мне нужно выбрать записи с определенными, нужными мне, типами и получить их не в отдельных строках, а в одной, чтобы таблица была примерно следующая:

Контрагент    Эл.почта    Дом.адрес     Телефон
Петя        [email protected]    ул.Цветочная,5   712-34-56
1 vse_serjezno
 
16.02.15
10:30
неужели мне на каждый тип инфы нужно делать подзапрос?..
2 vse_serjezno
 
16.02.15
10:35
Или в одном запросе на каждый Тип инфы добавлять РС... :(
3 Ёпрст
 
16.02.15
10:35
нет
4 vse_serjezno
 
16.02.15
10:36
Или в одном запросе на каждый Тип инфы добавлять отдельно РС...:(
5 Ёпрст
 
16.02.15
10:36
тип в список и условие на него в месте присоединения + case в селект на тип
6 vse_serjezno
 
16.02.15
10:36
Как решить такую задачу оптимально?
7 Волшебник
 
модератор
16.02.15
10:36
На каждый тип информации нужно левое внешнее соединение
8 vse_serjezno
 
16.02.15
10:38
(7) вот я об этом в (4) писала... не уверена, что это правильно.
9 vse_serjezno
 
16.02.15
10:38
(5) вот это не поняла "+ case в селект на тип".
Можно по-русски?
10 Волшебник
 
модератор
16.02.15
10:40
(8) все так делают и не жужжат
11 vse_serjezno
 
16.02.15
10:42
(10) если нужно выбрать 7 типов Конт.инфы, все 7 раз РС в таблицы пихать?.. О_о
Я, конечно, так умею и делаю, но рассчитывала, что есть более изящный способ.
12 Остап Сулейманович
 
16.02.15
10:54
(11) Обещают в 8.3.6. Типа такого :
Выбрать
ЗНАЧЕНИЕ КАК ЭлектроннаяПочта КОГДА Тип = ЗНАЧЕНИЕ(....),
ЗНАЧЕНИЕ КАК Адрес КОГДА Тип = ЗНАЧЕНИЕ(....),
13 vse_serjezno
 
16.02.15
10:56
(12) Будем ждать :)
14 Fish
 
16.02.15
10:57
(13) А в типовых уже есть в общих модулях готовая функция.
15 vse_serjezno
 
16.02.15
10:58
(14) готовая функция для чего?..для конструктора запросов? О_о
16 Ёпрст
 
16.02.15
11:59
(9) выбор когда тип = ... тогда ..иначе нулл как значение1
    выбор когда тип = ...  тогда .. иначе нулл как значение 2
     ...
   из
     лквое соединение РС ... по (Тип в (&СписокТипов)
17 Поpyчик-4
 
16.02.15
12:44
(0) Держи образец.

ВЫБРАТЬ
    Организации.Ссылка,
    МАКСИМУМ(ВЫБОР
            КОГДА КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонОрганизации)
                ТОГДА КИ.Представление
            ИНАЧЕ NULL
        КОНЕЦ) КАК Телефон,
    МАКСИМУМ(ВЫБОР
            КОГДА КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресОрганизации)
                ТОГДА КИ.Представление
            ИНАЧЕ NULL
        КОНЕЦ) КАК ФактАдресОрганизации,
    МАКСИМУМ(ВЫБОР
            КОГДА КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресОрганизации)
                ТОГДА КИ.Представление
            ИНАЧЕ NULL
        КОНЕЦ) КАК ЮрАдресОрганизации
ИЗ
    Справочник.Организации КАК Организации
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК КИ
        ПО Организации.Ссылка = КИ.Ссылка
            И (КИ.Вид В (&Вид))
            И (Организации.Ссылка = &Ссылка)

СГРУППИРОВАТЬ ПО
    Организации.Ссылка
Ошибка? Это не ошибка, это системная функция.