Имя: Пароль:
1C
1С v8
СКД, можно ли сделать этот отчёт одним набором данных?
0 МешочекЗнаний
 
18.11.20
10:23
Приветствую уважаемые.

В СКД работаю раз в год, нашлось свободное время, решил подтянуть свои знания.

Тестирую в чистой базе. Есть документ сборка товаров. Собираю 2 стола из 2 столешниц и 8 ножек.
http://www.ximage.ru/data/imgs/1605682965.jpg

Хочу получить отчёт такого вида:
http://www.ximage.ru/data/imgs/1605683233.jpg

Делаю отчёт, в нём запрос

ВЫБРАТЬ
    СборкаТовараТЧПродукция.Продукция КАК Продукция,
    СборкаТовараТЧПродукция.КоличествоПродукции КАК КоличествоПродукции,
    СборкаТовараТЧМатериал.Материал КАК Материал,
    СборкаТовараТЧМатериал.КоличествоМатериала КАК КоличествоМатериала
ИЗ
    Документ.СборкаТовара.ТЧПродукция КАК СборкаТовараТЧПродукция
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаТовара.ТЧМатериал КАК СборкаТовараТЧМатериал
        ПО СборкаТовараТЧПродукция.Ссылка = СборкаТовараТЧМатериал.Ссылка
            И СборкаТовараТЧПродукция.Продукция = СборкаТовараТЧМатериал.Продукция

И получаю то, что количество продукции задваивается. Оно и верно, т.к. идёт левое соединение двух материалов в запросе.
http://www.ximage.ru/data/imgs/1605683483.jpg
Я переписал отчёт на соединение двух наборов данных (связь наборов по ссылке и продукции), и отчёт заработал как надо.
http://www.ximage.ru/data/imgs/1605683794.jpg
У меня вопрос следующего характера - можно ли как то использовать ОДИН набор данных для решения этой задачи?

Ссылки на внешние отчёты: https://dropmefiles.com/nAHTA
1 arsik
 
гуру
18.11.20
10:26
Сделай группировку по Максимум
2 МешочекЗнаний
 
18.11.20
10:30
(1) Благодарю, в ресурсах указал Максимум(КоличествоПродукции) и получил такой же результат.

Есть ещё варианты?
3 toypaul
 
гуру
18.11.20
10:36
можно. Сумма(ВычислитьВыражениеСГруппировкойМассив("ВыражениеРесурса", "Группировка")) ВыражениеРесурса обычно Максимум(Ресурс)

скоро (надеюсь) уже будет доступен курс, в котором этот вопрос (и многие другие про ВычислитьВыражениеСГруппировкойМассив) разбираем
4 toypaul
 
гуру
18.11.20
10:38
(2) не может быть при данных настройках чтобы Максимум выдал такой же результат. он выдаст нормальный результат (без задвоения), но общий итог будет неверный.
5 МешочекЗнаний
 
18.11.20
10:42
(2) Да, он выдал без задвоения. Извиняюсь, плохо сформулировал свою мысль.
..и получил такой же результат как и в объединении наборов.
6 МешочекЗнаний
 
18.11.20
10:55
(3) Какая то хитрая функция.
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(КоличествоПродукции)", "Материал")) - задваивает
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(КоличествоПродукции)", "Продукция")) - не задваивает

Интересное поведение, пойду почитаю что это такое.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн