Имя: Пароль:
1C
1С v8
СКД. Вывод средневзвешенного в итогах группировки в той же колонке
0 Михаил 1С
 
17.09.12
12:13
Здравствуйте, помогите пожалуйста:
Надо сделать то, что в заголовке, а именно:
Продаются квартиры, сделан отчет на СКД, который показывает Площадь квартиры, ее Стоимость и ЦенуЗаКвадратныйМетр. Надо также вывести Среднюю ЦенуЗаКвадратныйМетр по всему дому. Я могу сделать измерение Дом в СКД, и могу легко посчитать арифметическое среднее по колонке, но это не оно. СреняяЦенаЗаКвМетр = СтоимостьВсехКвартирДома / ПолнуюПлощадьДома.
Я посчитал это значение в запросе. Но теперь оно выводится в отдельной колонке, это не удобно. Надо, чтобы полученное мною новое поле воводилось только в итогах группировки другого поля. Как это сделать?
1 Михаил 1С
 
17.09.12
12:16
Построителем конечно можно сделать такой отчет, но охота в СКД. Тем более, что Ультра-Фиолетовые формы не будут поддерживать Построитель (я про УФ :)).
Может быть кто-то решал такую задачу? По-моему, она многим нужная, грустно будет, если в СКД нельзя так сделать.
2 vmv
 
17.09.12
12:29
(0) не объясняю поймешь сам

1. у меня в СКД есть ресурс "ЗнВЯчейке"
2. у этого ресурса такое выражение
   ВЫБОР
КОГДА МетодИтогов = &МиСреднее        ТОГДА Среднее(ЗнВЯчейке)
КОГДА МетодИтогов = &МиСумма           ТОГДА Сумма(ЗнВЯчейке)
КОГДА МетодИтогов = &МиМинимум       ТОГДА Минимум(ЗнВЯчейке)
КОГДА МетодИтогов = &МиМаксимум     ТОГДА Максимум(ЗнВЯчейке)
КОГДА МетодИтогов = &МиКоличество   ТОГДА Количество(ЗнВЯчейке)
КОГДА МетодИтогов = &МиКоличествоР ТОГДА Количество(Различные ЗнВЯчейке)
ИНАЧЕ ЗнВЯчейке
КОНЕЦ

3. МетодИтогов - это поле СКД, которое явялется полем реальной таблицы и имеет тип Перечисление.Add_En_МетодыИтогов

3. Значение этого перечисления
  СУММА
  СРЕДНЕЕ
  КОЛИЧЕСТВО
  КОЛИЧЕСТВОРАЗЛИЧНЫЕ
  МИНИМУМ
  МАКСИМУМ
  Нет

3. Когда мне нужно в Любой СКД в любих комбинацияъх итогов в ОДНОЙ и ТОЙ же группировке, строке, колонке и пр получать дифференцированный агрегат, а не только СУМММА - я использую выражение из п.2

4. Естесвенно у реальной таблицы должен быть реквизит "МЕтодИтогов"

Другой путь дифференцирования агрегатов - методы общих модулей и создание ресурсов в СКД с вожмозными вариантами агрегатов, но этот путь сложнее в обслуживании, настройке и т.п.
3 vmv
 
17.09.12
12:31
СтоимостьВсехКвартирДома / ПолнуюПлощадьДома - это банальное выражение СКД, так чтог (2) можно не читать и любая религия мира допускает написание указанного выражения как в ресурсах
4 Miss1C
 
17.09.12
12:36
(0)Вы макет в скд нарисуйте и в параметр ячейки передайте данное выражение СтоимостьВсехКвартирДома / ПолнуюПлощадьДома, вот и все
5 vmv
 
17.09.12
12:38
по (0) без всяких перечислений должно быть прмерно такое выражение ресурса

КОГДА МетодИтогов = &СреднеВзв        ТОГДА Сумма(СтоимостьВсехКвартирДома) / Сумма(ПолнуюПлощадьДома)
ИНАЧЕ Сумма(СтоимостьВсехКвартирДома)
КОНЕЦ

ну и в первую часть КОГДА втулить вложенную проверку деления на ноль, я надеюсь не нужно писть как

В СКД добавить поле МетодИтогов - как оно будет определяться в запросе - дело вкуса
6 vmv
 
17.09.12
12:39
(4) главная соль тут не как и куда, а КОГДА, т.е. правило согласно которому нужно выводить либо СУММА, либо другой агрегат, либо выражение
7 Miss1C
 
17.09.12
12:43
(6) Понятно
8 Михаил 1С
 
18.09.12
08:19
(3) Спасибо огромное, vmv!
Я так рад, что все так просто решилось!
Я никак не думал, что в СКД в Ресурсах можно писать свободное выражение. Теперь знаю,
Благодарю!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший