Имя: Пароль:
1C
1С v8
СКД. Программно изменить выражение ресурса
0 qwerty09
 
01.09.11
13:31
Платформа 8.2.13
Есть необходимость при формировании отчета на СКД динамически изменять выражение для нескольких ресурсов в схеме компоновки, в зависимости от настроек...делаю так:

   КоллекцияРесурсовСКД        = СхемаКомпоновкиДанных.ПоляИтога;
   РесурсСебестоимость        = КоллекцияРесурсовСКД.Найти("Себестоимость");
   РесурсРентабельнаяСтоимость = КоллекцияРесурсовСКД.Найти("РентабельнаяСтоимость");
   Если ПоМаксимальнойСебестоимости Тогда
       РесурсСебестоимость.Выражение         = "Максимум(" + РесурсСебестоимость.ПутьКДанным + ")";    
       РесурсРентабельнаяСтоимость.Выражение = "Максимум(" + РесурсРентабельнаяСтоимость.ПутьКДанным + ")";
   Иначе
       РесурсСебестоимость.Выражение         = "Среднее("  + РесурсСебестоимость.ПутьКДанным + ")";
       РесурсРентабельнаяСтоимость.Выражение = "Среднее("  + РесурсРентабельнаяСтоимость.ПутьКДанным + ")";
   КонецЕсли;

Смотрю отладчиком - выражение таки меняется, но итоги считаются по старому : ( Что не так сделал?
1 Cube
 
01.09.11
13:32
"Максимум(Сумма(" + РесурсСебестоимость.ПутьКДанным + "))"?
2 qwerty09
 
01.09.11
13:36
(1) та вроде не...оно по умолчанию там "Среднее(Себестоимость)" стоит. Или это кроме выражения ресурса еще где то надо писать?
3 Cube
 
01.09.11
13:38
(2) Да, чет я прогнал))
4 qwerty09
 
01.09.11
13:51
нашел косяк, пардоньте... сначала инициализировал компоновщик макета, а потом чет еще устанавливать пытаюсь..разбросал по разным процедурам и сразу не увидел подвоха =)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.