Имя: Пароль:
1C
1С v8
Получение данных по КИ контрагентов
,
0 Валидатор
 
14.05.14
13:16
Написал запрос по выбору данных контрагента контаных, теперь, если у меня не заполнен, к примеру факт адрес, то в отчет и не выведется юридический адрес и тд, как сделать, чтобы вне зависимости от заполнения фактического адреса, юридического, телефона или емэйла данные выводились? вот запрос:
ВЫБРАТЬ
    КонтактнаяИнформация.Объект КАК Объект,
    ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) КАК ФактАдресКонтрагента
ПОМЕСТИТЬ ВТ_ФактАдр
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    (НЕ ВЫБОР
                КОГДА КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресКонтрагента)
                    ТОГДА КонтактнаяИнформация.Представление
            КОНЕЦ ЕСТЬ NULL )
;

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

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

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

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

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Наименование,
    Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
    Контрагенты.ОсновнойМенеджерПокупателя КАК ОсновнойМенеджер,
    ЕСТЬNULL(ВТ_ЮрАдр.ЮрАдресКонтрагента, "---") КАК ЮридическийАдрес,
    ЕСТЬNULL(ВТ_ФактАдр.ФактАдресКонтрагента, "---") КАК ФактическийАдрес,
    ЕСТЬNULL(ВТ_ЭлектроннаяПочта.ЭлектроннаяПочта, "---") КАК ЭлектроннаяПочта,
    ЕСТЬNULL(ВТ_Телефон.ТелефонКонтрагента, "---") КАК ТелефонКонтрагента,
    Контрагенты.ОсновноеКонтактноеЛицо КАК ОсновноеКонтактноеЛицо,
    втКонтактныеЛица.Вид КАК ВидКонтактнойИнформации,
    втКонтактныеЛица.Представление КАК КонтактнаяИнформация,
    втКонтактныеЛица.РольКонтактногоЛица КАК Роль,
    ттВидыДеятельностиКонтрагентов.ВидДеятельности,
    втКонтактныеЛица.Должность,
    втКонтактныеЛица.КонтЛицоКонтрагент КАК КонтактноеЛицо
{ВЫБРАТЬ
    Наименование,
    ЮрФизЛицо.*,
    ОсновнойМенеджер,
    ВидДеятельности,
    ЮридическийАдрес,
    ФактическийАдрес,
    ЭлектроннаяПочта,
    ТелефонКонтрагента,
    ОсновноеКонтактноеЛицо,
    КонтактноеЛицо.*,
    Должность.*,
    ВидКонтактнойИнформации.*,
    КонтактнаяИнформация,
    Роль.*}
ИЗ
    ВТ_ФактАдр КАК ВТ_ФактАдр
        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_ЭлектроннаяПочта КАК ВТ_ЭлектроннаяПочта
        ПО ВТ_ФактАдр.Объект = ВТ_ЭлектроннаяПочта.Объект
        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Телефон КАК ВТ_Телефон
        ПО ВТ_ФактАдр.Объект = ВТ_Телефон.Объект
        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_ЮрАдр КАК ВТ_ЮрАдр
        ПО ВТ_ФактАдр.Объект = ВТ_ЮрАдр.Объект
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
            ЛЕВОЕ СОЕДИНЕНИЕ втКонтактныеЛица КАК втКонтактныеЛица
            ПО Контрагенты.Ссылка = втКонтактныеЛица.Владелец
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ттВидыДеятельностиКонтрагентов КАК ттВидыДеятельностиКонтрагентов
            ПО Контрагенты.Ссылка = ттВидыДеятельностиКонтрагентов.Контрагент
        ПО ВТ_ФактАдр.Объект = Контрагенты.Ссылка
ГДЕ
    Контрагенты.БИТ_ДатаСоздания МЕЖДУ &ДатаНачала И &ДатаКонца
{ГДЕ
    Контрагенты.Ссылка.* КАК Наименование,
    Контрагенты.ЮрФизЛицо.*,
    Контрагенты.ОсновнойВидДеятельности.* КАК ВидДеятельности,
    Контрагенты.ОсновнойМенеджерПокупателя.* КАК ОсновнойМенеджер,
    (ЕСТЬNULL(ВТ_ЮрАдр.ЮрАдресКонтрагента, "---")) КАК ЮридическийАдрес,
    (ЕСТЬNULL(ВТ_ФактАдр.ФактАдресКонтрагента, "---")) КАК ФактическийАдрес,
    (ЕСТЬNULL(ВТ_ЭлектроннаяПочта.ЭлектроннаяПочта, "---")) КАК ЭлектроннаяПочта,
    (ЕСТЬNULL(ВТ_Телефон.ТелефонКонтрагента, "---")) КАК ТелефонКонтрагента,
    Контрагенты.ОсновноеКонтактноеЛицо.* КАК КонтактноеЛицо,
    втКонтактныеЛица.Вид.*}

УПОРЯДОЧИТЬ ПО
    Наименование
{УПОРЯДОЧИТЬ ПО
    Наименование,
    ЮрФизЛицо.*,
    ОсновнойМенеджер,
    ЮридическийАдрес,
    ФактическийАдрес,
    ЭлектроннаяПочта,
    ТелефонКонтрагента,
    ОсновноеКонтактноеЛицо}
{ИТОГИ ПО
    Наименование}
АВТОУПОРЯДОЧИВАНИЕ
1 Валидатор
 
14.05.14
13:20
у некоторых корнтрагентов, если не указан фактический адрес, то не покажется и юридический, и телефона тоже не будет показано
2 RomanYS
 
14.05.14
13:27
похоже проблема в "внутреннее соединение"
3 Валидатор
 
14.05.14
13:40
все, нашел косяк, привязка какого то буя была к факт адресу, а не к контрагенту
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс