Вычисление ресурса СКД

1. Glav 10.09.21 17:12 Сейчас в теме
Добрый день.
Коллеги, подскажите. есть отчёт по выпуску и котором выводится количество продукции и материалов из спецификации.

Было три документа выпуска номенклатуры "Готовая продукция"
в двух по 2 шт, а в одном - 3 шт

Согласно спецификации она состоит
Материал1 в количестве 5 шт
Материал2 в количестве 7 шт

В виде детальных записей он выглядит так:
Необходимо, чтобы
на уровне "ДокументВыпуска" - выводилось количество из документа
на уровне "Материалы" - пусто
на уровне "Продукция" - сумма из документов

Но не рассчитывается на уровне "Продукция"

Результат и настройка ресурсов во вложении
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. dhurricane 10.09.21 17:57 Сейчас в теме
(1) Попробуйте так для уровня продукции:
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(КоличествоПродукция)", "ДокументВыпуска"))
7. dhurricane 10.09.21 17:59 Сейчас в теме
(1) Вообще, в подобных случаях я всегда рекомендую разбить набор данных на два:
* один с показателем количества продукции в разрезе продукции и документов;
* второй с показателем количества материалов в разрезе продукции, документов и материалов.

При таком подходе выражения ресурсов элементарны:
* Сумма(КоличествоПродукция)
* Сумма(КоличествоМатериалы)
2. daenur1301 10.09.21 17:38 Сейчас в теме
Вообще как-то очень странно... у Вас три ресурса с одним именем, и пытаетесь их все вывести в одну колонку, просто у разных группировок. По-моему, это так не будет работать, разве что свой макет делать. А сейчас у вас в отчет выведен только один ресурс, тот что рассчитывается до документа.
3. Glav 10.09.21 17:40 Сейчас в теме
Ресурс один и тот же.
Просто для разных группировок он рассчитывается по разному.
4. daenur1301 10.09.21 17:55 Сейчас в теме
(3) Покопался - да, есть такая тема со сложными итогами, не сталкивался с таким... но, по идее, везде в выражениях должна использоваться какая-нибудь функция, т.е. перед выражением в скобках добавить сумма или т.п.
5. Glav 10.09.21 17:57 Сейчас в теме
Вроде прокатило вот так
Прикрепленные файлы:
8. Glav 10.09.21 18:01 Сейчас в теме
(7) А как Вы их потом связываете ?
Там вроде всегда левое соединение
9. dhurricane 10.09.21 18:04 Сейчас в теме
(8) Ну у Вас же вряд ли будут материалы без продукции. Потому набор с продукцией - основной, а набор с материалами - ведомый. Плюс связях указываю параметр, если ведомый набор зависит исключительно от данных основного, а не от параметров или отборов.
10. Glav 10.09.21 18:11 Сейчас в теме
(9)
Смущает, что фактически у нас получаются два запроса практически близнеца.
В угоду удобства работы с СКД жертвуем производительностью. (Не критикую Ваш подход, просто теоретизирую)
Интересное решение. Надо попробовать.
11. dhurricane 10.09.21 18:17 Сейчас в теме
(10) Так и есть. Но удобство здесь не только для СКД, но и для пользователя, который начнет менять вариант отчета. Например, поменяет группировки местами, включит промежуточные группировки. В этом случае ничего не поплывет, расчет количества продукции по-прежнему будет корректный.
12. Glav 10.09.21 19:08 Сейчас в теме
(11) Попробовал переделать схему по Вашему совету
Вынес отдельно набор данных по продукции и связал с исходным набором
Влёт всё получилось без всяких шаманств
Большое спасибо !!

А вот при таком выражении
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(КоличествоПродукция)", "ДокументВыпуска"))
получаем проблему, если в одном документе две строки с одинаковой номенклатурой
В общих итогах будет одно максимальное значение
13. dhurricane 10.09.21 23:10 Сейчас в теме
(12) Отлично.

В общем случае мой совет такой. Если у Вас в отчете используется несколько показателей (ресурсов), состав аналитики которых различается, то прежде чем мучиться с "ВычислитьВыражение" следует разбить исходных набор данных на несколько: один набор данных для каждого состава аналитик и соответствующих показателей.

И еще раз на Вашем примере. Есть 2 различных состава аналитик со своими показателями:
1. Аналитика - продукция, документ; показатель - количество продукции.
2. Аналитика - продукция, материал, документ; показатель - количество материала.
В результате разбиваем на 2 набора данных.

При таком подходе шаманить уже приходится не с выражениями ресурсов, а с оптимизацией запросов и выбором ведущего набора данных. :-)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот