Имя: Пароль:
1C
1С v8
[Решено] Помогите с запросом по таб. части справочника.
0 greenif
 
04.10.14
13:58
Здравствуйте!

Помогите пожалуйста с запросом.
Есть Справочник КонтакныеЛица и у него табличная часть контакты.

Мне нужен запрос с группировками, верхняя группировка "КонтактноеЛицо" вложенная группировка "Контакт".

Конструктор запросов говорит, что "Нельзя группировать по внешней таблице при наличии вложенных таблиц".
1 greenif
 
04.10.14
14:06
Сам решил.

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    КонтактныеЛица.Наименование,
        |    КонтактныеЛица.ФИО,
        |    КонтактныеЛица.Должность,
        |    КонтактныеЛица.Контакты.(
        |        ВидКонтакта,
        |        Контакт
        |    )
        |ИЗ
        |    Справочник.КонтактныеЛица КАК КонтактныеЛица
        |ГДЕ
        |    КонтактныеЛица.Владелец = &Контрагент";
        //|    И КонтактныеЛица.Контакты.ВидКонтакта = &ВидКонтакта";
        
    Запрос.УстановитьПараметр("Контрагент",  СтрокаДерева.Контрагент);
    Запрос.УстановитьПараметр("ВидКонтакта", Перечисления.ВидыКонтактов.Тел);

    ВыборкаКонтактныеЛица = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаКонтактныеЛица.Следующий() Цикл
        СтрокаКонтактногоЛица = СтрокаДерева.Строки.Добавить();
        СтрокаКонтактногоЛица.Наименование = ВыборкаКонтактныеЛица.Наименование;
        Если СтрДлина(ВыборкаКонтактныеЛица.Должность) > 3 Тогда
              СтрокаКонтактногоЛица.Наименование =  СтрокаКонтактногоЛица.Наименование + " (" + ВыборкаКонтактныеЛица.Должность + ")";
        КонецЕсли;
        СтрокаТелефон = СтрокаКонтактногоЛица.Строки.Добавить();
        
        ВыборкаТелефонов = ВыборкаКонтактныеЛица.Контакты.Выбрать();
        Пока ВыборкаТелефонов.Следующий() Цикл
            Если ВыборкаТелефонов.ВидКонтакта = Перечисления.ВидыКонтактов.Тел Тогда
                Сообщить(ВыборкаТелефонов.Контакт);
            КонецЕсли;
        КонецЦикла;
        
    КонецЦикла;


Спасибо
2 RomanYS
 
04.10.14
14:09
"ВЫБРАТЬ
        |    КонтактныеЛица.Ссылка.Наименование,
        |    КонтактныеЛица.Ссылка.ФИО,
        |    КонтактныеЛица.Ссылка.Должность,
        |    КонтактныеЛица.ВидКонтакта,
        |    КонтактныеЛица.Контакт

        |ИЗ
        |    Справочник.КонтактныеЛица.Контакты КАК КонтактныеЛица
        |ГДЕ
        |    КонтактныеЛица.Ссылка.Владелец = &Контрагент";


ну и итоги добавь
Закон Брукера: Даже маленькая практика стоит большой теории.