Необходимо переименовать поля в отчете. Все присваивает, ошибок не выдает,но заголовки не меняет.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Дата1 = Строка(КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Период1").Значение);
Дата2 = Строка(КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Период2").Значение);
Для Каждого ЭлементВыбора Из Настройки.Выбор.Элементы Цикл
Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("Период1") Тогда
ЭлементВыбора.Заголовок = Дата1;
ЭлементВыбора.Использование=Истина;
Конецесли;
Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("Период2") Тогда
ЭлементВыбора.Заголовок = Дата2;
ЭлементВыбора.Использование=Истина;
Конецесли;
КонецЦикла;
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Поле = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Период1");
Если Поле <> Неопределено Тогда
Поле.Заголовок = ................................ ;
КонецЕсли;
КонецПроцедуры
ПоказатьУ Вас строка ЭлементВыбора.Заголовок = Дата1; - означает что Вы "полю" Период1" присваиваете тоже самое (как минимум).
Или я не так поняла.....
"Период1", "Период2" - это параметры отчета ?
(или можете прислать отчётик)?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Поле = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("Период1");
Если Поле <> Неопределено Тогда
Поле.Заголовок = ................................ ;
КонецЕсли;
КонецПроцедуры
ПоказатьУ Вас строка ЭлементВыбора.Заголовок = Дата1; - означает что Вы "полю" Период1" присваиваете тоже самое (как минимум).
Или я не так поняла.....
"Период1", "Период2" - это параметры отчета ?
(или можете прислать отчётик)?
(8) Вам надо в качестве заголовка поля (значения поля) вставить параметр. В настройках скд есть закладка "Макеты", там создаете макет поля/группировки в качестве значения выставляете параметр, например <ПредставлениеПериода>, в окошке параметры макета выставите ему параметр из параметров отчета или любой другой
Сделать это можно, например в процедуре ПриКомпоновкеРезультата расположенной в модуле объекта отчета.
Для начала получим текущие настройки СКД.
Для начала получим текущие настройки СКД.
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Далее при помощи цикла обойдем все поля выбранные в отчет.
Для Каждого ЭлементВыбора Из Настройки.Выбор.Элементы Цикл
КонецЦикла;
Присваиваем полям нужный заголовок.
ЭлементВыбора.Заголовок = "Мой заголовок";
после чего загружаем измененные настройки обратно в схему компоновки.
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Рассмотрим небольшой пример:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
НастройкиКД = КомпоновщикНастроек.ПолучитьНастройки();
Дата = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек,"Месяц").Значение;
СтрокаФормата = "ДФ = МММгггг";
Для Каждого ЭлементВыбора Из НастройкиКД.Выбор.Элементы Цикл
Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("СреднемесячныеПродажиМинус1СУчетомТекущегоГода") Тогда
ЭлементВыбора.Заголовок = "Среднемесяные продажи " + Формат(ДобавитьМесяц(Дата,-1),СтрокаФормата) + " с учетом текущего года";
Конецесли;
Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("СреднемесячныеПродажиМесяцаМинус1") Тогда
ЭлементВыбора.Заголовок = "Среднемесяные продажи " + Формат(ДобавитьМесяц(Дата,-1),СтрокаФормата);
Конецесли;
Если ЭлементВыбора.Поле = Новый ПолеКомпоновкиДанных("СреднемесячныеПродажиМесяцаМинус2") Тогда
ЭлементВыбора.Заголовок = "Среднемесяные продажи " + Формат(ДобавитьМесяц(Дата,-2),СтрокаФормата);
Конецесли;
КонецЦикла;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);
КонецПроцедуры
Показать
Тогда можно вот так:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
ЗначениеПериода = НастройкиКомпоновки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
Если НЕ ЗначениеПериода = Неопределено И ЗначениеПериода.Использование Тогда
Дата1 = Формат(ЗначениеПериода.Значение.ДатаНачала, "ДФ=dd.MM.yyyy");
Дата2 = Формат(ЗначениеПериода.Значение.ДатаОкончания, "ДФ=dd.MM.yyyy");
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки);
Для Каждого ТекМакет Из МакетКомпоновки.Макеты Цикл
Если НЕ ТипЗнч(ТекМакет.Макет) = Тип("МакетОбластиКомпоновкиДанных") Тогда
Продолжить;
КонецЕсли;
Для Каждого Макет Из ТекМакет.Макет Цикл
Для Каждого Ячейка Из Макет.Ячейки Цикл
Для Каждого Элемент Из Ячейка.Элементы Цикл
Если Найти(Элемент.Значение, "%НачалоПериода%") > 0 Тогда
Элемент.Значение = СтрЗаменить(Элемент.Значение, "%НачалоПериода%", Дата1);
ИначеЕсли Найти(Элемент.Значение, "%КонецПериода%") > 0 Тогда
Элемент.Значение = СтрЗаменить(Элемент.Значение, "%КонецПериода%", Дата2);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот