Имя: Пароль:
1C
1С v8
Дублирующиеся строки в отчете СКД с табличной частью справочника
,
0 Chuvaschow
 
26.05.16
09:48
Здравствуйте, Уважаемые форумчане!

Объясните, пожалуйста, почему происходит следующее: есть справочник с реквизитами и табличной частью (УТ 11, справочник Партнеры). Необходимо вытащить в отчет Наименование, ДополнительнаяИнформация (реквизиты справочника) + НомерТелефона (реквизит табличной части КонтактнаяИнформация). Стало быть, необходимо использовать ЛЕВОЕ СОЕДИНЕНИЕ, которое у меня не рисует в отчет вообще ничего вразумительного. Делаю через ОБЪЕДЕНИТЬ ВСЕ, вот так:

ВЫБРАТЬ
    Партнеры.ДополнительнаяИнформация,
    Партнеры.Наименование,
    NULL КАК НомерТелефона
ИЗ
    Справочник.Партнеры КАК Партнеры

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

ВЫБРАТЬ
    NULL,
    NULL,
    ПартнерыКонтактнаяИнформация.НомерТелефона
ИЗ
    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация


В итоге получаю дублирующиеся строки вида

Партнер 1      ДопИнформация    +79999999999
Партнер 1      ДопИнформация    

Партнер 2      ДопИнформация    +73333333333
Партнер 2      ДопИнформация    

И так далее...

Подскажите, почему так?
1 olegves
 
26.05.16
09:53
(0) необходимо использовать ЛЕВОЕ СОЕДИНЕНИЕ
дополнительно ограничить условием КИ.Вид = Значение(то,что нужно)
2 Chuvaschow
 
26.05.16
10:15
При таком подходе:
ВЫБРАТЬ
    Партнеры.ДополнительнаяИнформация,
    Партнеры.Наименование,
    Партнеры.Ссылка
ПОМЕСТИТЬ Основное
ИЗ
    Справочник.Партнеры КАК Партнеры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартнерыКонтактнаяИнформация.НомерСтроки,
    ПартнерыКонтактнаяИнформация.Тип,
    ПартнерыКонтактнаяИнформация.Вид,
    ПартнерыКонтактнаяИнформация.Представление,
    ПартнерыКонтактнаяИнформация.ЗначенияПолей,
    ПартнерыКонтактнаяИнформация.Страна,
    ПартнерыКонтактнаяИнформация.Регион,
    ПартнерыКонтактнаяИнформация.Город,
    ПартнерыКонтактнаяИнформация.АдресЭП,
    ПартнерыКонтактнаяИнформация.ДоменноеИмяСервера,
    ПартнерыКонтактнаяИнформация.НомерТелефона,
    ПартнерыКонтактнаяИнформация.НомерТелефонаБезКодов,
    ПартнерыКонтактнаяИнформация.ВидДляСписка,
    ПартнерыКонтактнаяИнформация.Ссылка
ПОМЕСТИТЬ Контакты
ИЗ
    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
;

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


Из отчета совсем пропадает колонка "номер телефона"
Соединяю не по тому полю? (ССылка)
3 write
 
26.05.16
10:56
Тут вообще ни каких соединений не надо
ВЫБРАТЬ
ПартнерыКонтактнаяИнформация.Ссылка.Наименование,
ПартнерыКонтактнаяИнформация.Ссылка.ДополнительнаяИнформация,
ПартнерыКонтактнаяИнформация.НомерТелефона
ИЗ
Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
4 Chuvaschow
 
26.05.16
11:01
(3) Не подтягивается номер телефона, увы....
5 RomanYS
 
26.05.16
11:04
(3) потеряешь партнеров с пустой ТЧ
6 Chuvaschow
 
26.05.16
11:04
Казалось бы тривиальная задача, не справлюсь никак...
7 RomanYS
 
26.05.16
11:04
(4) а они в базе есть?
8 Chuvaschow
 
26.05.16
11:08
Да, конечно, у каждого второго
9 Chuvaschow
 
26.05.16
11:11
10 write
 
26.05.16
11:28
Через временные таблицы:
ВЫБРАТЬ
    Партнеры.Наименование,
    Партнеры.ДополнительнаяИнформация,
    Партнеры.Ссылка
ПОМЕСТИТЬ ВТПартнеры
ИЗ
    Справочник.Партнеры КАК Партнеры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартнерыКонтактнаяИнформация.НомерТелефона,
    ПартнерыКонтактнаяИнформация.Ссылка
ПОМЕСТИТЬ ВТТелефоны
ИЗ
    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
ГДЕ
    ПартнерыКонтактнаяИнформация.НомерТелефона <> ""
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТПартнеры.Наименование,
    ВТПартнеры.ДополнительнаяИнформация,
    ЕСТЬNULL(ВТТелефоны.НомерТелефона, "") КАК НомерТелефона
ИЗ
    ВТПартнеры КАК ВТПартнеры
        ЛЕВОЕ СОЕДИНЕНИЕ ВТТелефоны КАК ВТТелефоны
        ПО ВТПартнеры.Ссылка = ВТТелефоны.Ссылка
11 write
 
26.05.16
11:32
Второй вариант с временными таблицами чуть короче:
ВЫБРАТЬ
    ПартнерыКонтактнаяИнформация.НомерТелефона,
    ПартнерыКонтактнаяИнформация.Ссылка
ПОМЕСТИТЬ ВТТелефоны
ИЗ
    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
ГДЕ
    ПартнерыКонтактнаяИнформация.НомерТелефона <> ""
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Партнеры.Наименование,
    Партнеры.ДополнительнаяИнформация,
    ЕСТЬNULL(ВТТелефоны.НомерТелефона, "") КАК НомерТелефона
ИЗ
    Справочник.Партнеры КАК Партнеры
        ЛЕВОЕ СОЕДИНЕНИЕ ВТТелефоны КАК ВТТелефоны
        ПО Партнеры.Ссылка = ВТТелефоны.Ссылка
12 Chuvaschow
 
26.05.16
11:36
(10) (11) В обоих случаях колонка "Номер телефона" не появляется
13 write
 
26.05.16
11:40
(12) В СКД как выводишь данные?
14 RomanYS
 
26.05.16
11:41
(12) Что значит не появляется? Она пустая?
15 Chuvaschow
 
26.05.16
11:44
16 Chuvaschow
 
26.05.16
11:44
(14) Нет, ее просто нет
17 write
 
26.05.16
11:52
Вот результат твоего отчета в комплексной демо
https://yadi.sk/i/MQcmpS3es2E63
18 Chuvaschow
 
26.05.16
11:54
19 Chuvaschow
 
26.05.16
11:54
На УТ не отрабатывает
20 write
 
26.05.16
11:56
(19) Там одна и та же структура.
21 Chuvaschow
 
26.05.16
11:57
Хммм...
22 Chuvaschow
 
26.05.16
11:58
Сам понимаю, что должно отработать, уже в этом (2)  варианте...
23 write
 
26.05.16
12:00
Развернул демо УТ, результат такой же как и в комплексной.
24 RomanYS
 
26.05.16
12:03
(22) Права полные?
25 Chuvaschow
 
26.05.16
12:12
Да, полные, буду тоже разворачивать демо, может конфа старая + глюки
26 Chuvaschow
 
26.05.16
12:13
(23) Спасибо за труды :)
27 Chuvaschow
 
26.05.16
12:51
Делал в терминале на сервере. Перенес базу локально к себе - взлетели все варианты. Бывает и такое. Платформы одинаковые, что там, что тут.

Всем огромное спасибо!
28 Chuvaschow
 
26.05.16
13:05
На будущее надо бы запомнить...Этой темы могло и не быть вовсе.