СКД + Полное соединение #586244


#0 by Darklight
Прошу дать совет.  Необходимо в СКД соединить два набора данных через полное соединение. Возможно ли это сделать? Добавлю: наборы данных являются внешними таблицами - что не позволяет использовать конструкции запросов :( Программную обработку на языке 1С не предлагать - это и так ясно.
#1 by Axel2009
делай объединение, не ошибешься
#2 by Darklight
Пытаюсь ;) NULL вылазиет и не сворачивается :(
#3 by Axel2009
значит колонки не так именуются
#4 by Evpatiy
Все соединения в СКД левые. Надо наложить глобальный отбор на весь отчет в настройках
#5 by Axel2009
объединения тоже левые?
#6 by Evpatiy
Все связи наборов данных, кторые указываешь на закладке "Связи наборов данных" схемы компановки
#7 by Darklight
Всё проверено - всё названия правильны ;) и этот как раз правильная работа объединения - у меня 2 колонки в каждой таблице - одна совпадает по значениям (это ключ соединения) - остальные в разных таблицах могут совпадать, могут не совпадать - да и состав строк может быть разный - мне просто нужна сводная таблица из этих двух - обычное самое полное соединение с тремя колонками - общий ключ + по колонке из двух таблиц. Даже итогов никаких нет. Попробовал одно объединение - ключ объединяется нормально,   а колонки раздваиваются по двум строчкам (чередуясь через NULL) Попробовал более хитрое объединение - сначала объединил эти таблицы между собой так, чтобы значениях из всех колонок сливались в один общий набор - т.е. в 2 итоговых колонки: ключ + сводная колонка, а затем всё объединил снова - но уже о по разным колонкам - значения задублировались, но NULL не исчезли (хотя по отдельности в объединениях первого уровня значений NULL нет) Затем сделал ещё один финт - сделал в объединении первого уровня по три колонки (просто задублировал значения второй колонки под разными именами (соответственно, названия из двух  разных таблиц), а затем уже обеденил эти два набора с ремя колонками. Результата стал уже "удобоваримый" - появились "свёрнутые" стрчоки, но остались строчки с NULL - вот как их через Отбор отфильтровать - пока не знаю....
#8 by Darklight
Я вас не понмаю :(
#9 by Darklight
На MS SQL нет полных соединений Там можно выкрутиться примерно так SELECT НУЖНЫЕ ПОЛЯ FROM Таблица A LEFT JOIN Таблица B UNION Таблица B LEFT JOIN Таблица A Можно ли нечто подобное сделать в СКД? То есть сначала сделать ЛЕВЫЕ СОЕДИНЕНИЯ, а затем ОБЪЕДИНЕНИЕ?
#10 by Evpatiy
Если указываешь соединение на закладке "Связи наборов данных" схемы компановки, то соединение левое. Надо перейти на закладку "Настройки", выбрать самый верхний уровень группировки, который называется "отчет" и поставить ему отбор: левое значение - поле которое у тебя нул, вид сравнения - "заполнено".
#11 by Darklight
Да, NULL отфильтровались, но в первом случае  результат пустой (т.к. в обоих колонках NULL попеременно), а в последнем случае - всё-таки это не правильный результат :(
#12 by Darklight
О - возникал идея - обэеденить значения поля ключа из обоих таблиц и присоединить к объединению левым соединением обе таблицы ;)
#13 by Evpatiy
1С заявляют именно такой способ как аналог полного соединения. Так что дальше эксперементируй
#14 by Axel2009
какие колонки раздваиваются?? ресурсы? ну так по ним надо аггрегирующую функцию указывать!
#15 by Axel2009
это может быть только внутренним соединением, но никак не полным.
#16 by Evpatiy
Извиняюсь, конечно внутренним.
#17 by Ochkarito
Делай из внешних таблиц одну, через временные таблицы и используй один набор данных-)
#18 by Darklight
Не понял - с чем экспериментировать - с одним объединением - результат пустой - а с несколькими - нужно понимать как их правильно объединять Блин - не вышло - если выбираю оба поля (кроме ключа) из таблиц - то выдаёт "Использование полей из несвязанных наборов данных не допустимо" А по отдельности - выводит Использую 3 набора данных: 1. Объединение поля ключа исходных таблиц - одна колонка 2. Первая таблица 3. Втора таблица Использую два соединение: 1) Набор 1. с Набор 2. по полю ключа 2) Набор 1. с Набор 3. по полю ключа В настройках вывожу детальные записи с 3 полями: поле ключа, поле из Набор 1., поле из Набор 2. не работает - почему наборы не  связаны - они связаны же через набор 1. с полем ключа могу привести схему и настройку
#19 by Darklight
Ресурсов нет - раздваиваются колонки, не являющиеся ключевыми Есть две таблицы с парами колонок 1. Ключ КолонкаA 2. Ключ КолонкаB Нужно полное соединение вида Ключ КолонкаA КолонкаB Соединение по полям Ключ Если в какой-либо таблице парной строки нет - то Ключ берётся из другой таблицы и одна из колонок (соотв. ненайденной строке таблицы) должна быть NULL, если п ключу есть строки в обоих таблицах - то в результирующей строки должно быть значения колонок КолонкаA КолонкаB из этих таблиц (они могут быть различными) - т.е. должна получиться обычная общая сводная таблица. Ну а я про полное соединение кажется говорил Как уже говорил - внешняя обработка не годится - ищу принципиальное решение в СКД
#20 by Axel2009
полное соединение идет по одному полю или под двум?
#21 by Evpatiy
Да, извини, глаза не на том месте. Може связать первую со второй, вторую с первой, потом результаты друг с другом. Но как-то это выглядит сомнительно.
#22 by Axel2009
давай результат полного соединения двух таблиц с парами колонок:
#23 by PVV65
Делаешь набор данных - объединение. В настройках одну группировку с тремя полями (Ключ, КолонкаА, КолонкаВ).
#24 by Evpatiy
О, умный человек подтянулся!
#25 by Evpatiy
Спасибо
#26 by Darklight
ЫЫЫЫЫЫЫЫЫЫЫ! ТаблицаA Объединение (детальные записи, ели делаю одну группировку по трём колонкам сразу - ничего не выводит кроме шапки): Код    КолонкаA    КолонкаB 1    aaa     1        aaa Должно быть: Код    КолонкаA    КолонкаB 1    aaa    aaa 2    bbb    bbb 3    vvv    ccc 4    ccc     Схему и настройку СКД могу приложить
#27 by PVV65
Приложи.
#28 by Axel2009
сделай КолонкаА и КолонкаВ как ресурс МАКСИМУМ(КолонкаА) и МАКСИМУМ(КолонкаВ). и будет тебе счастье.
#29 by Darklight
И? Код    КолонкаA    КолонкаB 1    aaa     7        fff Итого    vvv    fff
#30 by Darklight
Схема: <dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
#31 by Darklight
Настройки: <settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
#32 by Axel2009
что и? группировать нужно только по полю Ключ.
#33 by Darklight
Почем не работает вот этот вариант Схема: <dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> Настройки: Ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Выполнить)        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанныхЛок, ИсполняемыеНастройки, мДанныеРасшифровки); по причине: Ошибка компоновки макета по причине: Использование полей из не связанных наборов данных не допустимо
#34 by Darklight
А вот это уже вариант ;) Код    КолонкаA    КолонкаB 1    aaa    aaa 2    bbb    bbb 3    vvv    ccc 4    ccc     5    ddd     7        fff Итого    vvv    fff
#35 by Darklight
Спасибо, кажись работает ;)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С