Вход | Регистрация

1С:Предприятие ::

Метки: 

Расчет ресурсов для группировок

Я
   Astema
 
27.03.18 - 21:35
Добрый вечер, участники форума. Делаю отчет, подобный Анализу заказов в УТ 10.3, с использованием СКД и столкнулся с проблемой. В отчете есть группировки по Контрагенту, Договору и Заказу, далее идут детальные записи по номенклатуре. Ресурсы: Планируется отгрузить, Осталось отгрузить, Сумма заказа, Осталось оплатить. Если в документе Заказ покупателя более одной строки отчет ставит для каждой строки детальных записей сумму заказа и остаток по оплате. Нужно, чтобы он выводил сумму только для группировок и не задваивал.
Как должно быть: https://cloud.mail.ru/public/A2CX/Ts1Aj4Z2B .
Как получается: https://cloud.mail.ru/public/E6ky/X68Thweoi
Также упрощенная модель базы
https://cloud.mail.ru/public/7bCP/hcryHTrfz

Спасибо за помощь
 
 
   Малыш Джон
 
1 - 27.03.18 - 22:38
(0) На вкладке "ресурсы" для разных уровней группировки прописывай разные выражения
   Малыш Джон
 
2 - 27.03.18 - 22:40
и почитай про ВычислитьВыражение()
   Astema
 
3 - 27.03.18 - 23:18
Я так смотрю. Но сработало только для первой группировки Заказ. Пытался сделать вторую группировку, он выдал сообщение: "использование вложенных агрегатных функций не допускается"
   Sereja
 
4 - 27.03.18 - 23:56
(0) Мысль конечно так себе, но попробуй для группировки "Осталось оплатить" на вкладке ресурсы использовать функцию "Максимум". И ты будешь видеть то, что тебе нужно
   Astema
 
5 - 28.03.18 - 07:03
(4), спасибо. Функция "Максимум" покажет корректные значения только для самой нижней группировки (Заказ). Если по одному договору несколько заказов, то уже будет неправильное значение данного ресурса
   LordCMEPTb
 
6 - 28.03.18 - 07:08
Как вариант, можно разбить набор данных на 2:
1 - получение данных по заказу (сумма заказа и остаток по оплате),
2 - получение данных по номенклатуре (планируется отгрузить, осталось отгрузить).
И уже наборы соединить. Можно и объединить, но тогда условия по номенклатуре не будут влиять на заказы.

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

   Astema
 
7 - 28.03.18 - 08:34
(6), вот я решил пойти по второму пути, что вы указали. С использованием функции "ВычислитьВыражениеСГруппировкойМассив". Нашел одну небольшую статью http://erpdev.ru/blog/236
Но она работает только для нижнего уровня группировки
   Малыш Джон
 
8 - 28.03.18 - 08:50
(7) а для верхних отказывается?)))
   Astema
 
9 - 28.03.18 - 09:13
(7), получается, моя невнимательность))
Предложенное решение (6) помогло. Спасибо всем за помощь!
   Малыш Джон
 
10 - 28.03.18 - 09:16
(9) вдогонку - может на уровне товара считать сумму товара?Которая на уровне заказа будет просто суммироваться и будет получаться сумма заказа без усложнения вычисления выражений?
 
  Рекламное место пустует
   Astema
 
11 - 28.03.18 - 09:22
(9) Так тоже можно, я думаю. Но для оплаты все равно нужно делать вычисление выражения с помощью предложенной функции


Список тем форума
Рекламное место пустует   Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует