Имя: Пароль:
1C
1С v8
Запрос: Не выдает объекты с пустой ТЧ
0 ParinovS
 
25.04.12
13:04
Доброго времени суток! Возникла проблема.
Предисловие: Есть справочник(Контактные лица), и есть ТЧ справочника. В ТЧ хранится контактная информация, например:
Элемент1 "Пертов"
ТЧ
номер   Вид инф.   Представление
1.      Телефон    2232323
2.       Е-mail    фыв@f.ru
Создал запрос, который вытаскивает эти данные, НО... если у контактного лица ТЧ пустая, то он не попадает в выборку!
Вот запрос:

ВЫБРАТЬ
   СписокКорр.Ссылка
ПОМЕСТИТЬ Корреспонденты
ИЗ
   &СписокКорр КАК СписокКорр
;

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

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

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

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

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

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

ВЫБРАТЬ
   Корреспонденты.Ссылка,
   КонтактныеЛица.Должность,
   КонтактныеЛица.ИО_EMail,
   0,
   0,
   КорреспондентыКонтактнаяИнформация.Представление,
   0
ИЗ
   Корреспонденты КАК Корреспонденты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
       ПО (КонтактныеЛица.Владелец = Корреспонденты.Ссылка)
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Корреспонденты.КонтактнаяИнформация КАК КорреспондентыКонтактнаяИнформация
       ПО (КонтактныеЛица.Ссылка = КорреспондентыКонтактнаяИнформация.Ссылка)
ГДЕ
   КорреспондентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресКорреспондента)
1 ParinovS
 
25.04.12
13:08
up
2 kochurovg
 
25.04.12
13:11
Наверное замени "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица.." на "ЛЕВОЕ ...."
3 Лоботряс
 
25.04.12
13:12
Условие из фильтра перенеси в условие соединения таблиц
4 Лоботряс
 
25.04.12
13:14
"ГДЕ" убрать, а все что там - в условие соединения "ПО"
5 ParinovS
 
25.04.12
13:22
Сделал, тоже самое получается.
ВЫБРАТЬ
   Корреспонденты.Ссылка
ПОМЕСТИТЬ Корреспонденты
ИЗ
   Справочник.Корреспонденты КАК Корреспонденты
;

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

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

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

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

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

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

ВЫБРАТЬ
   Корреспонденты.Ссылка,
   КонтактныеЛица.Должность,
   КонтактныеЛица.ИО_EMail,
   NULL,
   NULL,
   КорреспондентыКонтактнаяИнформация.Представление,
   NULL
ИЗ
   Корреспонденты КАК Корреспонденты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
       ПО (КонтактныеЛица.Владелец = Корреспонденты.Ссылка)
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Корреспонденты.КонтактнаяИнформация КАК КорреспондентыКонтактнаяИнформация
       ПО (КонтактныеЛица.Ссылка = КорреспондентыКонтактнаяИнформация.Ссылка)
           И (КорреспондентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПочтовыйАдресКорреспондента))
6 Лоботряс
 
25.04.12
13:25
ЛЕВОЕ СОЕДИНЕНИЕ верни, балбес:)
7 ParinovS
 
25.04.12
14:34
с этим разобрался, возникла другая проблема. не объединяет строки.
ВЫБРАТЬ
   Корреспонденты.Ссылка
ПОМЕСТИТЬ Корреспонденты
ИЗ
   Справочник.Корреспонденты КАК Корреспонденты
;

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

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

ВЫБРАТЬ
   Корреспонденты.Ссылка,
   0,
   КонтактныеЛицаКонтактнаяИнформацияНомерТелРаб.Представление,
   КонтактныеЛица.Ссылка
ИЗ
   Корреспонденты КАК Корреспонденты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица КАК КонтактныеЛица
           ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформацияНомерТелРаб
           ПО КонтактныеЛица.Ссылка = КонтактныеЛицаКонтактнаяИнформацияНомерТелРаб.Ссылка
               И (КонтактныеЛицаКонтактнаяИнформацияНомерТелРаб.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица))
       ПО (КонтактныеЛица.Владелец = Корреспонденты.Ссылка)
8 ParinovS
 
25.04.12
14:37
т.е. тупо выводит две строки!
9 ParinovS
 
25.04.12
14:45
помогите...
10 Лоботряс
 
25.04.12
14:46
Ну а группировать кто будет?
11 ParinovS
 
25.04.12
14:49
группировать? А оно разве не само должно объединиться?
12 Лоботряс
 
25.04.12
14:50
Оборачивай все во вложенный запрос и его уже группируй по Корреспонденту, а телефоны агрегируй по МАКС.
13 ParinovS
 
25.04.12
14:51
ну а зачем тогда механизм ОБЪЕДИНИТЬ ВСЕ? Если он не объединяет...
14 Лоботряс
 
25.04.12
14:51
(11) Объединяются только полностью одинаковые строки (ну то есть дубли), а у тебя они разные.
15 ParinovS
 
25.04.12
14:57
Ок, списибо!) Разобрался наконец-таки))
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший