Не могу разобраться в запросе

1. silverr 13 12.05.23 17:52 Сейчас в теме
Всем доброго дня!
Уважаемые форумчане, помогите найти ошибку в запросе. Конфигурация самописная, на БСП 3.1.6. Платформа 8.3.22.1923. В конфигурации справочник ФизическиеЛица с табличной частью КонтакнаяИнформация и регистр накопления ДоговорныеОбязательства. К ним обращен запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ДоговорныеОбязательства.Договор КАК Договор,
    ДоговорныеОбязательства.Абонент КАК Абонент
ПОМЕСТИТЬ ВТ_Абоненты
ИЗ
    РегистрНакопления.ДоговорныеОбязательства КАК ДоговорныеОбязательства
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Абонент,
    ЕСТЬNULL(ФизическиеЛицаКонтактнаяИнформация.НомерТелефона, "нет") КАК НомерТелефона,
    ВТ_Абоненты.Договор КАК Договор
ИЗ
    ВТ_Абоненты КАК ВТ_Абоненты
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
        ПО (ВТ_Абоненты.Абонент = ФизическиеЛицаКонтактнаяИнформация.Ссылка)
ГДЕ
    ФизическиеЛицаКонтактнаяИнформация.Тип = &ТипКИ

УПОРЯДОЧИТЬ ПО
    Абонент
Показать

Как я полагал, применение ЕСТЬNULL(ФизическиеЛицаКонтактнаяИнформация.НомерТелефона, "нет") и левого соединения при объединении таблиц дадут мне на выходе все записи (различные по Абонент+Договор) из регистра ДоговорныеОбязательства и контактную информация из справочника ФизическиеЛица, отсутствующая конт.информация будет заменена на "нет".
Но так не получается. Если нужная (ФизическиеЛицаКонтактнаяИнформация.Тип = &ТипКИ) отсутствует, строка не выводится совсем.
В чем я неправ, подскажите?
По теме из базы знаний
Найденные решения
2. SlavaKron 12.05.23 17:56 Сейчас в теме
(1) Надо таблицу ФизическиеЛицаКонтактнаяИнформация связать левым соединением с ВТ_Абоненты, а не наоборот, как у вас. Поспешил, сначала ерунду написал.

Условие на тип КИ в условиях связи укажите.
user1826630; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 12.05.23 17:56 Сейчас в теме
(1) Надо таблицу ФизическиеЛицаКонтактнаяИнформация связать левым соединением с ВТ_Абоненты, а не наоборот, как у вас. Поспешил, сначала ерунду написал.

Условие на тип КИ в условиях связи укажите.
user1826630; +1 Ответить 5
4. silverr 13 12.05.23 18:27 Сейчас в теме
(2)Если так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ДоговорныеОбязательства.Договор КАК Договор,
    ДоговорныеОбязательства.Абонент КАК Абонент
ПОМЕСТИТЬ ВТ_Абоненты
ИЗ
    РегистрНакопления.ДоговорныеОбязательства КАК ДоговорныеОбязательства
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Абонент,
    ЕСТЬNULL(ФизическиеЛицаКонтактнаяИнформация.НомерТелефона, "нет") КАК НомерТелефона,
    ВТ_Абоненты.Договор КАК Договор
ИЗ
    Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Абоненты КАК ВТ_Абоненты
        ПО (ФизическиеЛицаКонтактнаяИнформация.Ссылка = ВТ_Абоненты.Абонент)
ГДЕ
    ФизическиеЛицаКонтактнаяИнформация.Тип = &ТипКИ

УПОРЯДОЧИТЬ ПО
    Абонент
Показать

Результат тот-же.
6. user1826630 12.05.23 18:30 Сейчас в теме
(4) Красавчик! Тебе сказали добавить еще одну связь, а ты просто поменял местами две таблицы?
Вот как тебе что-то советовать?
8. SlavaKron 12.05.23 21:59 Сейчас в теме
(4)
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ДоговорныеОбязательства.Договор КАК Договор,
    ДоговорныеОбязательства.Абонент КАК Абонент
ПОМЕСТИТЬ ВТ_Абоненты
ИЗ
    РегистрНакопления.ДоговорныеОбязательства КАК ДоговорныеОбязательства
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ВТ_Абоненты.Абонент КАК Абонент,
    ВТ_Абоненты.Договор КАК Договор,
    ЕСТЬNULL(ФизическиеЛицаКонтактнаяИнформация.НомерТелефона, "нет") КАК НомерТелефона
ИЗ
    ВТ_Абоненты КАК ВТ_Абоненты
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
        ПО (ВТ_Абоненты.Абонент = ФизическиеЛицаКонтактнаяИнформация.Ссылка
              И ФизическиеЛицаКонтактнаяИнформация.Тип = &ТипКИ)

УПОРЯДОЧИТЬ ПО
    Абонент
Показать
Vitaly1C8; silverr; +2 Ответить
10. silverr 13 12.05.23 22:10 Сейчас в теме
9. silverr 13 12.05.23 22:08 Сейчас в теме
(2)Спасибо, так лучше. Результат на все 100%. Нашел подтверждение в инете. Условие на ТипКИ приводит к выбрасыванию строки ведущей(левой) таблицы из результата. А вот условие на закладке "Связи" дает тот результат который мне и нужен. Спасибо что поняли меня. Правильно заданный вопрос приводит к правильному ответу.
3. user1826630 12.05.23 17:59 Сейчас в теме
(1)
Если нужная (ФизическиеЛицаКонтактнаяИнформация.Тип = &ТипКИ) отсутствует, строка не выводится совсем.
А должна?
5. silverr 13 12.05.23 18:29 Сейчас в теме
(3)Хотелось-бы, мне нужны все договора и физические лица у которых есть телефон, а если нет - должно выводится слово "нет".
7. user1826630 12.05.23 18:32 Сейчас в теме
(5) Хотеть в нашей стране не запрещено. Пока ещё.
Вопрос в другом - ты сам понимаешь, что ты написал?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот