|
СКД. Связи наборов данных. Полное соединение вместо левого |
☑ |
0
CAPITALIST
08.01.19
✎
17:57
|
Итак, заказчик хочет видеть в одной форме несколько отчетов и общие итоги по ним. Так же должна быть возможнось отбора.
Сделал несколько наборов данных типа "Запрос". Поля схожи так, что проблем нет. В связях наборов данных связал эти запросы. Источник - Запрос1, приемник - Запрос2.
Связь по
Организация - Организация
Склад - Склад
Номенклатура - Номенклатура
УсловияПродажи - УсловияПродажи
Все отлично связывается и считается. До тех пор, пока набор измерений одинаковый.
Допустим, в Запрос1 нет УсловияПродаж = "Льготные", а в Запрос2 они есть.
Так как Запрос1 - источник связи, то Запрос2 сформируется тоже без УсловияПродаж = "Льготные", хотя там должна быть эта строчка. Можно поменять местами Запрос1 и Запрос2, но тогда такая проблема будет в другую сторону.
Получается, что связь идет левым соединением. Как сделать полным?
|
|
1
Ник080808
08.01.19
✎
18:01
|
(0) вложенные схемы чем не подходят?
|
|
2
Ник080808
08.01.19
✎
18:02
|
(0) вместо полное соединение делай объединение
|
|
3
CAPITALIST
08.01.19
✎
18:19
|
(1) Вложенные схемы делаются на уровне составления запроса. Так же как и Объединение.
Я же делаю на уровне СКД. Один отчет содержит 3 отчета и общие итоги. Все отчеты имеют РАЗНУЮ структуру и несколько общих полей.
Итого у меня 4 набора данных, 3 служат для формирования отчетов а 4-ый - суммирует все ресурсы и выводит 4-ю табличку итогов
|
|
4
Ник080808
08.01.19
✎
18:23
|
(3) Так же как и Объединение. - тоже делается на уровне скд. Набор данных объединение
|
|
5
Ник080808
08.01.19
✎
18:26
|
(3) "Вложенные схемы делаются на уровне составления запроса" - это тоже на уровне скд на уровне настроек, затык только с общими итогами. Их можно отчетом 4 и соединить настройки схем по владельцу. Но это тоже гемморой и объединение таки лучше
|
|
6
CAPITALIST
08.01.19
✎
18:35
|
(4) тогда значения из первой таблицы, перейдут во вторую и наоборот. Это должны быть 3 независимые отчета.
|
|
7
Ник080808
08.01.19
✎
18:37
|
(6) делаешь поле текстовое "имя отчета". и группируешь по нему отчет и все
|
|
8
Ник080808
08.01.19
✎
18:40
|
я так делал управленческие отчеты-велосипеды. Нужно было вывести
Общий Доход
Общая Себестоимость
Затраты
Прибыль.
Делал через объединение
Поле Статья - текстовое поле "Доход", "Себестоимость", "Затраты"
Поле Сумма - итог движения по регистру;
|
|
9
CAPITALIST
08.01.19
✎
20:17
|
(7) Отличная идея!
Но тогда проблема в отборах. Допустим в Запрос1 есть поле ВидОплаты. В Запрос2 его нет. Делаем отбор по этому полю. Вторая табличка выходит пустая.
В настройках если поставить отбор не на весь отчет, а только на первую группировку Запрос1, то итоги в 4-й таблице будут считаться без отбора. Если еще и на 4-ю итоговую таблицу поставить такой же отбор, то в форме отчета будет два одинаковых отбора.
|
|
10
palsergeich
08.01.19
✎
23:01
|
(0) Полное соединение это условие связи = ИСТИНА.
В любом мануале СКД объяснено, что по умолчанию связь - левая, если нужно полное - бахаешь -ИСТИНА.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший