Имя: Пароль:
1C
1С v8
Почему не работает ЛЕВОЕ СОЕДИНЕНИЕ?
0 1234567
 
17.11.11
16:38
Мой запрос - это соединение двух таблиц:
1)РегистрСведений.РаботникиОрганизаций
2)РегистрСведений.КонтактнаяИнформация

Соединение по ФизЛицу. Проблема в том, что выбираются данные только те, что есть в обоих таблицах. А мне нужно чтоб с первой таблицы вибрались все данные, а со второй только по наличию.

Например:
РегистрСведений.РаботникиОрганизаций:
Маша бухгалтер
Саша Админ

РегистрСведений.КонтактнаяИнформация:
Маша Москва

После выполнения запроса:
Маша бухгалтер Москва

А нужно:
Маша бухгалтер  Москва
Сама Админ      ""

Подскажите как?


Запрос:

ВЫБРАТЬ
   РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК Подразделение,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.КодПоДРФО КАК ИденНомер,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.ДатаРождения КАК ДатаРождения,
   РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу КАК ДатаПриема,
   РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
   МАКСИМУМ(ВЫБОР
           КОГДА КонтактнаяИнформация.Вид = &Прописка
               ТОГДА ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100))
       КОНЕЦ) КАК Прописка,
   МАКСИМУМ(ВЫБОР
           КОГДА КонтактнаяИнформация.Вид = &Живет
               ТОГДА ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100))
       КОНЕЦ) КАК Живет
ИЗ
   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, Организация = &Организация) КАК РаботникиОрганизацийСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО (КонтактнаяИнформация.Объект = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо)
ГДЕ
   РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение
   И (КонтактнаяИнформация.Вид = &Живет
           ИЛИ КонтактнаяИнформация.Вид = &Прописка)

СГРУППИРОВАТЬ ПО
   РаботникиОрганизацийСрезПоследних.Сотрудник,
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.КодПоДРФО,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.ДатаРождения,
   РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу,
   РаботникиОрганизацийСрезПоследних.Должность

УПОРЯДОЧИТЬ ПО
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Сортировка,
   РаботникиОрганизацийСрезПоследних.Должность.Сортировка
ИТОГИ ПО
   Подразделение
1 shuhard
 
17.11.11
16:39
(0) ГДЕ
   РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение
   И (КонтактнаяИнформация.Вид = &Живет
           ИЛИ КонтактнаяИнформация.Вид = &Прописка)

перенеси в подзапрос
2 hhhh
 
17.11.11
16:41
(0) ну вот это тупое условие

ГДЕ
       (КонтактнаяИнформация.Вид = &Живет
           ИЛИ КонтактнаяИнформация.Вид = &Прописка)


как ты думаешь что вернет, когда ты его применишь к первой таблице? Правильно, ЛОЖЬ.
3 1234567
 
17.11.11
16:44
РЕШЕНИЕ:

ВЫБРАТЬ
   РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК Подразделение,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.КодПоДРФО КАК ИденНомер,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.ДатаРождения КАК ДатаРождения,
   РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу КАК ДатаПриема,
   РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
   МАКСИМУМ(ВЫБОР
           КОГДА КонтактнаяИнформация.Вид = &Прописка
               ТОГДА ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100))
       КОНЕЦ) КАК Прописка,
   МАКСИМУМ(ВЫБОР
           КОГДА КонтактнаяИнформация.Вид = &Живет
               ТОГДА ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100))
       КОНЕЦ) КАК Живет
ИЗ
   РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, Организация = &Организация) КАК РаботникиОрганизацийСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = КонтактнаяИнформация.Объект
ГДЕ
   РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение

СГРУППИРОВАТЬ ПО
   РаботникиОрганизацийСрезПоследних.Сотрудник,
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.КодПоДРФО,
   РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.ДатаРождения,
   РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу,
   РаботникиОрганизацийСрезПоследних.Должность

УПОРЯДОЧИТЬ ПО
   РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Сортировка,
   РаботникиОрганизацийСрезПоследних.Должность.Сортировка
ИТОГИ ПО
   Подразделение
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn