Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 сен 2021, 03:33

8.2 Полное соединение в ТЧ документа

Автор Hel, 27 мар 2015, 16:16

0 Пользователей и 1 гость просматривают эту тему.

Hel

Есть документ с двумя ТЧ, пробую сделать полное соединение (в запросе) по Наименованию из этих ТЧ для каждого документа. Как правильно соединить?


 

vitasw

Правильно соединять по ссылкам, а не по наименованиям.

cska-fanat-kz

правильно заданный вопрос - половина ответа
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Hel

Получить хочу так:
например, исх.данные
//  -------------   --------------------------------
//  |ТЧ1        |   |   ТЧ2                      |
//  -------------   ---------------------------------
//  |ИМЯ        |   |   ИМЯ                      |
//  -------------   ---------------------------------
//  |Алена      |   |   Алена                    |
//  |Алефтина   |   |   Алефтина                 |
//  |Владимир   |   |   Павел                    |
//  |Владислав  |   |   Петр                     |
//  |           |   |   Порфирий                 |
//  -------------   ---------------------------------

// Результат полного внешнего соединения по имени:

//  ТЧ1           ТЧ2         
//  Алена           Алена           
//  Алефтина        Алефтина       
//  Владимир        NULL           
//  Владислав       NULL           
//  NULL            Павел           
//  NULL            Петр           
//  NULL            Порфирий       

Делаю так:
                       "ВЫБРАТЬ
                | ТЧ1.Ссылка КАК Док,
                | ТЧ1.Номенклатура.Ссылка КАК Ном1,
                | ТЧ2.Номенклатура.Ссылка КАК Ном2
                |ИЗ
                | Документ.Док.ТЧ1 КАК ТЧ1
                | ПОЛНОЕ СОЕДИНЕНИЕ Документ.Док.ТЧ2 КАК ТЧ2
                | ПО (ТЧ1.Ссылка = ТЧ2.Ссылка)
                | И (ТЧ1.Номенклатура.Ссылка = ТЧ.номенклатура.Ссылка)
                |ГДЕ
                | ТЧ1.Ссылка.Проведен = ИСТИНА
                | И ТЧ1.Ссылка.ПометкаУдаления = ЛОЖЬ
                | И ТЧ1.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                |
                //|СГРУППИРОВАТЬ ПО
                |";


vitasw

Логика правильная, но лучше писать в конструкторе запросов - не будет синтаксических ошибок, как тут:
Цитата: Hel от 30 мар 2015, 12:07| И (ТЧ1.Номенклатура.Ссылка = ТЧ.номенклатура.Ссылка)


cska-fanat-kz

условие на проведение, пометку удаления и дату по ТЧ2 тоже надо сделать
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Зачем? Это один и тот же документ.

cska-fanat-kz

Цитата: vitasw от 30 мар 2015, 15:21
Зачем? Это один и тот же документ.

в ТЧ2 строки есть, а в ТЧ1 строк нет...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: cska-fanat-kz от 30 мар 2015, 15:22в ТЧ2 строки есть, а в ТЧ1 строк нет...
Логически. Согласен.))

Hel

"ВЫБРАТЬ
                    |    ТЧ1.Ссылка КАК Док,
                    |    ТЧ1.Номенклатура.Ссылка КАК Ном1,
                    |    ТЧ2.Номенклатура.Ссылка КАК Ном2
                    |ИЗ
                    |    Документ.Док.ТЧ1 КАК ТЧ1
                    |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.Док.ТЧ2 КАК ТЧ2
                    |        ПО (ТЧ1.Ссылка = ТЧ2.Ссылка)
                    |            И (ТЧ1.Номенклатура.Ссылка = ТЧ2.номенклатура.Ссылка)
                   //добавила условия здесь. получается результат как у левого соединения,   
                   //если писать после ГДЕ -  результат как у внутреннего соединения
                    |    И ТЧ2.Ссылка.Проведен = ИСТИНА
                    |    И ТЧ2.Ссылка.ПометкаУдаления = ЛОЖЬ
                    |    И ТЧ2.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                    |ГДЕ
                    |    ТЧ1.Ссылка.Проведен = ИСТИНА
                    |    И ТЧ1.Ссылка.ПометкаУдаления = ЛОЖЬ
                    |    И ТЧ1.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                    |
                    |";


брррр... что не так?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск