Выражение в заголовке таблицы
Можно ли задавать выражения в заголовке таблицы
1. можно ли выводить туда предварительно заданный параметр ?
https://yadi.sk/i/FWJwvxBCfpCen
https://yadi.sk/i/BJA4SXz2fpCfu
________________________________________________
2. Можно ли выводить туда выражение, рассчитываемое от значения колонки ?
https://yadi.sk/i/HqlDJnohfpDNK
Только через макет или программное редактирование заголовков полей в структуре
Программное редактирование заголовков и строк делал. Синтаксис конструкции уродливый.
возможно что то делаю не так.
Пример вывода картинки в строку :
ПроцессорВывода.НачатьВывод();
Пока Истина Цикл
ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
Если ЭлементРезультата = Неопределено Тогда
Прервать;
КонецЕсли;
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
Если ЭлементРезультата.ЗначенияПараметров.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
Для Каждого ЭлементПараметра Из ЭлементРезультата.ЗначенияПараметров Цикл
Если ТипЗнч(ЭлементПараметра.Значение) = Тип(“ИдентификаторРасшифровкиКомпоновкиДанных”) Тогда
Поля = ДанныеРасшифровки.Элементы[ЭлементПараметра.Значение].ПолучитьПоля();
Для Каждого Поле Из Поля Цикл
Если Поле.Поле = “Выгружен” Тогда
ВывестиИконкуВПолеСКД (“Выгружен”, Поле, Иконка);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
Можно правильный пример как найти заголовок в структуре полей и отредактировать ?
Вот пример:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
ИзменитьЗаголовкиПолей(Настройки);
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
КонецПроцедуры
Процедура ИзменитьЗаголовкиПолей(Настройки)
Для каждого ЭлементСтруктуры Из Настройки.Структура Цикл
Если ТипЗнч(ЭлементСтруктуры) = Тип(“ГруппировкаКомпоновкиДанных”) И ЭлементСтруктуры.Имя = “ЛицевойСчет” Тогда
Для каждого ВложенныйЭлементСтруктуры Из ЭлементСтруктуры.Структура Цикл
Если ВложенныйЭлементСтруктуры.ИдентификаторОбъекта = “ВзаиморасчетыЛС” Тогда
ПолеНачислено = Новый ПолеКомпоновкиДанных(“Начислено”);
ПолеОплачено = Новый ПолеКомпоновкиДанных(“Оплачено”);
//Ищем параметры
ПараметрПериод = ВложенныйЭлементСтруктуры.Настройки.ПараметрыДанных.Элементы.Найти(“Период”).Значение;
ДатаНачала = ПараметрПериод.ДатаНачала;
Для каждого ВыбранноеПоле Из ВложенныйЭлементСтруктуры.Настройки.Выбор.Элементы Цикл
Если ТипЗнч(ВыбранноеПоле) = Тип(“ВыбранноеПолеКомпоновкиДанных”) Тогда
Если ВыбранноеПоле.Поле = ПолеНачислено Тогда
ВыбранноеПоле.Заголовок = “Начислено с ” + Формат(ДатаНачала, “ДЛФ=DD”);
КонецЕсли;
Если ВыбранноеПоле.Поле = ПолеОплачено Тогда
ВыбранноеПоле.Заголовок = “Оплачено с ” + Формат(ДатаНачала, “ДЛФ=DD”);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Я правильно понимаю :
Процедура ПриКомпоновкеРезультата
не заменяет процедуру :
Процедура СформироватьОтчет ()
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
ЭлементыФормы.ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
УправлениеГруппировкамиСтрок ();
ЭлементыФормы.ДокументРезультат.ОтображатьЗаголовки = Истина;
ЭлементыФормы.ДокументРезультат.АвтоМасштаб = ИСТИНА;
КонецПроцедуры
как инициализировать ПриКомпоновкеРезультата ?