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

1С:Предприятие :: 1С:Предприятие 8 общая

Расчет вычисляемого поля на уровне группировок, СКД

Расчет вычисляемого поля на уровне группировок, СКД
Я
   kassbar
 
08.05.18 - 23:22
<a href="http://www.picshare.ru/view/8781460/"; target="_blank"><img src="http://www.picshare.ru/uploads/180508/40IPopzWd2.jpg"; border="0" width="725" height="206" title="Хостинг картинок PicShare.ru"></a>

Суть задачи - для каждой детальной записи рассчитывается некое вычисляемое поле, достаточно сложным алгоритмом, в разрезе группировки РТУ.
  Нужно вывести на уровне группировок (РТУ и Клиент) суммы этих вычисляемых полей (пример, который нужно получить, на картинке).
На уровне группировки РТУ удалось получить нужное значение в ресурс с помощью функции СУММА(ВычислитьВыражениеСГруппировкойМассив("ВычисляемоеПоле")).
Но на верхних группировках (Клиент) этот способ уже не работает.
Может все-таки есть какой-то способ получить итог вычисляемого поля в группировке, или переносить все расчеты в модули ?
 
 
   kassbar
 
1 - 08.05.18 - 23:23
   Franchiser
 
2 - 09.05.18 - 02:05
Можно сделать вычисляемое поле ещё одно, которое будет считать сумму в контексте определенной группировки, тогда ты сможешь его просто указать в ресурсе без функции сумма(). Можно сделать несколько таких вычисляемых полей и указывать на разных уровнях.
   Franchiser
 
3 - 09.05.18 - 02:07
Функция Вычислить()
   Franchiser
 
4 - 09.05.18 - 02:15
По рисунку у тебя на всех уровнях группировок считается сумма,
не работает Сумма(ВычисляемоеПоле")?
   kassbar
 
5 - 09.05.18 - 08:35
(4) неа, Сумма(ВычисляемоеПоле) совсем по другому работает, не так как я ожидал. Она складывает не уже рассчитанные вычисляемые поля, а заново их вычисляет. Причем в разрезе той группировки, на уровне которой она установлена. Соответственно, на уровне группировки "Клиент" вычисляемые поля рассчитываются в контексте записей именно этой группировки, и цифры получаются совсем другие (не такие, как на уровне группировки "РТУ")
   kassbar
 
6 - 09.05.18 - 08:36
(4) на рисунке я руками исправил итог по группировке "Клиент", для наглядности. По факту там другие цифры (не те, что нужно)
   bolder
 
7 - 09.05.18 - 10:06
(0) ВычислитВыражение сГруппировкой ВМассив имеет параметры.Нужно их задействовать.
   DrShad
 
8 - 09.05.18 - 10:36
(7)+1
   kassbar
 
9 - 09.05.18 - 15:01
(7) если речь идет о 2 параметре  "ВыражениеПолейГруппировки" для 
ВычислитьВыражениеСГруппировкойМассив(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>)
то я его применял в настройках ресурсов, в разных вариантах
http://www.picshare.ru/view/8782124/
только результат от него все равно не тот, что ожидался:
http://www.picshare.ru/view/8782127/
   Franchiser
 
10 - 09.05.18 - 16:24
(5) у меня тоже были сложности с расчетом ресурсов при использовании вычисляемых полей, я решил эту проблему 2мя способами: 1. Использование 2 наборов вместо одного. 2. Использовал функцию вычислитьвыражениесгруппировкоймассив() не в ресурсе а в отдельном ВычисляемоеПоле, которое потом подставил в ресурс.
Как решить конкретно в твоём случае нужно смотреть на твоих данных.
 
 Рекламное место пустует
   Franchiser
 
11 - 09.05.18 - 16:50
Нашел отчет в котором я экспериментировал:
СуммаСводТест - вычисляемое поле
В ресурсе стоит такое выражение:
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(СуммаСводТест)","ПериодМесяц,Комиссионер,Организация,КодСтрокиОтчета"))
   kassbar
 
12 - 09.05.18 - 17:03
(11) СуммаСводТест - это дополнительное вычисляемое поле ? А сам отчет можешь скинуть ?
   Franchiser
 
13 - 09.05.18 - 17:43
(12) нет, это просто ВычисляемоеПоле 
Скинуть могу
   kassbar
 
14 - 09.05.18 - 20:59
(13) jagel@bk.ru
   Franchiser
 
15 - 10.05.18 - 00:30
(14) отправил
   kassbar
 
16 - 10.05.18 - 17:42
Похоже что ВычислитьВыражениеСГруппировкойМассив() не будет работать корректно, если в вычисляемом поле используется функция ВычислитьВыражение(Группировка, Первый, Текущий).
По итогу сделал вычисление поля в модуле отчета и вернул результат в СКД в виде внешнего набора данных.
   kassbar
 
17 - 11.05.18 - 22:48
спасибо Franchiser,
эта функция работает для группировок.
Нужно вызывать ее в виде вложений, на каждом уровне, вот таким образом:    
Сумма(ВычислитьВыражениеСГруппировкойМассив("Максимум(ВычислитьВыражениеСГруппировкойМассив(""ВычисляемоеПоле"", ""Номенклатура""))", "Реализация"))

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